Kiến trúc và hệ điều hành máy tính

Bài giảng Kiến trúc máy tính và hệ điều hành - Nguyễn Thị Ngọc Vinh

Bài giảng "Kiến trúc máy tính và hệ điều hành" cung cấp cho người đọc các nội dung: Giới thiệu chung, khối xử lý trung tâm, hệ thống nhớ, hệ thống BUS và các thiết bị ngoại vi, tổng quan về hệ điều hành, các thành phần của hệ điều hành. Mời các bạn cùng tham khảo nội dung chi tiết. » Xem thêm » Thu gọn Chủ đề:

Tóm tắt nội dung tài liệu

  1. HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG ----------------------------------- NGUYỄN THỊ NGỌC VINH BÀI GIẢNG KIẾN TRÚC MÁY TÍNH VÀ HỆ ĐIỀU HÀNH HÀ NỘI 2013
  2. 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ói riêng và Công nghệ thông tin nói chung. Kiến trúc máy tính là khoa học về lựa chọn và ghép nối các thành phần phần cứng của máy tính nhằm đạt được các mục tiêu về hiệu năng cao, tính năng đa dạng và giá thành thấp. Hệ điều hành là thành phần quan trọng trong hệ thống máy tính. Nắm vững kiến thức hệ điều hành là cơ sở cho việc hiểu biết sâu sắc hệ thống máy tính nói chung. Môn học Kiến trúc máy tính và hệ điều hành là môn học cơ sở trong chương trình đào tạo cao đẳng và đại học ngành điện tử viễn thông. Mục tiêu của môn học là cung cấp cho sinh viên các kiến thức cơ sở của kiến trúc máy tính và hệ điều hành, bao gồm: kiến trúc máy tính tổng quát, kiến trúc bộ xử lý trung tâm, kiến trúc tập lệnh máy tính, cơ chế ống lệnh, hệ thống phân cấp bộ nhớ, hệ thống bus và thiết bị ngoài ra; và khái niệm, nguyên lý hoạt động tổng quát của hệ điều hành nói chung như một thành phần quan trọng của hệ thống máy tính. Kiến trúc máy tính và hệ điều hành là lĩnh vực đã được phát triển trong một thời gian tương đối dài với lượng kiến thức đồ sộ, nhưng do khuôn khổ của tài liệu có tính chất là bài giảng môn học, nhóm tác giả cố gắng trình bày những vấn đề cơ sở nhất phục vụ mục tiêu môn học. Nội dung của tài liệu được biên soạn thành hai phần với sáu chương như sau: Phần 1 là nội dung về lĩnh vực kiến trúc máy tính, được cấu trúc thành bốn chương. Chương 1 là phần giới thiệu các khái niệm cơ sở của kiến trúc máy tính, như khái kiệm kiến trúc và tổ chức máy tính; cấu trúc và chức năng các thành phần của máy tính; các kiến trúc máy tính von-Neumann và kiến trúc Harvard. Khái niệm về các hệ đếm và cách tổ chức dữ liệu trên máy tính cũng được trình bày trong chương này. Chương 2 giới thiệu về khối xử lý trung tâm, nguyên tắc hoạt động và các thành phần của nó. Khối xử lý trung tâm là thành phần quan trọng và phức tạp nhất trong máy tính, đóng vai trò là bộ não của máy tính. Thông qua việc thực hiện các lệnh của chương trình bởi khối xử lý trung tâm, máy tính có thể thực thi các yêu cầu của người sử dụng. Chương 2 cũng giới thiệu về tập lệnh của máy tính, bao gồm các khái niệm về lệnh, dạng lệnh, các thành phần của lệnh; các dạng địa chỉ và các chế độ địa chỉ, một số dạng lệnh thông dụng kèm ví dụ minh hoạ. Ngoài ra, cơ chế ống lệnh  xử lý xen kẽ các lệnh cũng được đề cập. Chương 3 trình bày về hệ thống nhớ: khái quát về hệ thống bộ nhớ và cấu trúc phân cấp của hệ thống nhớ; giới thiệu các loại bộ nhớ ROM và RAM. Một phần rất quan trọng của chương là phần giới thiệu về bộ nhớ cache - một bộ nhớ đặc biệt có khả năng giúp tăng tốc hệ thống nhớ nói riêng và cả hệ thống máy tính nói chung. Chương này cũng giới thiệu về một số bộ nhớ ngoài điển hình: đĩa từ và đĩa quang 1
  3. Chương 4 trình bày về hệ thống bus và các thiết bị ngoại vi. Phần trình bày về hệ thống bus đề cập đến các loại bus như ISA, EISA, PCI, AGP và PCI-Express. Phần giới thiệu các thiết bị vào ra đề cập đến nguyên lý hoạt động của một số thiết bị vào ra thông dụng, như bàn phím, chuột, màn hình và máy in. Phần 2 là nội dung về lĩnh vực hệ điều hành, được chia thành hai chương 5 và 6. Chương 5 bao gồm những khái niệm chung về hệ điều hành, các thành phần chức năng và một số kiểu kiến trúc thông dụng. Chương này cũng tóm tắt quá trình hình thành và phát triển của hệ điều hành, qua đó trình bày một số khái niệm và kỹ thuật quan trọng. Chương 6 giới thiệu về các thành phần chức năng chính của hệ điều hành: quản lý hệ thống file, quản lý bộ nhớ và quản lý tiến trình. Trong chương này, các phương pháp, thuật toán cơ bản để hệ điều hành thực hiện việc quản lý hệ thống file, cấp phát bộ nhớ và điều độ tiến trình cũng được trình bày. Tài liệu được biên soạn dựa trên kinh nghiệm giảng dạy môn học Kiến trúc máy tính và Hệ điều hành trong nhiều năm của tác giả và đồng nghiệp trong bộ môn Khoa học máy tính, Khoa Công nghệ thông tin 1, Học viện Công nghệ Bưu chính  Viễn thông, kết hợp tiếp thu các đóng góp của đồng nghiệp và phản hồi từ sinh viên. Tài liệu có thể được sử dụng làm tài liệu học tập cho sinh viên hệ đại học và cao đẳng ngành điện tử viễn thông. Trong quá trình biên soạn, mặc dù nhóm tác giả đã rất cố gắng song không thể tránh khỏi có những thiếu sót. Nhóm tác giả rất mong muốn nhận được ý kiến phản hồi và các góp ý cho các thiếu sót, cũng như ý kiến về việc cập nhật, hoàn thiện nội dung của tài liệu. Hà nội, tháng 9 năm 2013 Tác giả 2
  4. MỤC LỤC CHƯƠNG 1 GIỚI THIỆU CHUNG .......................................................................................... 8 1.1 KHÁI NIỆM VỀ KIẾN TRÚC VÀ TỔ CHỨC MÁY TÍNH .......................................... 8 1.2 CẤU TRÚC VÀ CHỨC NĂNG CÁC THÀNH PHẦN CỦA MÁY TÍNH .................... 8 1.2.1 Sơ đồ khối chức năng ................................................................................................ 8 1.2.2 Các thành phần của máy tính ..................................................................................... 9 1.3 LỊCH SỬ PHÁT TRIỂN MÁY TÍNH ........................................................................... 11 1.3.1 Thế hệ 1 (1944-1959) .............................................................................................. 11 1.3.2 Thế hệ 2 (1960-1964) .............................................................................................. 11 1.3.3 Thế hệ 3 (1964-1975) .............................................................................................. 11 1.3.4 Thế hệ 4 (1975-1989) .............................................................................................. 11 1.3.5 Thế hệ 5 (1990 - nay) .............................................................................................. 11 1.4 KIẾN TRÚC MÁY TÍNH VON-NEUMANN VÀ HARVARD ................................... 12 1.4.1 Kiến trúc máy tính von-Neumann ........................................................................... 12 1.4.2 Kiến trúc máy tính Harvard ..................................................................................... 13 1.5 CÁC HỆ SỐ ĐẾM VÀ TỔ CHỨC DỮ LIỆU TRÊN MÁY TÍNH ............................... 13 1.5.1 Các hệ số đếm .......................................................................................................... 13 1.5.2 Tổ chức dữ liệu trên máy tính ................................................................................. 14 1.5.3 Số có dấu và số không dấu ...................................................................................... 16 1.5.4 Bảng mã ASCII ....................................................................................................... 16 CHƯƠNG 2 KHỐI XỨ LÝ TRUNG TÂM ............................................................................. 18 2.1 KHỐI XỬ LÝ TRUNG TÂM ........................................................................................ 18 2.1.1 Sơ đồ khối tổng quát và các thành phần chức năng của CPU ................................. 18 2.1.2 Chu trình xử lý lệnh ................................................................................................. 19 2.1.3 Các thanh ghi ........................................................................................................... 19 2.1.4 Khối điều khiển ....................................................................................................... 21 2.1.5 Khối số học và logic ................................................................................................ 22 2.1.6 Bus trong CPU ......................................................................................................... 23 2.2 tập lệnh máy tính ............................................................................................................ 23 2.2.1 Khái niệm lệnh, tập lệnh và các thành phần của lệnh ............................................. 23 1
  5. 2.2.2 Chu kỳ và các pha thực hiện lệnh ............................................................................ 23 2.2.3 Các dạng toán hạng.................................................................................................. 23 2.2.4 Các chế độ địa chỉ .................................................................................................... 26 2.2.5 Một số dạng lệnh thông dụng .................................................................................. 29 2.3 GIỚI THIỆU CƠ CHẾ ỐNG LỆNH .............................................................................. 32 2.3.1 Giới thiệu cơ chế ống lệnh ....................................................................................... 32 2.3.2 Các vấn đề của cơ chế ống lệnh và hướng giải quyết .............................................. 34 CHƯƠNG 3 hệ thống nhớ ........................................................................................................ 38 3.1 PHÂN LOẠI BỘ NHỚ MÁY TÍNH .............................................................................. 38 3.1.1 Phân loại bộ nhớ ...................................................................................................... 38 3.1.2 Tổ chức mạch nhớ ................................................................................................... 38 3.2 CẤU TRÚC PHÂN CẤP BỘ NHỚ MÁY TÍNH .......................................................... 39 3.2.1 Giới thiệu cấu trúc phân cấp hệ thống nhớ .............................................................. 39 3.2.2 Vai trò của cấu trúc phân cấp hệ thống nhớ ............................................................ 40 3.3 BỘ NHỚ ROM VÀ RAM .............................................................................................. 41 3.3.1 Bộ nhớ ROM ........................................................................................................... 41 3.3.2 Bộ nhớ RAM ........................................................................................................... 42 3.4 BỘ NHỚ CACHE .......................................................................................................... 44 3.4.1 Cache là gì? ............................................................................................................. 44 3.4.2 Vai trò và nguyên lý hoạt động ............................................................................... 44 3.4.3 Các dạng kiến trúc cache ......................................................................................... 46 3.4.4 Các dạng tổ chức/ánh xạ cache................................................................................ 48 3.4.5 Các phương pháp đọc ghi và các chính sách thay thế ............................................. 53 3.4.6 Hiệu năng cache và các yếu tố ảnh hưởng .............................................................. 55 3.5 bộ nhớ ngoài ................................................................................................................... 56 3.5.1 Đĩa từ ....................................................................................................................... 56 3.5.2 Đĩa quang................................................................................................................. 61 CHƯƠNG 4 HỆ THỐNG BUS VÀ CÁC THIẾT BỊ NGOẠI VI ........................................... 66 4.1 GIỚI THIỆU CHUNG VỀ HỆ THỐNG BUS ................................................................... 66 4.2GIỚI THIỆU MỘT SỐ LOẠI BUS THÔNG DỤNG ..................................................... 68 4.2.1Bus ISA và EISA ...................................................................................................... 68 4.2.2Bus PCI ..................................................................................................................... 69 2
  6. 4.2.3Bus AGP ................................................................................................................... 72 4.2.4Bus PCI Express ....................................................................................................... 72 4.3GIỚI THIỆU CHUNG VỀ CÁC THIẾT BỊ NGOẠI VI ................................................ 73 4.3.1Giới thiệu chung ....................................................................................................... 73 4.3.2Các cổng giao tiếp .................................................................................................... 74 4.4GIỚI THIỆU MỘT SỐ THIẾT BỊ VÀO RA chính ........................................................ 75 4.4.1Bàn phím .................................................................................................................. 75 4.4.2Chuột ........................................................................................................................ 77 4.4.3Màn hình ................................................................................................................... 78 4.4.4Máy in ....................................................................................................................... 81 CHƯƠNG 5 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ................................................................. 85 5.1 KHÁI NIỆM hệ điều hành.............................................................................................. 85 5.1.1 Quản lý tài nguyên ................................................................................................... 85 5.1.2 Quản lý việc thực hiện các chương trình ................................................................. 86 5.2 các dịch vụ do hệ điều hành cung cấp ............................................................................ 87 5.3 quá trình phát triển của hệ điều hành .............................................................................. 88 5.3.1 Các hệ thống đơn giản ............................................................................................. 88 5.3.2 Xử lý theo mẻ .......................................................................................................... 89 5.3.3 Đa chương trình ....................................................................................................... 89 5.3.4 Chia sẻ thời gian ...................................................................................................... 91 5.4 cấu trúc hệ điều hành ...................................................................................................... 91 5.4.1 Các thành phần của hệ điều hành ............................................................................ 91 5.4.2 Nhân của hệ điều hành............................................................................................. 94 5.4.3 Một số kiểu cấu trúc hệ điều hành ........................................................................... 94 5.5 Một số hệ điều hành thông dụng .................................................................................... 97 5.5.1 Unix ......................................................................................................................... 97 5.5.2 Minix ....................................................................................................................... 97 5.5.3 Linux ........................................................................................................................ 98 5.5.4 MS-DOS .................................................................................................................. 99 5.5.5 Win NT .................................................................................................................... 99 CHƯƠNG 6 CÁC THÀNH PHẦN CỦA HỆ ĐIỀU HÀNH ................................................. 100 6.1 Quản lý hệ thống file .................................................................................................... 100 3
  7. 6.1.1 Các khái niệm liên quan tới file............................................................................. 100 6.1.2 Thư mục ................................................................................................................. 103 6.1.3 Cấp phát không gian cho file ................................................................................. 108 6.1.4 Độ tin cậy và bảo mật cho hệ thống file ................................................................ 114 6.2 quản lý bộ nhớ .............................................................................................................. 116 6.2.1 Khái niệm phân chương bộ nhớ ............................................................................ 116 6.2.2 Khái niệm phân trang bộ nhớ ................................................................................ 120 6.2.3 Khái niệm phân đoạn bộ nhớ ................................................................................. 121 6.2.4 Bộ nhớ ảo ............................................................................................................... 123 6.3 quản lý tiến trình ........................................................................................................... 128 6.3.1 Các khái niệm ........................................................................................................ 128 6.3.2 Điều độ tiến trình ................................................................................................... 133 TÀI LIỆU THAM KHẢO ...................................................................................................... 141 4
  8. 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   Thuật ngữ tiếng Việt/Giải thích 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       ALU         Bộ/Đơn vị tính toán số học và logic Program Counter                    PC        Bộ đếm chương trình System Bus                                   Bus hệ thống Memory                                       Bộ nhớ Cache                                        Bộ nhớ đệm / bộ nhớ kết Random Access Memory             RAM         Bộ nhớ truy cập ngẫu nhiên Read Only Memory                 ROM         Bộ nhớ chỉ đọc Basic Input Output System        BIOS        Hệ thống vào ra cơ sở Pipeline                                     Cơ chế ống lệnh hay cơ chế xử lý xen kẽ các lệnh Hit                                          Đoán trúng  là sự kiện CPU truy tìm một mục tin và tìm thấy trong cache. Miss                                         Đoán trượt  là sự kiện CPU truy tìm một mục tin và không tìm thấy trong cache. Advanced Technology              ATA         Chuẩn ghép nối đĩa cứng ATA Attachments Parallel Advanced                PATA        Chuẩn ghép nối đĩa cứng PATA  hay ATA song song Technology Attachments 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            SCSI        Chuẩn ghép nối đĩa cứng SCSI Interface Redundant Array of               RAID        Công nghệ lưu trữ RAID  tạo thành từ một mảng liên Independent Disks                            kết các đĩa cứng vật lý 5
  9. 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          ISA    Bus theo chuẩn công nghiệp ISA Architecture Extended ISA                 EISA   Bus theo chuẩn công nghiệp mở rộng EISA Peripheral Component         PCI    Bus PCI Interconnect Accelerated Graphic Port     AGP    Cổng tăng tốc đồ hoạ AGP PCI Express                  PCIe   Bus 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 File Allocation Table        FAT    Hệ thống cấp phát file New Technology File System   NTFS   Hệ thống file công nghệ mới Extended File System         EXT    Hệ thống file mở rộng (các phiên bản cụ thể Ext2, Ext3, Ext3) 6
  10. PHẦN 1: KIẾN TRÚC MÁY TÍNH
  11. Chương 1- Giới thiệu chung CHƯƠNG 1 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) và Tổ chức máy tính (Computer Organization) là hai trong số các khái niệm cơ bản của ngành Công nghệ máy tính (Computer Engineering). Có thể nói kiến trúc máy tính là bức tranh toàn cảnh về hệ thống máy tính, còn tổ chức máy tính là bức tranh cụ thể về các thành phần phần cứng của hệ thống máy tính. Kiến trúc máy tính là khoa học về việc lựa chọn và kết nối các thành phần phần cứng để tạo ra các máy tính đạt được các yêu cầu về chức năng (functionality), hiệu năng (performance) và giá thành (cost). Yêu cầu chức năng đòi hỏi máy tính phải có thêm nhiều tính năng phong phú và hữu ích; yêu cầu hiệu năng đòi hỏi máy tính phải đạt tốc độ xử lý cao hơn và yêu cầu giá thành đòi hỏi máy tính phải càng ngày càng rẻ hơn. Để đạt được cả ba yêu cầu về chức năng, hiệu năng và giá thành là rất khó khăn. Tuy nhiên, nhờ có sự phát triển rất mạnh mẽ của công nghệ vi xử lý, các máy tính ngày nay có tính năng phong phú, nhanh hơn và rẻ hơn so với máy tính các thế hệ trước. Kiến trúc máy tính được cấu thành từ 3 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) và Thiết kế hệ thống (System Design). Kiến trúc tập lệnh: là hình ảnh của một 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 các thành phần: tập lệnh, các chế độ địa chỉ, các thanh ghi, khuôn dạng địa chỉ và dữ liệu. Vi kiến trúc: là mô tả mức thấp về các thành phần của hệ thống máy tính, phối ghép và việc trao đổi thông tin giữa 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 của máy tính kết nối với nhau như thế nào? và (2) Các thành phần phần cứng của máy tính tương tác với nhau như thế nào để thực thi tập lệnh? Thiết kế hệ thống: bao gồm tất cả các thành phần phần cứng của hệ thống máy tính, bao gồm: Hệ thống phối ghép (các bus và các chuyển mạch), Hệ thống bộ nhớ, Các cơ chế giảm tải cho CPU (như truy nhập trực tiếp bộ nhớ) và Các vấn đề khác (như đa xử lý và xử lý song song). Tổ chức máy tính hay cấu trúc máy tính là khoa học nghiên cứu về các bộ phận của máy tính và phương thức làm việc của chúng. Với định nghĩa như vậy, tổ chức máy tính khá gần gũi với vi kiến trúc  một thành phần của kiến trúc máy tính. Như vậy, có thể thấy rằng, kiến trúc máy tính và khái niệm rộng hơn, nó bao hàm cả 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 năng Hình 1 minh hoạ sơ đồ khối chức năng của một 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 bộ nhớ ROM và bộ nhớ RAM, (3) Các thiết bị ngoại vi, gồm các thiết bị vào và các thiết bị ra và (4) Bus hệ thống, là hệ thống kênh dẫn tín hiệu ghép nối các thành phần kể trên. Ngoài ra, còn 8
  12. Chương 1- Giới thiệu chung có các giao diện ghép nối vào và ghép nối ra dùng để ghép nối các thiết bị ngoại vi vào bus hệ thống. Mục 1.2.2 tiếp theo sẽ mô tả chi tiết chức năng của từng khối. Bộ nhớ trong ROM                       RAM CPU                                Bus hệ thống Ghép nối vào                Ghép nối ra Thiết bị vào                Thiết bị ra Bàn phím                    Màn hình chuột                      Máy in Ổ đĩa                      Ổ đĩa Máy quét Các thiết bị ngoại vi Hình 1. Sơ đồ khối chức năng của hệ thống máy tính 1.2.2 Các thành phần của 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) là thành phần quan trọng nhất - được xem là bộ não của máy tính. Các yêu cầu của hệ thống và của người sử dụng thường được biểu diễn thành các chương trình máy tính, trong đó mỗi chương trình thường được tạo thành từ nhiều lệnh của CPU. CPU đảm nhiệm việc đọc các lệnh của chương trình từ bộ nhớ, giải mã và thực hiện lệnh. Thông qua việc CPU thực hiện các lệnh của chương trình, máy tính có khả năng cung cấp các tính năng hữu ích cho người sử dụng. CPU là vi mạch tích hợp với mật độ rấ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 toán số học và logic (Arithmetic and Logic Unit - ALU), (3) Các thanh ghi (Registers) và bus trong CPU (Internal Bus). Bộ điều khiển có nhiệm vụ đọc, giải mã và điều khiển quá trình thực hiện lệnh. Bộ tính toán số học và logic chuyên thực hiện các phép toán số học như cộng trừ, nhân, chia, và các phép toán lôgic như và, hoặc, phủ định và các phép dịch, quay. Các thanh ghi là kho chứa lệnh và dữ liệu tạm thời cho CPU xử lý. Bus trong CPU có nhiệm vụ truyền dẫn các tín hiệu giữa các bộ phận trong CPU và kết nối với hệ thống bus ngoài. Hình 2 minh hoạ hai CPU của hãng Intel là 8086 ra đời năm 1978 và Core 2 Duo ra đời năm 2006. 1.2.2.2 Bộ nhớ trong Bộ nhớ trong, còn gọi là bộ nhớ chính (Internal Memory hay Main Memory) là kho chứa lệnh và dữ liệu của hệ thống và của người dùng phục vụ CPU xử lý. Bộ nhớ trong thường là bộ nhớ bán dẫn, bao gồm hai loại: (1) Bộ nhớ chỉ đọc (Read Only Memory  ROM) và (2) Bộ nhớ truy cập ngẫu nhiên (Random Access Memory  RAM). ROM thường được sử dụng để 9
  13. Chương 1- Giới thiệu chung lưu lệnh và dữ liệu của hệ thống. Thông tin trong ROM được nạp từ khi sản xuất và thường chỉ có thể đọc ra trong quá trình sử dụng. Hơn nữa thông tin trong ROM luôn tồn tại kể cả khi không có nguồn điện nuôi. Hình 2. CPU của hãng Intel: 8086 và Core 2 Duo Khác với bộ nhớ ROM, bộ nhớ RAM thường được sử dụng để lưu lệnh và dữ liệu của cả hệ thống và của người dùng. RAM thường có dung lượng lớn hơn nhiều so với ROM. Tuy nhiên, thông tin trong RAM chỉ tồn tại khi có nguồn điện nuôi. Hình 3 minh hoạ vi mạch bộ nhớ ROM và các vi mạch nhớ RAM gắn trên một thanh nhớ RAM. Hình 3 Bộ nhớ ROM và RAM 1.2.2.3 Các thiết bị vào ra Các thiết bị vào ra (Input  Output devices), hay còn gọi là các thiết bị ngoại vi (Peripheral devices) đảm nhiệm việc nhập dữ liệu vào, điều khiển hệ thống và kết xuất dữ liệu ra. Có hai nhóm thiết bị ngoại vi: (1) Các thiết bị vào (Input devices) và (2) Các thiết bị ra (Output devices). Các thiết bị vào dùng để nhập dữ liệu vào và đ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ị ra 10
  14. Chương 1- Giới thiệu chung dùng để xuất dữ liệu ra, gồm: màn hình (Screen), máy in (Printers), ổ đĩa (Disk Drives), máy vẽ (Plotters),... 1.2.2.4 Bus hệ thống Bus hệ thống (System Bus) là một tập các đường dây kết nối CPU với các thành phần khác của máy tính. Bus hệ thống thường gồm ba bus con: Bus địa chỉ  Bus A (Address bus), Bus dữ liệu  Bus D (Data bus), Bus điều khiển - Bus C (Control bus). Bus địa chỉ có nhiệm vụ truyền tín hiệu địa chỉ từ CPU đến bộ nhớ và các thiết bị ngoại vi; Bus dữ liệu vận chuyển các tín hiệu dữ liệu theo hai chiều đi và đến CPU; Bus điều khiển truyền tín hiệu điều khiển từ CPU đến các thành phần khác, đồng thời truyền tín hiệu trạng thái của các 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ó thể được chia thành 5 thế hệ chính phục thuộc vào sự phát triển của mạch điện tử. 1.3.1 Thế hệ 1 (1944-1959) Máy tính thế hệ 1 sử dụng đèn điện tử làm linh kiện chính và băng từ làm thiết bị vào ra. 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 của thế hệ máy tính này là siêu máy tính ENIAC (Electronic Numerical Integrator and Computer), trị giá 500.000 USD. 1.3.2 Thế hệ 2 (1960-1964) Máy tính thế hệ 2 sử dụng bóng bán dẫn (transitor) làm linh kiện chính. 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 của thế hệ máy tính này là UNIVAC 1107, UNIVAC III, IBM 7070, 7080, 7090, 1400 series, 1600 series. Máy tính UNIVAC đầu tiên ra đời vào năm 1951, có giá khởi điểm là 159.000 USD. Một số phiên bản kết tiếp của UNIVAC có giá nằm trong khoảng 1.250.000  1.500.000 USD. 1.3.3 Thế hệ 3 (1964-1975) Máy tính thế hệ 3 sử dụng mạch tích hợp (IC  Integrated Circuit) làm linh kiện chính. 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 của thế hệ máy tính này là UNIVAC 9000 series, IBM System/360, System 3, System 7. 1.3.4 Thế hệ 4 (1975-1989) Máy tính thế hệ 4 sử dụng mạch tích hợp loại lớn (LSI  Large Scale Integrated Circuit) làm linh kiện chính. Mật độ tích hợp linh kiện vào khoảng 1 tỷ linh kiện / foot3. Các đại diện tiêu biểu của thế hệ máy tính này là IBM System 3090, IBM RISC 6000, IBM RT, Cray 2 XMP. 1.3.5 Thế hệ 5 (1990 - nay) Máy tính thế hệ 5 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 chính. Mật độ tích hợp linh kiện rất cao với các 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 của thế hệ máy tính này là máy tính sử dụng CPU Intel Pentium II, III, IV, M, D, Core Duo, Core 11
  15. Chương 1- Giới thiệu chung 2 Duo, Core Quad,... Máy tính thế hệ 5 đạt hiệu năng xử lý rất cao, cung cấp nhiều tính năng tiến tiến, như hỗ trợ xử lý song song, tích hợp khả năng xử lý âm thanh và hình ảnh. 1.4 KIẾN TRÚC MÁY TÍNH VON-NEUMANN VÀ HARVARD 1.4.1 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 ra vào năm 1945 trong một báo cáo về máy tính EDVAC như minh hoạ trên Hình 4 - Kiến trúc máy tính von-Neumann nguyên thuỷ. Hình 4 Kiến trúc máy tính von-Neumann nguyên thuỷ Các máy tính hiện đại ngày nay sử dụng kiến trúc máy tính von-Neumann cải tiến  còn gọi là kiến trúc máy tính von-Neumann hiện đại, như minh hoạ trên Hình 5. Đơn vị xử lý trung tâm (CPU) Đơn vị điều khiển (CU) Bộ nhớ chính             Các thiết bị Đơn vị số            (Main memory)             vào ra (I/O) học-logic (ALU) Các thanh ghi (Registers) Bus hệ thống Hình 5 Kiến trúc máy tính von-Neumann hiện đại Kiến trúc von-Neumann dựa trên 3 khái niệm cơ sở: (1) Lệnh và dữ liệu được lưu trữ trong bộ nhớ đọc ghi chia sẻ - một bộ nhớ duy nhất được sử dụng để lưu trữ cả lệnh và dữ liệu, (2) Bộ nhớ được đánh địa chỉ theo vùng, không phụ thuộc vào nội dung nó lưu trữ và (3) Các lệnh 12
  16. Chương 1- Giới thiệu chung của một chương trình được thực hiện tuần tự. Quá trình thực hiện lệnh được chia thành 3 giai đoạn (stages) chính: (1) CPU đọc (fetch) lệnh từ bộ nhớ, (2) CPU giải mã và thực hiện lệnh; nếu lệnh yêu cầu dữ liệu, CPU đọc dữ liệu từ bộ nhớ; và (3) CPU ghi kết quả thực hiện lệnh vào bộ nhớ (nếu có). 1.4.2 Kiến trúc máy tính Harvard Kiến trúc máy tính Harvard là một kiến trúc tiên tiến như minh hoạ trên Hình 6. Hình 6 Kiến trúc máy tính Harvard Kiến trúc máy tính Harvard chia bộ nhớ trong thành hai phần riêng rẽ: Bộ nhớ lưu chương trình (Program Memory) và Bộ nhớ lưu dữ liệu (Data Memory). Hai hệ thống bus riêng được sử dụng để kết nối CPU với bộ nhớ lưu chương trình và bộ nhớ lưu dữ liệu. Mỗi hệ thống bus đều có đầy đủ ba thành phần để truyền dẫn các tín hiệu địa chỉ, dữ liệu và điều khiển. Máy tính dựa trên kiến trúc Harvard có khả năng đạt được tốc độ xử lý cao hơn máy tính dựa trên kiến trúc von-Neumann do kiến trúc Harvard hỗ trợ hai hệ thống bus độc lập với băng thông lớn hơn. Ngoài ra, nhờ có hai hệ thống bus độc lập, hệ thống nhớ trong kiến trúc Harvard hỗ trợ nhiều lệnh truy nhập bộ nhớ tại một thời điểm, giúp giảm xung đột truy nhập bộ nhớ, đặc biệt khi CPU sử dụng kỹ thuật đường ống (pipeline). 1.5 CÁC HỆ SỐ ĐẾM VÀ TỔ CHỨC DỮ LIỆU TRÊN MÁY TÍNH 1.5.1 Các hệ số đếm Trong đời sống hàng ngày, hệ đếm thập phân (Decimal Numbering System) là hệ đếm thông dụng nhất. Tuy nhiên, trong hầu hết các hệ thống tính toán hệ đếm nhị phân (Binary Numbering System) lại được sử dụng để biểu diễn dữ liệu. Trong hệ đếm nhị phân, chỉ 2 chữ số 0 và 1 được sử dụng: 0 biểu diễn giá trị Sai (False) và 1 biểu diễn giá trị Đúng (True). Ngoài ra, hệ đếm thập lục phân (Hexadecimal Numbering System) cũng đượ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.5.1.1 Hệ đếm thập phân Hệ đếm thập phân là hệ đếm cơ số 10, sử dụng 10 chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Mỗi số trong hệ 10 có thể được biểu diễn thành một đa thức: anan-1...a1 = an*10n-1an-1*10n-2*...*a1*100 Ví dụ: 13
  17. Chương 1- Giới thiệu chung 123         = 1*102 + 2 * 101 + 3*100 = 100 + 20 + 3 123,456     = 1*102 + 2 * 101 + 3*100 + 4*10-1 + 5*10-2 + 6*10-3 = 100 + 20 + 3 + 0.4 + 0.05 + 0.006 1.5.1.2 Hệ đếm nhị phân Hệ đếm nhị phân là hệ đếm cơ số 2, chỉ sử dụng 2 chữ số: 0 và 1. Mỗi số trong hệ 2 cũng có thể được biểu diễn thành 1 đ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 + 8 + 2 = (202)10 Việc chuyển đổi số hệ thập phân sang số hệ nhị phân có thể được thực hiện theo thuật toán đơn giản như minh hoạ trên Hình 7. Hình 7 Chuyển đổi số hệ thập phân sang số hệ nhị phân 1.5.1.3 Hệ đếm thập lục phân Hệ đếm thập lục phân là hệ đếm cơ 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ố trong hệ 16 được biểu diễn bởi 4 chữ số trong hệ nhị phân như minh hoạ trên Hình 8. Ưu điểm của hệ thập lục phân là số thập lục phân có thể chuyển đổi sang số hệ nhị phân và ngược lại một cách dễ dàng và cần ít chữ số hơn hệ nhị phân để biểu diễn cùng một đơn vị dữ liệu. Hình 8 Giá trị các số thập lục phân theo hệ thập phân và nhị phân 1.5.2 Tổ chức dữ liệu trên máy tính 14
  18. Chương 1- Giới thiệu chung Dữ liệu trên máy tính được biểu diễn theo các đơn vị (unit). Các đơn vị biểu diễn dữ liệu cơ sở gồm: bit, nibble, byte, word và double-word. Bit là đơn vị dữ liệu nhỏ nhất: mỗi bit chỉ lưu được tối đa 2 giá trị: 0 hoặc 1, hay đúng hoặc sai. Nibble là đơn vị kế tiếp bit. Mỗi nibble là một nhóm 4 bit. Một nibble có thể lưu tối đa 16 giá trị, từ (0000)2 đến (1111)2, hoặc một chữ số thập lục phân. Byte là đơn vị dữ liệu kế tiếp nibble. Một byte là một nhóm của 8 bits hoặc 2 nibbles. Một byte có thể lưu đến 256 giá trị, từ (0000 0000)2 đến (1111 1111)2, hoặc từ (00)16 đến (FF)16. Hình 9 minh hoạ đơn vị biểu diễn dữ liệu Byte. Hình 9 Đơn vị biểu diễn dữ liệu Byte Word (từ) là đơn vị dữ liệu kế tiếp byte. Một word là một nhóm của 16 bits, hoặc 2 bytes. Một word có thể lưu đến 216 (65536) giá trị, từ (0000)16 đến (FFFF)16. Hình 10 minh hoạ đơn vị biểu diễn dữ liệu word. Hình 10 Đơn vị biểu diễn dữ liệu Word Double words (từ kép) là đơn vị biểu diễn dữ liệu cơ sở lớn nhất. Một double word là một nhóm 32 bits, hoặc 4 bytes, hoặc 2 words. Một double word có thể 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 dữ liệu double word. Hình 11 Đơn vị biểu diễn dữ liệu Double word 15
  19. Chương 1- Giới thiệu chung 1.5.3 Số có dấu và số không dấu Trong các hệ thống tính toán, với cùng một số bit có thể biểu diễn các giá trị khác nhau nếu số được biểu diễn là có dấu hoặc không dấu. Để biểu diễn số có dấu, người ta sử dụng bit cao nhất (bên trái nhất) để biểu diễn dấu của số - gọi là bit dấu, chẳng hạn bít dấu có giá trị 0 là số dương và bít dấu có giá trị 1 là số âm. Với số không dấu, tất cả các bit được sử dụng để biểu diễn giá trị của số. Như vậy, miền giá trị có thể biểu diễn của một 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 -   8 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ừ 0 đến 2n -   8 bits: từ 0 đến 256 -   16 bits: từ 0 đến 65536 -   32 bits: từ 0 đến 4.294.967.296 1.5.4 Bảng mã ASCII Bảng mã ASCII (American Standard Code for Information Interchange) là bảng mã các ký tự chuẩn tiếng Anh dùng cho trao đổi dữ liệu giữa các hệ thống tính toán. Bảng mã ASCII sử dụng 8 bít để biểu diễn 1 ký tự, cho phép định nghĩa tổng số 256 ký tự, đánh số từ 0 đến 255. 32 ký tự đầu tiên và ký tự số 127 là các ký tự điều khiển (không in ra được). Các ký tự từ số 32 đến 126 là các ký tự có thể in được (gồm cả dấu trắng). Các vị trí còn lại trong bảng (128- 255) để dành cho sử dụng trong tương lai. Hình 12 và Hình 13 lần lượt là minh hoạ các ký tự điều khiển và các ký tự in được của bảng mã ASCII. 16
  20. Chương 1- Giới thiệu chung Hình 12 Bảng mã ASCII - Một số ký tự điều khiển Hình 13 Bảng mã ASCII - Các ký tự in được 17