HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG HOÀNG XUÂN DẬU BÀI GIẢNG KIẾN TRÚC MÁY TÍNH HÀ NỘI 2010 1 LỜI NÓI ĐẦU Kiến trúc máy tính là một trong các lĩnh vực khoa học cơ sở của ngành Khoa học máy tính nó[.]
HỌC VIỆN CƠNG NGHỆ BƢU CHÍNH VIỄN THƠNG HOÀNG XUÂN DẬU BÀI GIẢNG KIẾN TRÚC MÁY TÍNH HÀ NỘI 2010 LỜI NĨI ĐẦU Kiến trúc máy tính lĩnh vực khoa học sở ngành Khoa học máy tính nói riêng Cơng nghệ thơng tin nói chung Kiến trúc máy tính khoa học lựa chọn ghép nối thành phần phần cứng máy tính nhằm đạt đƣợc mục tiêu hiệu cao, tính đa dạng giá thành thấp Mơn học Kiến trúc máy tính mơn học sở chun ngành chƣơng trình đào tạo cơng nghệ thơng tin hệ đại học cao đẳng Mục tiêu môn học cung cấp cho sinh viên kiến thức sở kiến trúc máy tính, bao gồm bao gồm kiến trúc máy tính tổng quát, kiến trúc xử lý trung tâm thành phần xử lý trung tâm, kiến trúc tập lệnh máy tính, chế ống lệnh; hệ thống phân cấp nhớ, nhớ trong, nhớ cache loại nhớ ngoài; hệ thống bus thiết bị vào Kiến trúc máy tính lĩnh vực đƣợc phát triển thời gian tƣơng đối dài với lƣợng kiến thức đồ sộ, nhƣng khuôn khổ tài liệu có tính chất giảng mơn học, tác giả cố gắng trình bày vấn đề sở phục vụ mục tiêu môn học Nội dung tài liệu đƣợc biên soạn thành sáu chƣơng: Chƣơng phần giới thiệu khái niệm sở kiến trúc máy tính, nhƣ khái kiệm kiến trúc tổ chức máy tính; cấu trúc chức thành phần máy tính; kiến trúc máy tính von-Neumann kiến trúc Harvard Khái niệm hệ đếm cách tổ chức liệu máy tính đƣợc trình bày chƣơng Chƣơng giới thiệu khối xử lý trung tâm, nguyên tắc hoạt động thành phần Khối xử lý trung tâm thành phần quan trọng phức tạp máy tính, đóng vai trị não máy tính Thơng qua việc thực lệnh chƣơng trình khối xử lý trung tâm, máy tính thực thi u cầu ngƣời sử dụng Chƣơng giới thiệu tập lệnh máy tính, bao gồm khái niệm lệnh, dạng lệnh, thành phần lệnh; dạng địa chế độ địa Chƣơng giới thiệu số dạng lệnh thông dụng kèm ví dụ minh hoạ Ngồi ra, chế ống lệnh – xử lý xen kẽ lệnh đƣợc đề cập Chƣơng trình bày nhớ trong: khái quát hệ thống nhớ cấu trúc phân cấp hệ thống nhớ; giới thiệu loại nhớ ROM RAM Một phần quan trọng chƣơng phần giới thiệu nhớ cache - nhớ đặc biệt có khả giúp tăng tốc hệ thống nhớ nói riêng hệ thống máy tính nói chung Chƣơng giới thiệu nhớ ngoài, bao gồm loại đĩa từ, đĩa quang, hệ thống RAID, NAS SAN Bộ nhớ dạng nhớ thƣờng có dung lƣợng lớn dùng để lƣu trữ thông tin ổn định, không phụ thuộc nguồn điện ni Chƣơng trình bày hệ thống bus thiết bị ngoại vi Phần trình bày hệ thống bus đề cập đến loại bus nhƣ ISA, EISA, PCI, AGP PCI-Express Phần giới thiệu thiết bị vào đề cập đến nguyên lý hoạt động số thiết bị vào thơng dụng, nhƣ bàn phím, chuột, hình máy in Tài liệu đƣợc biên soạn dựa kinh nghiệm giảng dạy mơn học Kiến trúc máy tính nhiều năm tác giả Học viện Công nghệ Bƣu – Viễn thơng, kết hợp tiếp thu đóng góp đồng nghiệp phản hồi từ sinh viên Tài liệu đƣợc sử dụng làm tài liệu học tập cho sinh viên hệ đại học cao đẳng ngành công nghệ thông tin điện tử viễn thơng Trong q trình biên soạn, tác giả cố gắng song tránh khỏi có thiếu sót Tác giả mong muốn nhận đƣợc ý kiến phản hồi góp ý cho thiếu sót, nhƣ ý kiến việc cập nhật, hoàn thiện nội dung tài liệu Hà nội, tháng năm 2010 Tác giả TS Hoàng Xuân Dậu Email: dauhx@ptit.edu.vn MỤC LỤC CHƢƠNG GIỚI THIỆU CHUNG 1.1 KHÁI NIỆM VỀ KIẾN TRÚC VÀ TỔ CHỨC MÁY TÍNH 1.2 CẤU TRÚC VÀ CHỨC NĂNG thành phẦN CỦA MÁY TÍNH 1.2.1 Sơ đồ khối chức 1.2.2 Các thành phần máy tính 1.3 LỊCH SỬ PHÁT TRIỂN MÁY TÍNH 1.3.1 Thế hệ (1944-1959) 1.3.2 Thế hệ (1960-1964) 1.3.3 Thế hệ (1964-1975) 1.3.4 Thế hệ (1975-1989) 1.3.5 Thế hệ (1990 - nay) 1.4 KIẾN TRÚC MÁY TÍNH VON-NEUMANN 1.4.1 Sơ đồ kiến trúc máy tính von-Neumann 1.4.2 Các đặc điểm kiến trúc von-Neumann 1.5 KIẾN TRÚC MÁY TÍNH HARVARD 10 1.6 CÁC HỆ SỐ ĐẾM VÀ TỔ CHỨC DỮ LIỆU TRÊN MÁY TÍNH 10 1.6.1 Các hệ số đếm 10 1.6.2 Tổ chức liệu máy tính 11 1.6.3 Số có dấu số khơng dấu 12 1.6.4 Bảng mã ASCII 13 1.7 CÂU HỎI ÔN TẬP 14 CHƢƠNG KHỐI XỨ LÝ TRUNG TÂM 15 2.1 SƠ ĐỒ KHỐI TỔNG QUÁT VÀ chu trình xỬ LÝ LỆNH 15 2.1.1 Sơ đồ khối tổng quát CPU 15 2.1.2 Chu trình xử lý lệnh 16 2.2 CÁC THANH GHI 16 2.2.1 Giới thiệu ghi 16 2.3 KHỐI ĐIỀU KHIỂN 18 2.4 KHỐI SỐ HỌC VÀ LOGIC 19 2.5 BUS TRONG CPU 20 2.6 CÂU HỎI ÔN TẬP 20 CHƢƠNG TẬP LỆNH MÁY TÍNH 21 3.1 GIỚI THIỆU VỀ TẬP LỆNH MÁY TÍNH 21 3.1.1 Lệnh máy tính gì? 21 3.1.2 Chu lệnh 21 3.2 DẠNG VÀ CÁC THÀNH PHẦN CỦA LỆNH 21 3.3 CÁC DẠNG ĐỊA CHỈ / TOÁN HẠNG 22 3.3.1 Toán hạng dạng địa 22 3.3.2 Toán hạng dạng địa 22 3.3.3 Toán hạng dạng địa 22 3.3.4 Toán hạng dạng 1,5 địa 23 3.3.5 Toán hạng dạng địa 23 3.4 CÁC CHẾ ĐỘ ĐỊA CHỈ 23 3.4.1 Giới thiệu chế độ địa 23 3.4.2 Các chế độ địa 24 3.5 MỘT SỐ DẠNG LỆNH THÔNG DỤNG 27 3.5.1 Các lệnh vận chuyển liệu 27 3.5.2 Các lệnh toán học logic 27 3.5.3 Các lệnh điều khiển chƣơng trình 28 3.5.4 Các lệnh vào 29 3.6 GIỚI THIỆU CƠ CHẾ ỐNG LỆNH (PIPELINE) 30 3.6.1 Giới thiệu chế ống lệnh 30 3.6.2 Các vấn đề chế ống lệnh hƣớng giải 31 3.7 CÂU HỎI ÔN TẬP 35 CHƢƠNG BỘ NHỚ TRONG 36 4.1 PHÂN LOẠI BỘ NHỚ MÁY TÍNH 36 4.1.1 Phân loại nhớ 36 4.1.2 Tổ chức mạch nhớ 36 4.2 CẤU TRÚC PHÂN CẤP BỘ NHỚ MÁY TÍNH 37 4.2.1 Giới thiệu cấu trúc phân cấp hệ thống nhớ 37 4.2.2 Vai trò cấu trúc phân cấp hệ thống nhớ 38 4.3 BỘ NHỚ rom VÀ ram 39 4.3.1 Bộ nhớ ROM 39 4.3.2 Bộ nhớ RAM 40 4.4 BỘ NHỚ CACHE 42 4.4.1 Cache gì? 42 4.4.2 Vai trò nguyên lý hoạt động 42 4.4.3 Các dạng kiến trúc cache 45 4.4.4 Các dạng tổ chức/ánh xạ cache 46 4.4.5 Các phƣơng pháp đọc ghi sách thay 52 4.4.6 Hiệu cache yếu tố ảnh hƣởng 53 4.4.7 Các phƣơng pháp giảm miss cho cache 55 4.5 CÂU HỎI ÔN TẬP 56 CHƢƠNG BỘ NHỚ NGOÀI 57 5.1 ĐĨA TỪ 57 5.1.1 Giới thiệu 57 5.1.2 Đĩa cứng 58 5.2 ĐĨA QUANG 62 5.2.1 Giới thiệu nguyên lý 62 5.2.2 Các loại đĩa quang 63 5.2.3 Giới thiệu cấu tạo số đĩa quang thông dụng 64 5.3 RAID 66 5.3.1 Giới thiệu RAID 66 5.3.2 Các kỹ thuật tạo RAID 66 5.3.3 Giới thiệu số loại RAID thông dụng 67 5.4 NAS 69 5.5 SAN 70 5.6 CÂU HỎI ÔN TẬP 71 CHƢƠNG HỆ THỐNG BUS VÀ CÁC THIẾT BỊ NGOẠI VI 72 6.1 GIỚI THIỆU CHUNG VỀ HỆ THỐNG BUS 72 6.2 GIỚI THIỆU MỘT SỐ LOẠI BUS THÔNG DỤNG 73 6.2.1 Bus ISA EISA 73 6.2.2 Bus PCI 74 6.2.3 Bus AGP 77 6.2.4 Bus PCI Express 78 6.3 GIỚI THIỆU CHUNG VỀ CÁC THIẾT BỊ NGOẠI VI 78 6.3.1 Giới thiệu chung 78 6.3.2 Các cổng giao tiếp 79 6.4 GIỚI THIỆU MỘT SỐ THIẾT BỊ VÀO RA THÔNG DỤNG 81 6.4.1 Bàn phím 81 6.4.2 Chuột 82 6.4.3 Màn hình 83 6.4.4 Máy in 86 6.5 CÂU HỎI ÔN TẬP 89 TÀI LIỆU THAM KHẢO 90 DANH MỤC CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT Thuật ngữ tiếng Anh Từ viết tắt Central Processing Unit CPU Bộ/Đơn vị xử lý trung tâm Control Unit CU Bộ/Đơn vị điều khiển Arithmethic and Logic Unit Program Counter ALU PC Thuật ngữ tiếng Việt/Giải thích Bộ/Đơn vị tính tốn số học logic Bộ đếm chƣơng trình System Bus Buýt hệ thống Memory Bộ nhớ Cache Bộ nhớ đệm / nhớ kết Random Access Memory RAM Bộ nhớ truy cập ngẫu nhiên Read Only Memory ROM Bộ nhớ đọc Basic Input Output System BIOS Hệ thống vào sở Pipeline Cơ chế ống lệnh hay chế xử lý xen kẽ lệnh Hit Đoán trúng – kiện CPU truy tìm mục tin tìm thấy cache Miss Đốn trƣợt – kiện CPU truy tìm mục tin khơng tìm thấy cache Advanced Technology Attachments ATA Chuẩn ghép nối đĩa cứng ATA Parallel Advanced Technology Attachments PATA Chuẩn ghép nối đĩa cứng PATA – hay ATA song song Integrated Drive Electronics IDE Chuẩn ghép nối đĩa cứng IDE Serial ATA SATA Chuẩn ghép nối đĩa cứng SATA – hay ATA nối tiếp Small Computer System Interface SCSI Chuẩn ghép nối đĩa cứng SCSI Redundant Array of Independent Disks RAID Công nghệ lƣu trữ RAID – tạo thành từ mảng liên kết đĩa cứng vật lý Network Attached Storage NAS Hệ thống lƣu trữ gắn vào mạng Storage Area Network SAN Mạng lƣu trữ Industrial Standard Architecture ISA Buýt theo chuẩn công nghiệp ISA Extended ISA EISA Buýt theo chuẩn công nghiệp mở rộng EISA Peripheral Component Interconnect PCI Bus PCI Accelerated Graphic Port AGP Cổng tăng tốc đồ hoạ AGP PCI Express PCIe Buýt PCIe Cathode Ray Tube CRT Màn hình ống điện tử âm cực Liquid Crystal Display LCD Mình hình tinh thể lỏng CHƢƠNG GIỚI THIỆU CHUNG 1.1 KHÁI NIỆM VỀ KIẾN TRÚC VÀ TỔ CHỨC MÁY TÍNH Kiến trúc máy tính (Computer Architecture) Tổ chức máy tính (Computer Organization) hai số khái niệm ngành Cơng nghệ máy tính (Computer Engineering) Có thể nói kiến trúc máy tính tranh tồn cảnh hệ thống máy tính, cịn tổ chức máy tính tranh cụ thể thành phần phần cứng hệ thống máy tính Kiến trúc máy tính khoa học việc lựa chọn kết nối thành phần phần cứng để tạo máy tính đạt đƣợc yêu cầu chức (functionality), hiệu (performance) giá thành (cost) Yêu cầu chức đòi hỏi máy tính phải có thêm nhiều tính phong phú hữu ích; u cầu hiệu địi hỏi máy tính phải đạt tốc độ xử lý cao u cầu giá thành địi hỏi máy tính phải ngày rẻ Để đạt đƣợc ba yêu cầu chức năng, hiệu giá thành khó khăn Tuy nhiên, nhờ có phát triển mạnh mẽ công nghệ vi xử lý, máy tính ngày có tính phong phú, nhanh rẻ so với máy tính hệ trƣớc Kiến trúc máy tính đƣợc cấu thành từ thành phần con: (i) Kiến trúc tập lệnh (Instruction Set Architecture), (ii) Vi kiến trúc (Micro Architecture) Thiết kế hệ thống (System Design) Kiến trúc tập lệnh hình ảnh hệ thống máy tính mức ngôn ngữ máy Kiến trúc tập lệnh bao gồm thành phần: tập lệnh, chế độ địa chỉ, ghi, khuôn dạng địa liệu Vi kiến trúc mô tả mức thấp thành phần hệ thống máy tính, phối ghép việc trao đổi thông tin chúng Vi kiến trúc giúp trả lời hai câu hỏi (1) Các thành phần phần cứng máy tính kết nối với nhƣ nào? (2) Các thành phần phần cứng máy tính tƣơng tác với nhƣ để thực thi tập lệnh? Thiết kế hệ thống: bao gồm tất thành phần phần cứng hệ thống máy tính, bao gồm: Hệ thống phối ghép (các bus chuyển mạch), Hệ thống nhớ, Các chế giảm tải cho CPU (nhƣ truy nhập trực tiếp nhớ) Các vấn đề khác (nhƣ đa xử lý xử lý song song) Tổ chức máy tính hay cấu trúc máy tính khoa học nghiên cứu phận máy tính phƣơng thức làm việc chúng Với định nghĩa nhƣ vậy, tổ chức máy tính gần gũi với vi kiến trúc – thành phần kiến trúc máy tính Nhƣ vậy, thấy rằng, kiến trúc máy tính khái niệm rộng hơn, bao hàm tổ chức hay cấu trúc máy tính 1.2 CẤU TRÚC VÀ CHỨC NĂNG CÁC THÀNH PHẦN CỦA MÁY TÍNH 1.2.1 Sơ đồ khối chức Hình minh hoạ sơ đồ khối chức hệ thống máy tính Theo đó, hệ thống máy tính gồm bốn thành phần chính: (1) CPU – Khối xử lý trung tâm, (2) Bộ nhớ trong, gồm nhớ ROM nhớ RAM, (3) Các thiết bị ngoại vi, gồm thiết bị vào thiết bị (4) Bus hệ thống, hệ thống kênh dẫn tín hiệu ghép nối thành phần kể Ngồi ra, cịn Chương 1- Giới thiệu chung có giao diện ghép nối vào ghép nối dùng để ghép nối thiết bị ngoại vi vào bus hệ thống Mục 1.2.2 mô tả chi tiết chức khối Bộ nhớ ROM RAM Bus hệ thống CPU Ghép nối vào Ghép nối Thiết bị vào Bàn phím chuột Ổ đĩa Máy quét Thiết bị Màn hình Máy in Ổ đĩa Các thiết bị ngoại vi Hình Sơ đồ khối chức hệ thống máy tính 1.2.2 Các thành phần máy tính 1.2.2.1 Khối xử lý trung tâm Khối xử lý trung tâm (Central Processing Unit - CPU) thành phần quan trọng - đƣợc xem não máy tính Các yêu cầu hệ thống ngƣời sử dụng thƣờng đƣợc biểu diễn thành chƣơng trình máy tính, chƣơng trình thƣờng đƣợc tạo thành từ nhiều lệnh CPU CPU đảm nhiệm việc đọc lệnh chƣơng trình từ nhớ, giải mã thực lệnh Thông qua việc CPU thực lệnh chƣơng trình, máy tính có khả cung cấp tính hữu ích cho ngƣời sử dụng CPU vi mạch tích hợp với mật độ cao, đƣợc cấu thành từ bốn thành phần con: (1) Bộ điều khiển (Control Unit - CU), (2) Bộ tính tốn số học logic (Arithmetic and Logic Unit ALU), (3) Các ghi (Registers) bus CPU (Internal Bus) Bộ điều khiển có nhiệm vụ đọc, giải mã điều khiển trình thực lệnh Bộ tính tốn số học logic chun thực phép toán số học nhƣ cộng trừ, nhân, chia, phép tốn lơgic nhƣ và, hoặc, phủ định phép dịch, quay Các ghi kho chứa lệnh liệu tạm thời cho CPU xử lý Bus CPU có nhiệm vụ truyền dẫn tín hiệu phận CPU kết nối với hệ thống bus ngồi Hình minh hoạ hai CPU hãng Intel 8086 đời năm 1978 Core Duo đời năm 2006 1.2.2.2 Bộ nhớ Bộ nhớ trong, gọi nhớ (Internal Memory hay Main Memory) kho chứa lệnh liệu hệ thống ngƣời dùng phục vụ CPU xử lý Bộ nhớ thƣờng nhớ bán dẫn, bao gồm hai loại: (1) Bộ nhớ đọc (Read Only Memory – ROM) (2) Bộ nhớ truy cập ngẫu nhiên (Random Access Memory – RAM) ROM thƣờng đƣợc sử dụng để lƣu lệnh liệu hệ thống Thông tin ROM đƣợc nạp từ sản xuất thƣờng Chương 1- Giới thiệu chung đọc q trình sử dụng Hơn thơng tin ROM ln tồn kể khơng có nguồn điện ni Hình CPU hãng Intel: 8086 Core Duo Khác với nhớ ROM, nhớ RAM thƣờng đƣợc sử dụng để lƣu lệnh liệu hệ thống ngƣời dùng RAM thƣờng có dung lƣợng lớn nhiều so với ROM Tuy nhiên, thông tin RAM tồn có nguồn điện ni Hình minh hoạ vi mạch nhớ ROM vi mạch nhớ RAM gắn nhớ RAM Hình Bộ nhớ ROM RAM 1.2.2.3 Các thiết bị vào Các thiết bị vào (Input – Output devices), hay gọi thiết bị ngoại vi (Peripheral devices) đảm nhiệm việc nhập liệu vào, điều khiển hệ thống kết xuất liệu Có hai nhóm thiết bị ngoại vi: (1) Các thiết bị vào (Input devices) (2) Các thiết bị (Output devices) Các thiết bị vào dùng để nhập liệu vào điều khiển hệ thống, gồm: bàn phím (keyboard), chuột (mouse), ổ đĩa (Disk Drives), máy quét ảnh (Scanners), Các thiết bị dùng để xuất liệu ra, gồm: hình (Screen), máy in (Printers), ổ đĩa (Disk Drives), máy vẽ (Plotters), Chương 1- Giới thiệu chung 1.2.2.4 Bus hệ thống Bus hệ thống (System Bus) tập đƣờng dây kết nối CPU với thành phần khác máy tính Bus hệ thống thƣờng gồm ba bus con: Bus địa – Bus A (Address bus), Bus liệu – Bus D (Data bus), Bus điều khiển - Bus C (Control bus) Bus địa có nhiệm vụ truyền tín hiệu địa từ CPU đến nhớ thiết bị ngoại vi; Bus liệu vận chuyển tín hiệu liệu theo hai chiều đến CPU; Bus điều khiển truyền tín hiệu điều khiển từ CPU đến thành phần khác, đồng thời truyền tín hiệu trạng thái thành phần khác đến CPU 1.3 LỊCH SỬ PHÁT TRIỂN MÁY TÍNH Lịch sử phát triển máy tính đƣợc chia thành hệ phục thuộc vào phát triển mạch điện tử 1.3.1 Thế hệ (1944-1959) Máy tính hệ sử dụng đèn điện tử làm linh kiện băng từ làm thiết bị vào Mật độ tích hợp linh kiện vào khoảng 1000 linh kiện / foot3 (1 foot = 30.48 cm) Đại diện tiêu biểu hệ máy tính siêu máy tính ENIAC (Electronic Numerical Integrator and Computer), trị giá 500.000 USD 1.3.2 Thế hệ (1960-1964) Máy tính hệ sử dụng bóng bán dẫn (transitor) làm linh kiện Mật độ tích hợp linh kiện vào khoảng 100.000 linh kiện / foot3 Các đại diện tiêu biểu hệ máy tính UNIVAC 1107, UNIVAC III, IBM 7070, 7080, 7090, 1400 series, 1600 series Máy tính UNIVAC đời vào năm 1951, có giá khởi điểm 159.000 USD Một số phiên kết tiếp UNIVAC có giá nằm khoảng 1.250.000 – 1.500.000 USD 1.3.3 Thế hệ (1964-1975) Máy tính hệ sử dụng mạch tích hợp (IC – Integrated Circuit) làm linh kiện Mật độ tích hợp linh kiện vào khoảng 10.000.000 linh kiện / foot3 Các đại diện tiêu biểu hệ máy tính UNIVAC 9000 series, IBM System/360, System 3, System 1.3.4 Thế hệ (1975-1989) Máy tính hệ sử dụng mạch tích hợp loại lớn (LSI – Large Scale Integrated Circuit) làm linh kiện Mật độ tích hợp linh kiện vào khoảng tỷ linh kiện / foot3 Các đại diện tiêu biểu hệ máy tính IBM System 3090, IBM RISC 6000, IBM RT, Cray XMP 1.3.5 Thế hệ (1990 - nay) Máy tính hệ sử dụng mạch tích hợp loại siêu lớn (VLSI – Very Large Scale Integrated Circuit) làm linh kiện Mật độ tích hợp linh kiện cao với cơng nghệ 0.180µm – 0.045µm (kích thƣớc transitor giảm xuống cịn 180 – 45 nano mét) Các đại diện tiêu biểu hệ máy tính máy tính sử dụng CPU Intel Pentium II, III, IV, M, D, Core Duo, Core Duo, Core Quad, Máy tính hệ đạt hiệu xử lý cao, cung cấp nhiều tính tiến tiến, nhƣ hỗ trợ xử lý song song, tích hợp khả xử lý âm hình ảnh Chương 1- Giới thiệu chung 1.4 KIẾN TRÚC MÁY TÍNH VON-NEUMANN 1.4.1 Sơ đồ kiến trúc máy tính von-Neumann Kiến trúc máy tính von-Neumann đƣợc nhà toán học John von-Neumann đƣa vào năm 1945 báo cáo máy tính EDVAC nhƣ minh hoạ Hình - Kiến trúc máy tính von-Neumann ngun thuỷ Hình Kiến trúc máy tính von-Neumann ngun thuỷ Các máy tính đại ngày sử dụng kiến trúc máy tính von-Neumann cải tiến – cịn gọi kiến trúc máy tính von-Neumann đại, nhƣ minh hoạ Hình Đơn vị xử lý trung tâm (CPU) Đơn vị điều khiển (CU) Đơn vị số học-logic (ALU) Bộ nhớ (Main memory) Các thiết bị vào (I/O) Các ghi (Registers) Bus hệ thống Hình Kiến trúc máy tính von-Neumann đại 1.4.2 Các đặc điểm kiến trúc von-Neumann Kiến trúc von-Neumann dựa khái niệm sở: (1) Lệnh liệu đƣợc lƣu trữ nhớ đọc ghi chia sẻ - nhớ đƣợc sử dụng để lƣu trữ lệnh liệu, (2) Bộ nhớ đƣợc đánh địa theo vùng, không phụ thuộc vào nội dung lƣu trữ (3) Các lệnh chƣơng trình đƣợc thực Quá trình thực lệnh đƣợc chia thành giai đoạn (stages) chính: (1) CPU đọc (fetch) lệnh từ nhớ, (2) CPU giải mã thực lệnh; lệnh yêu cầu liệu, CPU đọc liệu từ nhớ; (3) CPU ghi kết thực lệnh vào nhớ (nếu có) Chương 1- Giới thiệu chung 1.5 KIẾN TRÚC MÁY TÍNH HARVARD Kiến trúc máy tính Harvard kiến trúc tiên tiến nhƣ minh hoạ Hình Hình Kiến trúc máy tính Harvard Kiến trúc máy tính Harvard chia nhớ thành hai phần riêng rẽ: Bộ nhớ lƣu chƣơng trình (Program Memory) Bộ nhớ lƣu liệu (Data Memory) Hai hệ thống bus riêng đƣợc sử dụng để kết nối CPU với nhớ lƣu chƣơng trình nhớ lƣu liệu Mỗi hệ thống bus có đầy đủ ba thành phần để truyền dẫn tín hiệu địa chỉ, liệu điều khiển Máy tính dựa kiến trúc Harvard có khả đạt đƣợc tốc độ xử lý cao máy tính dựa kiến trúc von-Neumann kiến trúc Harvard hỗ trợ hai hệ thống bus độc lập với băng thơng lớn Ngồi ra, nhờ có hai hệ thống bus độc lập, hệ thống nhớ kiến trúc Harvard hỗ trợ nhiều lệnh truy nhập nhớ thời điểm, giúp giảm xung đột truy nhập nhớ, đặc biệt CPU sử dụng kỹ thuật đƣờng ống (pipeline) 1.6 CÁC HỆ SỐ ĐẾM VÀ TỔ CHỨC DỮ LIỆU TRÊN MÁY TÍNH 1.6.1 Các hệ số đếm Trong đời sống hàng ngày, hệ đếm thập phân (Decimal Numbering System) hệ đếm thông dụng Tuy nhiên, hầu hết hệ thống tính tốn hệ đếm nhị phân (Binary Numbering System) lại đƣợc sử dụng để biểu diễn liệu Trong hệ đếm nhị phân, chữ số đƣợc sử dụng: biểu diễn giá trị Sai (False) biểu diễn giá trị Đúng (True) Ngoài ra, hệ đếm thập lục phân (Hexadecimal Numbering System) đƣợc sử dụng Hệ thập lục phân sử dụng 16 chữ số: 0-9, A, B, C, D, E, F 1.6.1.1 Hệ đếm thập phân Hệ đếm thập phân hệ đếm số 10, sử dụng 10 chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, Mỗi số hệ 10 đƣợc biểu diễn thành đa thức: anan-1 a1 = an*10n-1an-1*10n-2* *a1*100 Ví dụ: 123 = 1*102 + * 101 + 3*100 = 100 + 20 + 123,456 = 1*102 + * 101 + 3*100 + 4*10-1 + 5*10-2 + 6*10-3 = 100 + 20 + + 0.4 + 0.05 + 0.006 10 Chương 1- Giới thiệu chung 1.6.1.2 Hệ đếm nhị phân Hệ đếm nhị phân hệ đếm số 2, sử dụng chữ số: Mỗi số hệ đƣợc biểu diễn thành đa thức: (anan-1 a1)2 = an*2n-1an-1*2n-2* *a1*20 Ví dụ: (11001010)2 = 1*27 + 1*26 + 0*25 + 0*24 + 1*23 + 0*22 + 1*21 + 0*20 = 128 + 64 + + = (202)10 Việc chuyển đổi số hệ thập phân sang số hệ nhị phân đƣợc thực theo thuật tốn đơn giản nhƣ minh hoạ Hình Hình Chuyển đổi số hệ thập phân sang số hệ nhị phân 1.6.1.3 Hệ đếm thập lục phân Hệ đếm thập lục phân hệ đếm số 16, sử dụng 16 chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Mỗi số hệ 16 đƣợc biểu diễn chữ số hệ nhị phân nhƣ minh hoạ Hình Ƣu điểm hệ thập lục phân số thập lục phân chuyển đổi sang số hệ nhị phân ngƣợc lại cách dễ dàng cần chữ số hệ nhị phân để biểu diễn đơn vị liệu Hình Giá trị số thập lục phân theo hệ thập phân nhị phân 1.6.2 Tổ chức liệu máy tính Dữ liệu máy tính đƣợc biểu diễn theo đơn vị (unit) Các đơn vị biểu diễn liệu sở gồm: bit, nibble, byte, word double-word Bit đơn vị liệu nhỏ nhất: bit lƣu đƣợc tối đa giá trị: 1, hay sai Nibble đơn vị bit Mỗi nibble nhóm bit Một nibble lƣu tối đa 16 giá trị, từ (0000)2 đến (1111)2, chữ số thập lục phân 11 Chương 1- Giới thiệu chung Byte đơn vị liệu nibble Một byte nhóm bits nibbles Một byte lƣu đến 256 giá trị, từ (0000 0000)2 đến (1111 1111)2, từ (00)16 đến (FF)16 Hình minh hoạ đơn vị biểu diễn liệu Byte Hình Đơn vị biểu diễn liệu Byte Word (từ) đơn vị liệu byte Một word nhóm 16 bits, bytes Một word lƣu đến 216 (65536) giá trị, từ (0000)16 đến (FFFF)16 Hình 10 minh hoạ đơn vị biểu diễn liệu word Hình 10 Đơn vị biểu diễn liệu Word Double words (từ kép) đơn vị biểu diễn liệu sở lớn Một double word nhóm 32 bits, bytes, words Một double word lƣu đến 232 giá trị, từ (0000 0000)16 đến (FFFF FFFF)16 Hình 11 minh hoạ đơn vị biểu diễn liệu double word Hình 11 Đơn vị biểu diễn liệu Double word 1.6.3 Số có dấu số khơng dấu Trong hệ thống tính tốn, với số bit biểu diễn giá trị khác số đƣợc biểu diễn có dấu khơng dấu Để biểu diễn số có dấu, ngƣời ta sử dụng bit cao (bên trái nhất) để biểu diễn dấu số - gọi bit dấu, chẳng hạn bít dấu có giá trị số dƣơng bít dấu có giá trị số âm Với số không dấu, tất bit đƣợc sử dụng để biểu diễn giá trị số Nhƣ vậy, miền giá trị biểu diễn số gồm n bít nhƣ sau: Số có dấu: miền biểu diễn từ từ -2n-1 đến + 2n-1 12 Chương 1- Giới thiệu chung - bits: từ -128 đến +128 - 16 bits: từ -32768 đến +32768 - 32 bits: từ -2.147.483.648 đến +2.147.483.648 Số không dấu: từ đến 2n - bits: từ đến 256 - 16 bits: từ đến 65536 - 32 bits: từ đến 4.294.967.296 1.6.4 Bảng mã ASCII Bảng mã ASCII (American Standard Code for Information Interchange) bảng mã ký tự chuẩn tiếng Anh dùng cho trao đổi liệu hệ thống tính tốn Bảng mã ASCII sử dụng bít để biểu diễn ký tự, cho phép định nghĩa tổng số 256 ký tự, đánh số từ đến 255 32 ký tự ký tự số 127 ký tự điều khiển (không in đƣợc) Các ký tự từ số 32 đến 126 ký tự in đƣợc (gồm dấu trắng) Các vị trí cịn lại bảng (128255) để dành cho sử dụng tƣơng lai Hình 12 Hình 13 lần lƣợt minh hoạ ký tự điều khiển ký tự in đƣợc bảng mã ASCII Hình 12 Bảng mã ASCII - Một số ký tự điều khiển 13 Chương 1- Giới thiệu chung Hình 13 Bảng mã ASCII - Các ký tự in đƣợc 1.7 CÂU HỎI ÔN TẬP Phân biệt khái niệm kiến trúc & tổ chức máy tính Nêu sơ đồ khối mô tả chức khối máy tính? So sánh hai kiến trúc von-Neumann Harvard Các hệ đếm 2, 10 16 Các đơn vị lƣu trữ liệu máy tính 14 CHƢƠNG KHỐI XỨ LÝ TRUNG TÂM 2.1 SƠ ĐỒ KHỐI TỔNG QUÁT VÀ CHU TRÌNH XỬ LÝ LỆNH 2.1.1 Sơ đồ khối tổng quát CPU CU A IR Y A Bus MAR Internal Bus PC ALU Z D Bus MBR FR Hình 14 Sơ đồ khối tổng quát CPU Hình 14 trình bày sơ đồ khối nguyên lý tổng quát CPU Các thành phần CPU theo sơ đồ gồm: Bộ điều khiển (Control Unit – CU) Bộ tính tốn số học logic (Arithmetic and Logic Unit) Bus CPU (CPU Internal Bus) Các ghi CPU: - Thanh ghi tích luỹ A (Accummulator) - Bộ đếm chƣơng trình PC (Program Counter) - Thanh ghi lệnh IR (Instruction Register) - Thanh ghi địa nhớ MAR (Memory Address Register) - Thanh ghi đệm liệu MBR (Memory Buffer Register) - Các ghi tạm thời Y Z - Thanh ghi cờ FR (Flag Register) Chương 2- Khối xử lý trung tâm 2.1.2 Chu trình xử lý lệnh Nhƣ trình bày chƣơng 1, nhiệm vụ chủ yếu CPU đọc lệnh từ nhớ, giải mã thực lệnh chƣơng trình Khoảng thời gian để CPU thực xong lệnh kể từ CPU cấp phát tín hiệu địa nhớ chứa lệnh đến hồn tất việc thực lệnh đƣợc gọi chu kỳ lệnh (Insruction Cycle) Mỗi chu kỳ lệnh CPU đƣợc mô tả theo bƣớc sau: Khi chƣơng trình đƣợc kích hoạt, hệ điều hành (OS - Operating System) nạp mã chƣơng trình vào nhớ trong; Địa ô nhớ chứa lệnh chƣơng trình đƣợc nạp vào đếm chƣơng trình PC; Địa ô nhớ chứa lệnh từ PC đƣợc chuyển đến bus địa thông qua ghi MAR; Bus địa chuyển địa ô nhớ đến đơn vị quản lý nhớ (MMU - Memory Management Unit); MMU chọn ô nhớ thực lệnh đọc nội dung ô nhớ; Lệnh (chứa ô nhớ) đƣợc chuyển bus liệu đƣợc chuyển tiếp đến ghi MBR; MBR chuyển lệnh đến ghi lệnh IR; IR chuyển lệnh vào điều khiển CU; CU giải mã lệnh sinh tín hiệu điều khiển cần thiết, yêu cầu phận chức CPU, nhƣ ALU thực lệnh; Giá trị địa đếm PC đƣợc tăng lên đơn vị lệnh trỏ đến địa ô nhớ chứa lệnh tiếp theo; 10 Các bƣớc từ 3-9 đƣợc lặp lại với tất lệnh chƣơng trình 2.2 CÁC THANH GHI 2.2.1 Giới thiệu ghi Thanh ghi (registers) nhớ bên CPU, có nhiệm vụ lƣu trữ tạm thời lệnh liệu cho CPU xử lý Thanh ghi thƣờng có kích thƣớc nhỏ, nhƣng tốc độ làm việc cao tốc độ CPU Các CPU cũ (80x86) có khoảng 16-32 ghi Các CPU đại (nhƣ Pentium Core Duo) có đến hàng trăm ghi Kích thƣớc ghi phụ thuộc vào thiết kế CPU Các kích thƣớc thông dụng ghi 8, 16, 32, 64, 128 256 bit CPU Intel 8086 80286 có ghi bit 16 bit CPU Intel 80386 Pentium II có ghi 16 bit 32 bit Các CPU Pentium Core Duo có ghi 32 bit, 64 bit 128 bit 2.2.1.1 Thanh tích luỹ A Thanh tích luỹ A (Accummulator) ghi quan trọng CPU Thanh ghi A đƣợc sử dụng để lƣu tốn hạng vào mà cịn dùng để chứa kết Ngồi ra, ghi A cịn thƣờng đƣợc dùng lệnh trao đổi liệu với thiết bị vào Kích thƣớc ghi A kích thƣớc từ xử lý CPU: bit, 16 bit, 32 bit 64 bit 16 Chương 2- Khối xử lý trung tâm Ví dụ việc sử dụng ghi A phép toán: x + y s Nạp toán hạng x vào ghi A Nạp toán hạng y vào ghi tạm thời Y ALU thực phép cộng A + Y lƣu kết vào ghi Z Kết phép tính từ Z đƣợc chuyển ghi A Kết ghi A đƣợc lƣu vào ô nhớ s 2.2.1.2 Bộ đếm chương trình PC Bộ đếm chƣơng trình PC (Program Counter) trỏ lệnh (IP – Instruction pointer) chứa địa ô nhớ chứa lệnh đƣợc thực Đặc biệt, PC chứa địa ô nhớ chứa lệnh chƣơng trình chƣơng trình đƣợc kích hoạt đƣợc hệ điều hành nạp vào nhớ Khi CPU thực xong lệnh, địa ô nhớ chứa lệnh đƣợc nạp vào PC Kích thƣớc PC phụ thuộc vào thiết kế CPU Các kích thƣớc thơng dụng PC bit, 16 bit, 32 bit 64 bit 2.2.1.3 Thanh ghi lệnh IR Thanh ghi lệnh IR (Instruction register) lƣu lệnh thực IR nhận lệnh từ MBR chuyển tiếp lệnh đến CU giải mã thực 2.2.1.4 Các ghi MAR MBR MAR ghi địa nhớ (Memory address register) - giao diện CPU bus địa MAR nhận địa ô nhớ chứa lệnh từ PC chuyển tiếp bus địa MBR ghi đệm liệu (Memory buffer register) - giao diện CPU bus địa MBR nhận lệnh từ bus địa chuyển tiếp lệnh đến IR thông qua bus CPU 2.2.1.5 Các ghi tạm thời CPU thƣờng sử dụng số ghi tạm thời để chứa toán hạng đầu vào kết đầu ra, nhƣ ghi tạm thời X, Y Z Ngồi ra, ghi tạm thời cịn tham gia việc hỗ trợ xử lý song song (thực nhiều lệnh thời điểm) hỗ trợ thực lệnh theo chế thực tiên tiến kiểu không theo trật tự (OOO – Out Of Order execution) 2.2.1.6 Con trỏ ngăn xếp SP SP Stack Hình 15 Con trỏ ngăn xếp SP 17 ... a1 = an *10 n-1an -1* 10n-2* *a1 *10 0 Ví dụ: 12 3 = 1* 102 + * 10 1 + 3 *10 0 = 10 0 + 20 + 12 3,456 = 1* 102 + * 10 1 + 3 *10 0 + 4 *10 -1 + 5 *10 -2 + 6 *10 -3 = 10 0 + 20 + + 0.4 + 0.05 + 0.006 10 Chương 1- Giới... thiệu chung 1. 6 .1. 2 Hệ đếm nhị phân Hệ đếm nhị phân hệ đếm số 2, sử dụng chữ số: Mỗi số hệ đƣợc biểu diễn thành đa thức: (anan -1 a1)2 = an*2n-1an -1* 2n-2* *a1*20 Ví dụ: (11 0 010 10)2 = 1* 27 + 1* 26 +... đến (11 11 111 1)2, từ (00 )16 đến (FF )16 Hình minh hoạ đơn vị biểu diễn liệu Byte Hình Đơn vị biểu diễn liệu Byte Word (từ) đơn vị liệu byte Một word nhóm 16 bits, bytes Một word lƣu đến 216 (65536)