Tài liệu môn Hệ thống máy tính

doc 441 trang vanle 10100
Bạn đang xem 20 trang mẫu của tài liệu "Tài liệu môn Hệ thống 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:

  • doctai_lieu_mon_he_thong_may_tinh.doc

Nội dung text: Tài liệu môn Hệ thống máy tính

  1. Nhập môn Hệ thống máy tính
  2. FE No1 – Giới thiệu về hệ thống máy tính MỤC LỤC Phần 1HỆ THỐNG MÁY TÍNH 1 Lý thuyết cơ bản về thông tin 1 Giới thiệu 2 1.1 Biểu diễn dữ liệu 2 1.1.1 Chuyển đổi số 2 1.1.2 Biểu diễn số 11 1.1.3 Phép toán và độ chính xác 22 1.1.4 Biểu diễn các giá trị phi số 23 1.2 Thông tin và lôgic 26 1.2.1 Logic mệnh đề 26 1.2.2 Phép toán logic 26 Bài tập 29 2 Phần cứng 32 Giới thiệu 33 2.1 Phần tử thông tin 34 2.1.1 Mạch tích hợp 34 2.1.2 Bộ nhớ bán dẫn 34 2.2 Kiến trúc bộ xử lý 36 2.2.1 Kiến trúc và nguyên tắc hoạt động của bộ xử lý 36 2.2.2 Nâng cao tốc độ xử lý trong bộ xử lý 47 2.2.3 Cơ chế vận hành 50 2.2.4 Đa bộ xử lí 54 2.2.5 Hiệu năng của bộ xử lý 55 2.3 Kiến trúc của bộ nhớ 57 2.3.1 Những kiểu bộ nhớ 57 2.3.2 Dung lượng và hiệu năng bộ nhớ 58 2.3.3 Cấu hình bộ nhớ 59 2.4 Thiết bị lưu giữ phụ 60 2.4.1 Kiểu và đặc trưng của thiết bị lưu giữ phụ 60 2.4.2 Các kiểu RAID và đặc tính của chúng 71 2.5 Cấu trúc vào/ra và các thiết bị 73 2.5.1 Phương pháp điều khiển vào/ra 73 2.5.2 Giao diện vào/ra 75 2.5.3 Các loại thiết bị vào/ra và đặc trưng của chúng 78 2.6 Các loại máy tính 90 Bài tập 94 3 Phần mềm cơ bản 98 Giới thiệu 99 3.1 Hệ điều hành 99 3.1.1 Cấu hình và chức năng của hệ điều hành 99 3.1.2 Quản lý việc 102
  3. FE No1 – Giới thiệu về hệ thống máy tính 3.1.3 Quản lý tiến trình 104 3.1.4 Quản lý bộ nhớ chính 108 3.1.5 Quản lý bộ nhớ ảo 110 3.1.6 Quản lý tệp 112 3.1.7 Quản lí an ninh 115 3.1.8 Quản lý hỏng hóc 116 3.1.9 Bộ giám sát 116 3.2 Các kiểu hệ điều hành 117 3.2.1 Hệ điều hành vạn năng 117 3.2.2 Hệ điều hành mạng (NOS) 120 3.3 Phần mềm giữa 122 3.3.1 DBMS 122 3.3.2 Hệ thống quản lý truyền thông 122 3.3.3 Công cụ hỗ trợ phát triển phần mềm 123 3.3.4 Công cụ quản lý vận hành 123 3.3.5 ORB 123 Bài tập 124 4 Hệ thống đa phương tiện 128 Giới thiệu 129 4.1 Đa phương tiện là gì? 129 4.1.1 Dịch vụ đa phương tiện 129 4.1.2 Nền thực hiện hệ thống đa phương tiện 131 4.1.3 Công nghệ đa phương tiện 135 4.2 Ứng dụng đa phương tiện 136 4.2.1 Nhận dạng tiếng nói và hình ảnh 136 4.2.2 Tổng hợp tiếng nói và hình ảnh 136 4.3 Hệ thống ứng dụng đa phương tiện 138 Bài tập 139 5 Cấu hình hệ thống 140 5.1 Phân loại hệ thống và cấu hình hệ thống 141 5.1.1 Phân loại hệ thống 141 5.1.2 Hệ thống khách / phục vụ 141 5.1.3 Cấu hình hệ thống 144 5.2 Các phương thức hệ thống 148 5.2.1 Phương thức xử lý hệ thống 148 5.2.2 Phương thức sử dụng hệ thống 150 5.2.3 Phương thức điều hành hệ thống 154 5.2.4 Tính toán trên Web 155 5.3 Hiệu năng hệ thống 156 5.3.1 Tính toán hiệu năng 156 5.3.2 Thiết kế hiệu năng 158 5.3.3 Đánh giá hiệu năng 158 5.4 Độ tin cậy của hệ thống 160 5.4.1 Tính độ tin cậy 160 5.4.2 Tiết kế tính tin cậy 163 5.4.3 Mục tiêu và đánh giá về độ tin cậy 163 5.4.4 Chi phí tài chính 165
  4. FE No1 – Giới thiệu về hệ thống máy tính Bài tập 166 Trả lời bài tập 170 Trả lời cho Quyển 1, Phần 1, Chương 1 (Lý thuyết thông tin cơ bản) 170 Trả lời cho Quyển 1 Phần 1 Chương 2 (Phần cứng) 178 Trả lời Quyển 1 Phần 1 Chương 3 (Phần mềm cơ bản) 185 Trả lời bài tập cho Quyển 1 Phần 1 Chương 4 (Hệ thống đa phương tiện) 193 Trả lời bài tập Quyển 1 Phần 1 Chương 5 (Cấu hình hệ thống) 196 Phần 2XỬ LÝ THÔNG TIN VÀ AN NINH 1 Kế toán 205 1.1 Hoạt động nghiệp vụ và thông tin kế toán 206 1.1.1 Năm tài chính và thông tin kế toán 206 1.1.2 Cấu trúc tài khoản 209 1.2 Cách đọc bản kê tài chính 214 1.2.1 Cách đọc tờ quyết toán 214 1.2.2 Cách đọc bản kê lợi tức 222 1.3 Kế toán tài chính và kế toán quản lí 229 1.3.1 Kế toán tài chính 229 1.3.2 Kế toán quản lý 230 1.3.3 Cấu hình hệ thông tin kế toán 237 1.3.4 Chuẩn quốc tế 238 Bài tập 248 2 Lĩnh vực ứng dụng của hệ thống máy tính 253 2.1 Ứng dụng kĩ nghệ 254 2.1.1 Kiểm soát tự động sản xuất 254 2.1.2 CAD/CAM/CAE 255 2.1.3 Hệ thống FA và CIM 256 2.2 Ứng dụng kinh doanh 258 2.2.1 Hệ hỗ trợ nghiệp vụ tổng hành dinh 258 2.2.2 Hệ thống hỗ trợ kinh doanh bán lẻ 259 2.2.3 Hệ thống tài chính 262 2.2.4 Trao đổi dữ liệu giao tác liên doanh nghiệp 264 Bài tập 267 3 An ninh 269 3.1 An ninh thông tin 270 3.1.1 An ninh thông tin là gì? 270 3.1.2 An ninh logic 273 3.2 Phân tích rủi ro 274 3.2.1 Quản lí rủi ro 274 3.2.2 Kiểu, ước lượng và phân tích rủi ro 274 3.2.3 Phương pháp xử lí rủi ro 278 3.2.4 Biện pháp an ninh 279 3.2.5 Bảo vệ dữ liệu 279 3.2.6 Bảo vệ tính riêng tư 280
  5. FE No1 – Giới thiệu về hệ thống máy tính Bài tập 281 4 Nghiên cứu hoạt động 283 4.1 Nghiên cứu hoạt động 284 4.1.1 Xác suất và thống kê 284 4.1.2 Qui hoạch tuyến tính 296 4.1.3 Lập lịch 300 4.1.4 Lí thuyết hàng đợi 310 4.1.5 Kiểm soát kho 315 4.1.6 Dự báo nhu cầu 326 Bài tập 336 5 Bổ sung hệ thống máy tính 345 Giới thiệu 346 5.1 Hệ thống đa phương tiện 346 5.1.1 Phát triển nội dung đa phương tiện 346 Trả lời bài tập 356 Trả lời bài tập cho Quyển 1 Phần 2 Chương 1 (Kế toán) 356 Trả lời cho Quyển 1 Phần 2 Chương (Các lĩnh vực ứng dụng của hệ thống máy tính) 364 Trả lời cho Quyển 1 Phần 2, Chương 3 (An ninh) 369 Trả lời cho Quyển 1 Phần 2 Chương 4 (Nghiên cứu các hoạt động) 374
  6. Phần 1 HỆ THỐNG MÁY TÍNH
  7. Giới thiệu Loạt sách giáo khoa này đã được xây dựng trên cơ sở Chuẩn kỹ năng Kỹ sư Công nghệ Thông tin được đưa ra công khai tháng 7/2000. Bốn tập sau đây bao quát toàn bộ nội dung của tri thức và kỹ năng nền tảng cần cho việc phát triển, vận hành và bảo trì các hệ thông tin: No. 1: Nhập môn Hệ thống máy tính No. 2: Phát triển và vận hành hệ thống No. 3: Thiết kế trong và lập trình - Thân tri thức cốt lõi và thực hành No. 4: Công nghệ Mạng và Cơ sở dữ liệu Phần này cho những giải thích dễ dàng một cách có hệ thống để cho những người đang học về các hệ thống máy tính lần đầu tiên có thể dễ dàng có được tri thức trong những lĩnh vực này. Phần này bao gồm các chương sau: Phần 1: Hệ thống máy tính Chương 1: Lý thuyết cơ sở về thông tin Chương 2: Phần cứng Chương 3: Phần mềm cơ sở Chương 4: Hệ thống đa phương tiện Chương 5: Cấu hình hệ thống Chương 6: Các chủ đề mới
  8. 1 Lý thuyết cơ bản về thông tin Mục đích Hiểu cơ chế biểu diễn thông tin trong máy tính và các lý thuyết cơ bản. Đặc biệt, hệ thống nhị phân là một chủ đề quan trọng, không thể thiếu để biểu diễn dữ liệu trong máy tính. Tuy nhiên những người thường dùng hệ thập phân cũng có khó khăn khi làm quen với cách biểu diễn này, vì vậy mà cần học kỹ.  Hiểu các đơn vị dữ liệu cơ bản của máy tính như số nhị phân, bit, byte, từ, v.v và chuyển đổi chúng từ hoặc sang dạng thập phân hay dạng cơ số 16  Hiểu các khái niệm cơ bản về biểu diễn dữ liệu bên trong máy tính, chú trọng vào các dữ liệu số, mã ký tự, v.v  Hiểu các phép toán mệnh đề và các toán tử logic.
  9. 1.1 Biểu diễn dữ liệu 2 Giới thiệu Để máy tính làm việc được, cần chuyển các thông tin ta dùng trong cuộc sống hàng ngày thành dạng máy tính có thể hiểu được. Trong phần này ta sẽ học cách thông tin thực sự được thể hiện bên trong máy tính và cách chúng được xử lý. 1.1 Biểu diễn dữ liệu 1.1.1 Chuyển đổi số Để máy tính xử lý được điều cần thiết đầu tiên là đưa vào bộ nhớ một chương trình chứa các nhiệm vụ và quy trình cần xử lý. Hệ thống nhị phân được dùng để biểu diễn các thông tin này. Trong khi hệ thống nhị phân biểu diễn thông tin bằng các tổ hợp của số "0" và "1," thì chúng ta lại thường dùng hệ thống thập phân. Vì vậy kiến thức cơ bản và quan trọng mà người kỹ sư xử lý thông tin phải có là hiểu được mối quan hệ giữa các số nhị phân và thập phân. Đây là sự khác nhau cơ bản giữa máy tính và con người và cũng là điểm giao tiếp giữa chúng. Vì máy tính thao tác hoàn toàn trên cơ sở các số nhị phân, nên ta sẽ xem xét quan hệ giữa số nhị phân và thập phân, và việc tổ hợp các số hệ 16 với các số nhị phân. (1) Đơn vị biểu diễn dữ liệu và đơn vị xử lý  Số nhị phân Cấu trúc bên trong của máy tính gồm rất nhiều mạch điện tử. Số nhị phân biểu diễn 2 trạng thái của mạch điện tử như sau: Dòng điện đi qua hoặc không đi qua Điện áp cao hoặc thấp Thí dụ, đặt trạng thái có dòng điện đi qua (bật điện) là "1" và trạng thái không có dòng điện đi qua (tắt điện) là "0," sau đó bằng cách thay trạng thái máy tính hoặc dữ liệu bằng các giá trị số, việc biểu diễn chúng có thể thực hiện một cách cực kỳ tiện lợi. Việc biểu diễn số thập phân từ "0" đến "10" bằng cách sử dụng số nhị phân được minh họa trong hình 1- 1-1. Hình 1-1-1 Số thập phân và số nhị phân Số thập phân Số nhị phân 0 0 1 1 2 10 Nhớ 1 3 11 4 100 Nhớ 1 5 101 6 110 7 111 8 1000 Nhớ 1 9 1001 Nhớ 1 10 1010
  10. 1.1 Biểu diễn dữ liệu 3 Như ta thấy trong hình trên, so với hệ thập phân, phép nhớ để chuyển sang hàng bên xảy ra thường xuyên hơn trong hệ nhị phân, nhưng vì ngoài "0" và "1" ra thì không dùng số nào khác nữa nên đó là công cụ mạnh nhất cho máy tính.  Bits Một bit (chữ số nhị phân) là 1 chữ số của hệ nhị phân được biểu diễn bằng "0" hoặc "1." Bit là đơn vị nhỏ nhất để biểu diễn dữ liệu trong máy tính. 1 bit chỉ biểu diễn được 2 giá trị dữ liệu, "0" hoặc "1," nhưng 2 bit có thể biểu diễn 4 giá trị khác nhau: 00 01 10 11 Tuy nhiên, trong thực tế, khối lượng thông tin cần xử lý bằng máy tính quá lớn (có 26 giá trị trong bảng chữ cái tiếng Anh) nên 2 bits, 0 và 1, không đủ cho phương pháp biểu diễn thông tin.  Bytes So với bit, là đơn vị nhỏ nhất để biểu diễn dữ liệu trong máy tính, thì byte là một đơn vị biểu diễn một số hay một ký tự bằng 8 bits. Vì một byte bằng 8 bits, nên sau đây là các thông tin có thể được biểu diễn bằng một byte, bằng tổ hợp của "0" và "1." 00000000 00000001 00000010 11111101 11111110 11111111 Thông tin biểu diễn bằng bằng chuỗi các số 1 và 0 gọi là mẫu bit. Vì 1 bit có thể được biểu diễn bằng 2 cách, nên tổ hợp các mẫu 8 bit thành 1 byte cho phép biểu diễn 2 8=256 kiểu thông tin. Nói cách khác ngoài các ký tự và số, các ký hiệu như "+" và "-" hoặc các ký hiệu đặc biệt khác như " " cũng có thể biểu diễn bằng một byte. 1 0 0 0 0 0 0 Hình 1-1-2 byte 0 0 Các kiểu thông tin có thể biểu diễn được bằng một byte haicách bằng haicách bằng Vì 1 bit Vì 1 được biểu diễn bit Vì 1 được biểu diễn 2 x 2 x 2 x 2 x 2 x 2 x =256 2 x 2 kiểu 28 Tuy nhiên vì số lượng kí tự kanji (ký tự Trung Quốc) có tới hàng ngàn, nên chúng không thể biểu diễn bằng một byte. Do đó, 2 bytes được nối lại để có 16 bits, và một kí tự kanji được biểu diễn bằng 2 bytes. Với 16 bits, 216 = 65,536 kí tự kanji có thể được biểu diễn.  Từ Bit là đơn vị nhỏ nhất biểu diễn dữ liệu trong máy tính và byte là một đơn vị biểu diễn một ký tự. Tuy nhiên nếu các phép tính bên trong máy tính được thực hiện trên cơ sở của bit, thì tốc độ sẽ quá chậm. Vì vậy mới sinh ra ý tưởng xử lý bằng từ. Hơn 10 năm trước đây, máy tính cá nhân thao tác trên các từ mỗi từ gồm 16 bits. Hiện nay máy tính lớn
  11. 1.1 Biểu diễn dữ liệu 4 PGs sử dụng các từ, mỗi từ gồm 32 bits.  Hệ nhị phân và hệ 16 Trong xử lý thông tin, hệ nhị phân được dùng để làm đơn giản cấu trúc của những mạch điện tử tạo thành máy tính. Tuy nhiên, ta rất khó hiểu ý nghĩa của chuỗi các "0" và "1". Trong hệ thập phân, giá trị số "255" có 3 chữ số, nhưng trong hệ nhị phân số chữ số thành ra là 8. Vì vậy hệ 16 được dùng để giải quyết vấn đề khó khăn trong việc xác định và tránh được số chữ số quá lớn Một số hệ 16 là giá trị số được biểu diễn bằng 16 số từ "0" đến "15." Khi thành 16, phép nhớ sẽ xảy ra. Tuy nhiên vì không thể phân biệt giữa "10" trước khi phép nhớ được tạo ra và "10" sau khi nhớ được tạo ra, để tiện lợi, trong hệ 16 người ta biểu diễn “10” bằng chữ “A”, “11” bằng “B”, “12” bằng “C”, “13” bằng “D”, “14” bằng "E" và "15" bằng "F." Hình 1-1-3 Hình 1-1-3: cách viết các số "0" đến "20" của hệ thập phân trong hệ nhị phân Số thập phân, Số Số Số số nhị phân, Thập phân Nhị phân Hệ 16 và hệ 16. và số hệ 16 Chú ý tới mối quan hệ giữa số hệ 16 với 0 0 0 số hệ nhị phân trong bảng này, ta nhận 1 1 1 thấy rằng 4 chữ số trong hệ nhị phân 2 10 2 ứng với 1 chữ số hệ 16. Do vậy, các số 3 11 3 nhị phân có thể chuyển thành số hệ 16 4 100 4 bằng cách thay mỗi nhóm 4 bits bằng 5 101 5 một chữ số hệ 16, bắt đầu từ dấu chấm 6 110 6 thập phân. (Hình 1-1-4) 7 111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F 16 10000 10 17 10001 11 18 10010 12 19 10011 13 20 10100 14 Hình 1-1-4 Hệ đếm nhị phân và hệ đếm cơ số 16 1 0 0 1 0 1 1 0 . Số nhị byte 1 phân 4 bits 4 bits 2 Dấu chấm D thập phân Số hệ 16 (2) Biểu diễn dữ liệu số Bằng tổ hợp của các "0" và "1" các ký tự được biểu diễn bằng các mã. Tuy nhiên có các phương pháp biểu diễn dữ liệu khác nhau để xử lý dữ liệu số. Trong phần này sẽ giải thích về cơ số và chuyển đổi cơ số, cộng và trừ các số nhị phân, biểu diễn các số âm – được xem như là cơ sở của việc biểu diễn dữ liệu số.
  12. 1.1 Biểu diễn dữ liệu 5  Cơ số và "trọng số" a. “Trọng số của số thập phân và ý nghĩa của nó Khi biểu diễn số lượng bằng số thập phân, ta tổ hợp 10 kiểu số từ "0" đến "9". Mỗi số trong đó, từ chữ số hạng thấp nhất theo thứ tự tăng dần có trọng số là 100, 101, 102, 103 (Hình 1-1-5). Thí dụ, bằng cách dùng trọng số, số thập phân 1234 sẽ được biểu diễn như sau: 1234 = 1 103 + 2 102 + 3 101 + 4 100 Hình 1-1-5 Trọng số của mỗi chữ số của 2 1 9 9 8 Số thập phân số thập phân 21998 ↑ ↑ ↑ ↑ ↑ Vạn nghìn trăm chục đơn vị Tên của mỗi chữ số 104 103 102 101 100 Trọng số của mỗi chữ số Trong hình 1-1-5 trọng số của mỗi chữ số được biểu diễn thành 10 0, 101, 102, 103, số "10" này gọi là cơ số, và giá trị đặt phía trên bên phải gọi là số mũ. Cách viết và ý nghĩa của trọng số trong hệ thập phân được giải thích dưới đây. Trong 100, cơ số 10 được nhân 0 lần với 1, và trở thành 1, trong 10 1, cơ số 10 được nhân 1 lần với chính nó và trở thành 10. Tương tự, trong 102, 10 được nhân 2 lần với chính nó, và trở thành 100; trong 103, 10 được nhân 3 lần với chính nó và trở thành 1000. Theo cách này, thậm chí khi số chữ số tăng lên, nó vẫn có thể dễ dàng được biểu diễn bằng cách viết các số nhỏ vào phía trên bên phải của số 10, là giá trị số chỉ ra số lần mà cơ số 10 phải nhân lên (số mũ). b. Trọng số của chữ số nhị phân và ý nghĩa của nó Cơ số của hệ thập phân là 10, và cơ số của hệ nhị phân là 2. Cũng như trong hệ thập phân, trọng số của mỗi chữ số trong hệ nhị phân được chỉ ra trong hình 1-1-6. Hình 1-1-6 Trọng số của mỗi chữ số của 1 1 1 1 1 0 0 1 1 1 0 Số nhị phân số nhị phân 11111001110 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ Trọng số của 210 29 28 27 26 25 24 23 22 21 20 mỗi chữ số Cách viết và ý nghĩa của trọng số trong hệ nhị phân được giải thích như sau:. Trong 20, cơ số 2 được nhân 0 lần với chính nó, thành 1, trong 2 1, cơ số 2 được nhân 1 lần với chính nó, thành 2. Tương tự, trong 22, 2 được nhân 2 lần với chính nó, thành 4. Để kiểm chứng rằng số 1988 trong hệ thập phân được biểu diễn thành "11111001110" trong hệ nhị phân, trọng số của mỗi chữ số được thể hiện bằng 1 trong biểu diễn nhị phân cần được thêm vào như sau: 1 1 1 1 1 0 0 1 1 1 0         210 + 29 + 28 + 27 + 26 + 23 + 22 + 21         = 1024 + 512 + 256 + 128 + 64 + 8 + 4 + 2 = 1998  Các đơn vị phụ và biểu diễn luỹ thừa Vì khối lượng thông tin xử lý bằng máy tính rất lớn, các đơn vị phụ biểu diễn những đại lượng lớn cũng được sử dụng. Tương tự, vì máy tính xử lý với tốc độ cao, các đơn vị khác thể hiện những đại lượng cực nhỏ cũng cần thiết để biểu diễn hiệu năng. Hình 1-1-7 cho thấy các đơn vị phụ dùng để biểu diễn các đại lượng lớn và nhỏ cũng như các số mũ mà
  13. 1.1 Biểu diễn dữ liệu 6 cơ số phải nâng lên luỹ thừa. Hình 1-1-7 Các đơn vị phụ Ký hiệu Biểu diễn Chú thích theo số mũ Các đơn vị T (giga) 1012 ≈ 240 biểu diễn G (tera) 109 ≈ 230 những đại lượng M (mega) 106 ≈ 220 lớn k (kilo) 103 ≈ 210 Các đơn vị 1 biểu diễn m (mili) 10-3 1 000 những đại lượng 1 cực nhỏ µ (micro) 10-6 1 000 000 1 n (nano) 10-9 1 000 000 000 1 p (pico) 10-12 1 000 000 000 000 Lưu ý là như đã chỉ ra trong cột Chú thích ở hình 1-1-7, kilo bằng 10 3, nhưng nó cũng gần bằng 2 10. Nói cách khác, kilo mà chúng ta thường dùng là bằng 1000, tuy nhiên hệ nhị phân được dùng để tính toán, nên 210 (tức 1024) là một kilo. Hơn nữa, nếu 2 10 và 103 gần như bằng nhau, 10 6 tức một mêga, gần như bằng 220 và 109 – một giga, hầu như bằng 230. Do đó, khi nói dun7g lượng bộ nhớ máy tính là 1 kilobyte, thì thực ra 1 kilobyte đó không phải là 1,000 bytes, mà chính xác là 1,024 bytes.  Cộng và trừ các số nhị phân a. Cộng Sau đây là 4 phép cộng cơ bản trong hệ nhị phân: 0 + 0 = 0 (0 trong hệ thập phân) 0 + 1 = 1 (1 trong hệ thập phân) 1 + 0 = 1 (1 trong hệ thập phân) 1 + 1 = 10 (2 trong hệ thập phân)  Đặc tính chính của hệ nhị phân khác với hệ thập phân Trong các phép cộng này, phép nhớ được tạo ra trong 1 + 1 = 10. 1  Nhớ 1 + 1 1 0 Thí dụ (11010)2 + (1100)2 1 1  Nhớ 1 1 0 1 0 + 1 1 0 0 1 0 0 1 1 0 Kết quả là (100110)2. b. Trừ Sau đây là 4 phép trừ cơ bản trong hệ nhị phân: 0 – 0 = 0 0 – 1 = –1 1 – 0 = 1
  14. 1.1 Biểu diễn dữ liệu 7 1 – 1 = 0 Trong các phép trừ này, nếu chữ số hàng cao hơn của 0 là 1 trong 0 – 1 = –1, thì "phép mượn” được thực hiện.  Mượn 1 0 1 1 Thí dụ (10011)2 - (1001)2  Mượn 1 0 0 1 1 1001 1 0 1 0 Kết quả là (1010)2.  Cộng và trừ các số trong hệ 16 Về cơ bản cộng và trừ các số trong hệ 16 cũng tương tự như cộng và trừ các số nhị phân và thập phân. a. Cộng Phép cộng được thực hiện bắt đầu từ chữ số thấp nhất (chữ số đầu tiên từ bên phải). Khi kết quả phép cộng lớn hơn 16, phép nhớ sang chữ số hàng sau đó được thực hiện. Thí dụ (A8D)16 + (B17)16 1 1  Nhớ A 8 D 10 8 13 + B 1 7 + 11 1 7 1 5 A 4 21 9 20 Chữ số đầu tiên: D + 7 = (trong hệ thập phân 13 + 7 = 20) = 16 (nhớ 1) + 4 Tổng của các cột đầu là 4 và nhớ 1 sang cột thứ hai Chữ số thứ hai: 1 + 8 + 1 = (Trong hệ thập phân: 10) = A Nhớ từ cột thứ nhất Chữ số thứ ba: A + B = (trong hệ thập phân: 10 + 11 = 21) = 16 (nhớ 1) + 5 Tổng của các cột thứ ba là 5 và nhớ 1 sang cột thứ 4. Kết quả là (15A4)16. b. Trừ Phép trừ được thực hiện bắt đầu từ cột đầu tiên và khi kết quả phép trừ là âm, phép mượn từ cột có thứ tự cao hơn được thực hiện. Thí dụ (6D3)16 – (174)16  Mượn  16 6 D 3 6 13 3 174 1 74 5 5 F 5 5 15 Chữ số thứ nhất: Vì 3 – 4 = –1, ta phải mượn 1 từ D trong chữ số thứ hai (D trở thành C). 16 (mượn 1) + 3 – 4 = F (trong hệ thập phân: 19 – 4 = 15) Chữ số thứ hai: C – 7 = 5 (trong hệ thập phân: 12 – 7 = 5) Chữ số thứ ba: 6 – 1 = 5 Kết quả là (55F)16.
  15. 1.1 Biểu diễn dữ liệu 8 (3) Chuyển đổi cơ số Để xử lý các giá trị số trong máy tính, các số thập phân được chuyển thành các số nhị phân hoặc số hệ 16. Tuy nhiên, vì ta thường dùng các số thập phân nên sẽ khó hiểu được ý nghĩa của kết quả xử lý nếu như kết quả đó được biểu diễn bằng số nhị phân hoặc số hệ 16. Do đó việc chuyển đổi giữa các số hệ thập phân, nhị phân và hệ 16 là cần thiết. Phép toán này gọi là phép chuyển đổi cơ số. Dưới đây là giải thích cụ thể về việc chuyển đổi cơ số của các số thập phân, nhị phân và số hệ 16. Để tránh nhầm lẫn, cơ số của một số sẽ được viết ngoài ngoặc đơn để phân biệt. Thí dụ: Cách viết số nhị phân: (0101)2 Cách viết số thập phân: (123)10 Cách viết số hệ 16: (1A)16  Chuyển số thập phân thành số nhị phân Phương pháp chuyển đổi số thập phân sang số nhị phân khác nhau phụ thuộc vào số thập phân đó là số nguyên hay phân số. a. Chuyển đổi số thập phân Số thập phân nguyên chia cho 2, được thương và số dư. Thương nhận được lại chia cho 2 và lại được thương và số dư. Cứ thế cho đến khi thương bằng 0. Vì số nguyên chia cho 2, nên khi số nguyên thập phân là số chẵn thì số dư bằng 0, còn khi là số lẻ thì số dư bằng 1. Số nhị phân thu được bằng cách viết tất cả các số dư theo thứ tự ngược lại là kết quả của việc chuyển đổi số thập phân sang số nhị phân. Thí dụ (25)10 2) 25 Dư 2) 12∙∙∙∙∙∙∙∙∙∙∙∙1 2) 6∙∙∙∙∙∙∙∙∙∙∙∙0 2) 3∙∙∙∙∙∙∙∙∙∙∙∙0 2) 1∙∙∙∙∙∙∙∙∙∙∙∙1 Thương0∙∙∙∙∙∙∙∙∙∙∙∙1 ( 1 1 0 0 1 ) 2 b. Chuyển đổi phân số thập phân Phân số thập phân nhân lên 2, phần số nguyên và phần phân số của tích tách riêng ra, và phần nguyên được lấy ra. Vì phần nguyên là tích của phần phân số với 2 nên nó luôn là 0 hoặc 1. Tiếp theo, bỏ sang bên cạnh phần nguyên, ta lại nhân phần phân số với 2. Việc này được lặp lại cho đến khi phần phân số bằng 0. (Chữ) số nhị phân thu được bằng cách đặt các phần nguyên có được theo đúng thứ tự mà chúng đã được lấy ra. Thí dụ (0.4375)10 0.4375 0.875 0.75 0.5 Phần phân số 2 2 2 2 0. 875 1. 75 1. 5 1.0 Phần phân số bằng 0     0 1 1 1 Phần nguyên (0.4375)10 = (0 . 0 1 1 1 )2
  16. 1.1 Biểu diễn dữ liệu 9 Lưu ý rằng khi phân số thập phân chuyển đổi thành phân số nhị phân, nhiều khi việc chuyển đổi không kết thúc được, vì bao nhiêu lần nhân phân phân số với 2 thì nó cũng không cho phần phân số bằng 0. Nói cách khác, thí dụ nêu trên là một trường hợp đặc biệt, còn đa số các phân số thập phân đều trở thành phân số nhị phân vô tận. Dưới đây là kiểm chứng những loại giá trị số tương ứng với các phân số thập phân đặc biệt. Thí dụ, kết quả chuyển đổi phân số nhị phân 0.11111 thành phân số thập phân như sau: 0. 1 1 1 1 1Phân số nhị phân      2-1 2-2 2-3 2-4 2-5  Trọng số      0.5 + 0.25 + 0.125 + 0.0625 +0.03125 = 0.96875 phân số thập phân Từ thí dụ này ta có thể hiểu rằng bên cạnh các số thập phân bằng trọng số của mỗi chữ số (0.5, 0.25, 0.125, v.v.) hoặc các phần thập phân tạo ra từ các tổ hợp của chúng, tất cả các phân số thập phân khác đều trở thành các phân số nhị phân vô tận.  Chuyển đổi số nhị phân thành số thập phân Chuyển đổi thành các số thập phân được thực hiện bằng cách cộng trọng số của mỗi chữ số ứng với "1" trong chuỗi các bit nhị phân. a. Chuyển đổi số nhị phân Thí dụ (11011)2 (1 1 0 1 1) 2 24 + 23 + 21 + 20  Trọng số     16 + 8 + 2 + 1 = (27)10 b. Chuyển đổi phân số nhị phân Thí dụ (1.101)2 (1 . 1 0 1) 2 20 + 2-1 + 2-3  Trọng số    1 + 0.5 + 0.125 = (1.625)10  Chuyển đổi số nhị phân sang số hệ 16 Vì chuỗi 4-bit nhị phân bằng một chữ số hệ 16, trong số nhị phân nguyên, số nhị phân được chia thành các nhóm 4 chữ số một bắt đầu từ chữ số ít ý nghĩa nhất. Trong phân số nhị phân, số nhị phân được chia thành nhóm 4 chữ số một, bắt đầu từ dấu chấm thập phân. Sau đó việc chuyển đổi được thực hiện bằng cách cộng các trọng số của các chữ số nhị phân có giá trị hiển thị là "1," trong mỗi nhóm 4 bits. Trong trường hợp có chuỗi bit nhị phân ít hơn 4 chữ số, thì ta sẽ phải thêm các số "0" cần thiết vào và chuỗi đó để nó trở thành chuỗi 4-bit.
  17. 1.1 Biểu diễn dữ liệu 10 a. Chuyển số nguyên nhị phân Thí dụ (10111010001)2 101|1101|0001 Chia thành các nhóm có 4 chữ số Xem bằng 0 0 1 0 1 1 1 0 1 0 0 0 1       22 20 23 22 20 20 Trọng số 4 + 1 8 + 4 + 1 1    5 D 1 = (5 D 1)16 b. Chuyển đổi phân số nhị phân Thí dụ (0.1011110001)2 0.1011|1100|01 Chia thành các nhóm có 4 chữ sô 0. 1 0 1 1 1 1 0 0 0 1 0 0 Xem bằng 0       23 21 20 23 22 22 Trọng số 8 + 2 + 1 8 + 4 4 0 . B C 4 = (0.BC4)16  Chuyển số hệ 16 thành số nhị phân Số hệ 16 được chuyển thành số nhị phân bằng cách thực hiện qui trình ngược lại. Nói cách khác, 1 chữ số hệ 16 được biểu diễn bằng 4-chữ số nhị phân. a. Chuyển số nguyên hệ 16 Thí dụ (38C)16 3 8 C 12 2 + 1 8 8 + 4 1 1 1 0 0 0 1 1 0 0 = (111000110)2
  18. 1.1 Biểu diễn dữ liệu 11 b. Chuyển phân số hệ 16 Thí dụ (0.8E)16 0. 8 E 14 8 8 + 4 + 2 + 0 0. 1 0 0 0 1 1 1 0 = (0.10001110)2  Chuyển số thập phân sang số hệ 16 và ngược lại Để chuyển sang hệ nhị phân, số thập phân chia cho 2 còn chuyển sang hệ 16 thì số thập phân chia cho 16. Tương tự, số hệ 16 được chuyển sang số hệ thập phân bằng cách cộng các giá trị lũy thừa với cơ số là 16. Lưu ý vì vốn không quen với cách viết các số hệ 16, nên thông thường các số hệ 16 đầu tiên được đổi thành số nhị phân và sau đó chuyển thành số thập phân. 1.1.2 Biểu diễn số Trong máy tính, từ thuở ban đầu được chế tạo ra để tính toán, cùng với các khía cạnh khác trong đó có quản lý đối tượng dữ liệu để xử lý, tính chính xác và tính dễ sử dụng khi tính toán cũng được chú ý. Dưới đây giải thích dạng thức biểu biễn phù hợp cho từng kiểu dữ liệu. Dấu phẩy tĩnh (Số nguyên) Hình 1-1-8 Số nhị phân Dữ liệu Dạng thức biểu Dấu phẩy động (Số thực) số diễn dữ liệu Dữ liệu Biểu diễn Thập phân mở gói Số thập phân sử dụng số Dữ liệu thập phân ký tự Thập phân đóng gói (1) Biểu diễn chữ số thập phân  Mã thập phân được nhị phân hóa Có một dạng thức cho dữ liệu ký tự và các số thập phân gọi là phương pháp biểu diễn dữ liệu “mã thập phân được nhị phân hóa” viết tắt là mã BCD (Binary Coded Decimal code). Theo đó, người ta dùng 4 chữ số nhị phân (4 bit) ứng với các số từ 0 đến 9 của hệ thập phân, để biểu diễn các giá trị số của mỗi chữ số.
  19. 1.1 Biểu diễn dữ liệu 12 Hình 1-1-9 Mã thập phân được nhị phân hóa Số thập phân Số nhị phân Mã thập phân được nhị phân hóa 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 2 0 0 1 0 0 0 1 0 3 0 0 1 1 0 0 1 1 4 0 1 0 0 0 1 0 0 5 0 1 0 1 0 1 0 1 6 0 1 1 0 0 1 1 0 7 0 1 1 1 0 1 1 1 8 1 0 0 0 1 0 0 0 9 1 0 0 1 1 0 0 1 10 1 0 1 0 0 0 0 1 0 0 0 0 11 1 0 1 1 0 0 0 1 0 0 0 1 . . . . . . Thí dụ, biểu diễn số thập phân "789" bằng cách dùng mã BCD như sau: 7 8 9    0 1 1 1 1 0 0 0 1 0 0 1 (011110001001)2 Theo cách biểu diễn này, khi số chữ số của số thập phân tăng lên thì độ dài của mã BCD cũng tăng lên (4 bits được thêm vào cho một chữ số). Dạng thức này gọi là dạng thức có độ dài biến đổi. Giá trị như mã BCD đó cũng được thiết lập thành 4 bit thấp nhất của ký tự trong bộ mã EBCDIC, JISCII và các bộ mã khác. Mã BCD được dùng chủ yếu để biểu diễn số dùng trong tính toán văn phòng, và ứng với dạng thức của bộ nhớ máy tính, nó được chia thành dạng thức thập phân mở gói (unpacked) và dạng thức thập phân đóng gói (packed). Và vì mã ký tự cũng như dạng thức thập phân mở gói và dạng thức thập phân đóng gói được biểu diễn bằng mã BCD, nên chúng có thể được xử lý tự động bằng cách sử dụng hệ số học thập phân của máy tính. Người dùng không cần phải biết đến tiến trình này.  Dạng thức thập phân mở gói Khi biểu diễn số thập phân có dấu, dạng thức thập phân mở gói dùng 1 byte cho mỗi chữ số của số thập phân. Dạng thức thập phân mở gói biểu diễn các giá trị từ 0 đến 9 trong 4 bit thấp nhất của 1 byte, và trong 4 bits cao nhất, được gọi là các bit được khoanh vùng (zoned bits), trong trường hợp mã EBCDIC dùng trong máy tính lớn, thì lưu giá trị (1111) 2. Tuy nhiên, trong các bit được khoanh vùng của chữ số hàng thấp nhất, thì 4 bits biểu diễn dấu được lưu giữ, trong cả trường hợp số 0 và số dương, là (1100) 2, và trong trường hợp số âm, là (1101) 2. Trong bộ mã JIS dùng để trao đổi dữ liệu cũng như trong các máy đầu thấp, (0011)2 được lưu trong các bit được khoanh vùng. Dạng thức thập phân mở gói cũng còn được gọi là dạng thức thập phân khoanh vùng. Mẫu bit của việc biểu diễn số thập phân +789 and –789 trong dạng thức thập phân mở gói được mô tả trong hình 1-1-10.
  20. 1.1 Biểu diễn dữ liệu 13 Hình 1-1-10 Dạng thức thập phân mở gói 1 byte 1 byte 1 byte 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 0 1 Bit được Bit được Bit dấu khoanh vùng khoanh vùng 7 8 + 9 Trong hệ cơ số 16 nó được biểu diễn là (F7F8C9)16 1 byte 1 byte 1 byte 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 0 0 1 1 Bit 1 được 1 0 1 1 1 1 1 Bit 1 được 1 1 0 0 0 1 1 Bit0 dấu1 1 0 0 1 khoanh vùng khoanh vùng 7 8 _ 9 Trong hệ cơ số 16 nó được biểu diễn là (F7F8D9)16 Trong dạng thức thập phân mở gói, ngoài byte của hàng có nghĩa thấp nhất, thì các byte khác chỉ dùng có nửa byte. Điều này được xem là lãng phí tài nguyên. Điều này được khắc phục bằng dạng thức thập phân đóng gói.  Dạng thức thập phân đóng gói Trong dạng thức thập phân đóng gói, 1 byte biểu diễn giá trị số của 2 chữ số và 4 bits có nghĩa thấp biểu diễn dấu. Mẫu bit của dấu cũng giống như trong dạng thức thập phân mở gói, (1100) 2 đối với 0 và số dương, và (1101)2 đối với số âm. Hình 1-1-11 cho thấy mẫu bit của dạng thức thập phân đóng gói. Hình 1-1-11 1 byte 1 byte Dạng thức thập phân đóng gói 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 0 Bit dấu 7 8 9 + 1 byte 1 byte 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 1 Bit dấu 7 8 9 - So với dạng thức thập phân mở gói, thì dạng thức thập phân đóng gói có các ưu việt sau: Giá trị số có thể biểu diễn bằng ít byte hơn. Chuyển sang hệ nhị phân dễ hơn.
  21. 1.1 Biểu diễn dữ liệu 14 (2) Biểu diễn nhị phân  Biểu diễn số nguyên âm Thí dụ đặc thù về biểu diễn số nguyên âm được ghi nhận như sau: Biểu diễn giá trị tuyệt đối Biểu diễn phần bù a. Biểu diễn giá trị tuyệt đối của số nguyên âm Như đã thấy trong hình 1-1-12, trong việc biểu diễn giá trị tuyệt đối của số nguyên âm, bit đầu tiên biểu diễn dấu và 7 bit khác biểu diễn giá trị số (giá trị tuyệt đối). Hình 1-1-12 Biểu diễn giá trị tuyệt đối 7 6 5 4 3 2 1 0 Số bit của số nguyên âm Bit ký tự biểu diễn số Dấu phẩy thập phân Bit cho nguyênbiết dấu của số nguyên (“0” là số dương, “1” là số âm) Thí dụ, trong (00001100)2, vì bit dấu ở đầu là 0, đó là số dương. Tương tự, vì 7 bit khác là giá trị tuyệt 2 3 đối của giá trị số, bằng (0001100)2 = 2 + 2 = (12)10, số thập phân 12 (số dương) được biểu diễn. Mặt khác, vì trong (10001100)2 bit dấu ở đầu là 1, nên đó là số âm. Số thập phân –12 = (số âm) được biểu diễn. Tuy nhiên, vì trong phương pháp biểu diễn này, giá trị số 0 có thể biểu diễn bằng 2 cách, như là 00000000 (số 0 dương) hoặc như là 10000000 (số 0 âm), việc thao tác trở nên phức tạp và do vậy nó không được dùng rộng rãi. Lưu ý là khi biểu diễn giá trị tuyệt đối của số âm bằng 8 bits, phạm vi các giá trị số có thể biểu diễn được (trong các chữ số thập phân) là: –127 đến 127 b. Biểu diễn phần bù của số nguyên âm Phần bù là một số mà giá trị của nó cộng với số ban đầu thì cho một giá trị số đặc biệt. Có hai kiểu bù cơ số, phần bù cơ số và phần bù cơ số rút gọn.  Phần bù thập phân Có hai loại phần bù thập phân, "bù 10" và "bù 9". Thí dụ phần bù 9 của một số đã cho sẽ là kết quả của phép trừ mỗi chữ số trong giá trị số đó ra khỏi 9. Tương tự, phần bù 10 của một giá trị số đã cho sẽ là kết quả của phép trừ mỗi chữ số của số đó ra khỏi 10. Kết quả là, phần bù 10 bằng phần bù 9 cộng 1. Thí dụ "phần bù 9 " của (123)10 9 9 9 123 8 7 6 Thí dụ "phần bù 10 " của (123)10 1 0 0 0 (= 999 + 1) 123 8 7 7  Phần bù nhị phân Có 2 kiểu bù nhị phân, "phần bù 1 " và "phần bù 2" Phần bù 1 Phần bù 1 của một giá trị số đã cho là kết quả của phép trừ mỗi chữ số của giá trị số đó ra khỏi
  22. 1.1 Biểu diễn dữ liệu 15 1, kết quả là, tất cả bit "0" và "1" của chuỗi bit ban đầu được đổi tương ứng thành “1” và “0”. Thí dụ, phần bù 1 của chuỗi bit (10110011)2 là: 1 0 1 1 0 0 1 1   Tất cả bit "0" và "1" trong chuỗi bit ban đầu được chuyển ngược lại 0 1 0 0 1 1 0 0 phần bù 1 Phần bù 2 Phần bù 2 là chuỗi bit phần bù 1 cộng 1. Vì vậy phần bù 2 của chuỗi bit (10110011) 2 được tính như sau: 1 0 1 1 0 0 1 1   Tất cả các bit "0" và "1" của chuỗi bit ban đầu được chuyển ngược lại 0 1 0 0 1 1 0 0phần bù 1 + 1thêm 1 0 1 0 0 1 1 0 1phần bù 2  Biểu diễn "phần bù 1" và "phần bù 2 " của số nguyên âm biểu diễn "phần bù 1 " của số nguyên âm Bit dấu: 0 đối với số dương, 1 đối với số âm, và cả hai, +0 và -0, đối với 0 Giá trị số: "phần bù 1 " Thí dụ, biểu diễn "phần bù 1 " của số thập phân -126 như sau: 0 1 1 1 1 1 1 0  + 126 Dấu    tất cả bit "0" và "1" của chuỗi bit ban đầu chuyển ngược lại 1 0 0 0 0 0 0 1 126 biểu diễn "phần bù 2 " của số nguyên âm Bit dấu: 0 đối với số dương, 1 đối với số âm Giá trị số: "phần bù 2 " Thí dụ, biểu diễn "phần bù 2" của số thập phân -126 như sau: 0 1 1 1 1 1 1 0  + 126 Dấu    Tất cả bit "0" và "1" trong chuỗi bit ban đầu đổi ngược lại 1 0 0 0 0 0 0 1 + 1thêm 1 1 0 0 0 0 0 1 0 126 Như đã thấy, thậm chí đối với cùng một số, chuỗi phần bù 1 và chuỗi phần bù 2 cũng khác nhau. Hình 1-1-13 so sánh giới hạn các giá trị số có thể biểu diễn được bằng 3 bit trong biểu diễn "phần bù 1 " và "phần bù 2". Từ hình này ta có thể thấy rằng giới hạn của các số biểu diễn được bằng "phần bù 2" rộng hơn. Tương tự, cũng như trong cách biểu diễn giá trị tuyệt đối của số nguyên âm, và trong cách biểu diễn số âm bằng "phần bù 1", 0 có thể biểu diễn bằng cả 2 cách +0 và -0, cho nên thao tác trở nên phức tạp. Vì vậy, phần lớn các máy tính ngày nay đều dùng phương pháp phần bù 2. Hình 1-1-14 cho thấy giới hạn của các giá trị số biểu diễn được khi một số nhị phân n-bit được biểu diễn bằng phần bù 1 và phần bù 2. Hình 1-1-13 “Phần bù 1” “Phần bù 2” "phần bù 1" và "phần bù 2 " 0 1 1 = 3 0 1 1 = 3 0 1 0 = 2 0 1 0 = 2 0 0 1 = 1 0 0 1 = 1 0 0 0 = 0 0 0 0 = 0 1 1 1 = -0 1 1 1 = -1 1 1 0 = -1 1 1 0 = -2 1 0 1 = -2 1 0 1 = -3 1 0 0 = -3 1 0 0 = -4
  23. 1.1 Biểu diễn dữ liệu 16 Hình 1-1-14 Giới hạn của các số biểu diễn khi một số nhị phân n bit biểu diễn sử Giới hạn của các số dụng phương pháp phần bù “1” biểu diễn được bằng - (2n - 1 – 1) – 2n - 1 – 1 "phần bù 1 " Giới hạn của các số biểu diễn khi một số nhị phân n bít biểu diễn sử và "phần bù 2" dụng phương pháp phần bù “2” - 2n – 1 – 2n - 1 - 1 Một lý do quan trọng khác để chấp nhận phương pháp phần bù 2 được minh họa trong thí dụ sau: Thí dụ Khi phép tính thập phân 100 - 90 được thực hiện trong máy tính, các số thập phân 100 và -90 đầu tiên được chuyển thành các số nhị phân. Khi đó, nếu –90 được biểu diễn bằng phương pháp "phần bù 2", dấu “-“ không cần nữa, và biểu diễn như sau: (100)10 = (01100100)2 (–90)10 = (10100110)2 Do đó, phép trừ 100-90 có thể thay bằng phép cộng 100+(-90). 0 1 1 0 0 1 0 0 + 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 1 0 (Số thập phân 10)  Vì số bit là 8, nên chữ số thứ 9 thu được vì phép nhớ được bỏ qua. Do đó, lý do mà các số âm được biểu diễn bằng phương pháp phần bù 2 khi tính toán là vì phép trừ có thể thay bằng phép cộng. Nói cách khác, vì phép trừ có thể thực hiện được bằng các mạch cộng, nên các mạch trừ không cần thiết nữa, làm cho cấu trúc phần cứng đơn giản hơn.  Dấu phẩy cố định (Fixed point) a. Biểu diễn số nguyên Dấu phẩy cố định là dạng thức biểu diễn dữ liệu được dùng chủ yếu khi các dữ liệu kiểu số nguyên được xử lý (Hình 1-1-15). Vì vậy, dạng thức điểm cố định còn được gọi là kiểu số nguyên. Trong dạng thức thập phân mở gói hoặc đóng gói, số byte thay đổi phụ thuộc vào số chữ số của số thập phân, nhưng trong dạng thức dấu phẩy cố định một từ được biểu diễn bằng độ dài cố định, bằng 16 bits và 32 bits. Vì vậy, nếu định biểu diễn giá trị số vượt quá độ dài cố định đó thì sẽ xảy ra sự cố gọi là “bị tràn” (overflow). 16 bit Hình 1-1-15 Điểm cố định Bit Bit biểu diễn giá trị (15 dấu bit) Vì trong dạng thức dấu phẩy 1 bit cố định trong hình1-1-15, khi một giá trị được biểu diễn bằng 15 bits, nếu số âm được biểu diễn bằng phương pháp "phần bù 2", giới hạn các giá trị số biểu diễn được trong hệ thập phân là: -215 đến 215 1= -32,768 tới 32,767 Tương tự, nếu một từ được tạo thành từ n bits, và số âm được biểu diễn bằng phương pháp "phần bù 2, giới hạn của các giá trị số biểu diễn được trong hệ thập phân là: -2n-1 đến 2n-1 1
  24. 1.1 Biểu diễn dữ liệu 17 b. Biểu diễn phân số Khi số nguyên được biểu diễn, vị trí của dấu phẩy thập phân được xem là đứng ở bên tay phải của bit có nghĩa thấp nhất. Khi phân số được biểu diễn, vị trí của dấu phẩy thập phân được xem là đứng ngay trước bit dấu. Hình 1-1-16 dạng thức biểu diễn số nguyên và phân số Biểu diễn số Vị trí dấu phẩy thập nguyên Bit phân dấu Biểu diễn Vị trí dấu phẩy thập phân số Bit phân  Dấu phẩy động dấu Trong khi dạng thức dấu phẩy cố định biểu diễn dữ liệu kiểu số nguyên, thì dạng thức dấu phẩy động được dùng để biểu diễn dữ liệu kiểu số thực. Trong các máy tính lớn có thể biểu diễn được số thập phân với 18 chữ số. Với 18 chữ số sẽ gần như không có vấn đề gì trong cuộc sống hàng ngày. Tuy nhiên trong những lĩnh vực cần tính toán phức tạp như dưới đây, ta sẽ không đạt được các kết quả đúng nếu chỉ dùng kiểu dữ liệu số nguyên. Tính toán cơ học chất lỏng cần cho thiết kế máy bay Tính toán dự báo thời tiết Lập kế hoạch và kiểm soát các chuyến bay trên vũ trụ Tính toán đường đạn CAD (Thiết kế với sự hỗ trợ của máy tính) Đối với các lĩnh vực khoa học và kỹ nghệ đòi hỏi các dạng tính toán phức tạp như vậy, người ta dùng dạng thức dấu phẩy động. Ở đây, “phức tạp” có nghĩa là không chỉ vì chính quá trình tính toán là phức tạp mà còn vì dữ liệu cần xử lý hoặc cực lớn, hoặc cực nhỏ. Khi ta biểu diễn số 1 500 000 000, thay vì phải viết 8 số 0, ta dùng cách biểu diễn lũy thừa như sau: 15 108 Trong dạng thức dấu phẩy động, số đó được viết là 0.15 1010. 0.15 1010  Phần này nhỏ hơn 1 Tên mỗi phần số được gọi như sau. 0.15 1010  Số mũ   Định trị Cơ số Ở đây hệ thập phân được dùng cho dễ hiểu, nhưng máy tính lại dùng hệ nhị phân Dạng thức biểu diễn dấu phẩy động thay đổi tùy theo từng loại máy tính. Chúng được phân loại thô thành dạng thức dùng trong máy tính lớn và dạng thức xác định bởi IEEE (Viện các kỹ sư điện và điện tử). a. Dạng thức dấu phẩy động trong máy tính lớn Dạng thức biểu diễn dấu phẩy động dùng trong các máy tính vạn năng được nêu trong hình 1-1-17. Dạng thức này được đưa vào những máy tính vạn năng đầu tiên trên thế giới là "IBM System/360" và được gọi là Excess 64.
  25. 1.1 Biểu diễn dữ liệu 18 Hình 1-1-17 Dạng thức dấu phẩy động trong máy tính tính năng chung Phần số mũ Phần định trị (7 bit) (24 bit) Dấu phần định trị (1 Vị trí dấu phẩy thập bit) . Dấu phần định trị: Xácphân định xem dữ liệu biểu diễn trong phần định trị là dương hay âm (0: dương, 1: âm) . Phần số mũ: Với trọng số là 16 và giá trị số biểu diễn là +64 khi số mũ thực . Phần định trị: Chỉ biểu diễn phân số nhị phân thấp hơn 1.  Phần số mũ Phần mũ có 7 bits, và phạm vi các giá trị số biểu diễn trong dạng nhị phân là từ (0000000) 2 tới (1111111)2 , tức từ 0 đến 127 trong hệ thập phân. Tuy nhiên một giá trị số lớn gấp 64 lần số mũ thực được biểu diễn. Vì vậy, số mũ thực sự tương đương với 64 đến +63. Tương tự, vì cơ số được coi là 16, các giá trị số có thể biểu diễn được nằm trong phạm vi giữa 16-64 tới 1663 Sau đó, tính đến cả bit dấu, các số có thể biểu diễn bằng phần số mũ như trên được cho thấy trong hình 1-1-18. Hình 1-1-18 Các số có thể biểu diễn bằng phần số mũ Tràn trên âm Tràn Tràn dưới Tràn trên Giá trị biểu dưới âm dương Giá trị biểu dương diễn diễn - 1663 - 16-64 0.0 16-64 1663  Phần định trị Khi phân số thập phân 0.05 được đổi thành phần số nhị phân, nó trở thành phân số nhị phân tuần hoàn. (0.0000110011001100110011001100 )2 Hình 1-1-19 cho thấy biểu diến của phân số đó bằng dạng thức dấu phẩy động. Hình 1-1-19 Biểu diễn phân số nhị phân (0.0000110011001100110011001100 )2 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 + (0. 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0)2 x 16 Vì phần định trị có 24 bits, trong trường hợp này, phân số thập phân sẽ không được biểu diễn một cách chính xác. (Sai số xảy ra trong trường hợp này là sai số làm tròn.) Tuy nhiên, nếu ta nhìn vào mẫu bit của phần định trị, ta có thể thấy 4 bits đầu là 0, nếu ta sau đó trích ra 4 bit này và chuyển dịch các bits còn lại sang trái, thì có thể biểu diễn được 4 bits làm tròn. Ở đây, kết quả của việc chuyển dịch 4 bit của phần định trị sang trái, giá trị ban đầu của phần định trị đã được tăng lên 2 4 = 16. Để loại bỏ việc tăng này, nó cần được chia cho chính nó tức 16 ( 16 -1). Vì cơ số là 16, giá trị phần số mũ có thể đặt thành -1. Kỹ thuật được dùng trong trường hợp này để làm giảm sai số làm tròn đến mức tối thiểu, cũng như làm tăng tối đa độ chính xác, gọi là chuẩn hóa. Hơn nữa, kết quả của kỹ thuật chuẩn hóa là chuỗi bit biểu diến giá trị cũng là chuẩn hóa. Phép toán này được thực hiện tự động bởi phần cứng.
  26. 1.1 Biểu diễn dữ liệu 19 Kết quả chuẩn hóa của phân số nhị phân trong hình 1-1-19 được cho thấy trong hình 1-1-20. Hình 1-1-20 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 Chuẩn hóa 0 1 1 0 0 -1 + (0. 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0)2 x 16 b. Dạng thức dấu phẩy động của IEEE Dạng thức dấu phẩy động theo chuẩn IEEE được thấy trong hình 1-1-21. Hình 1-1-21 Dạng thức dấu phẩy động theo IEEE Phần số mũ S (8 bits) Phần định trị (23 bits) E F Dấu phần định trị (1 Vị trí dấu thập phân bit) . Dấu phần định trị: Xác định dữ liệu biểu diễn trong phần định trị là dương hoặc âm ( 0: Dương, 1: Âm) . Phần số mũ: Cơ số là 2 và thể hiện giá trị là kết quả +127 vào giá trị gốc của số mũ đó Tuy nhiên, Khi E = 255, F # 0 : không phải là một số Khi E = 255, F = 0 : (-1)S ∞ Khi E = 0, F # 0 : (-1)S 2-126 (0.F) Khi E = 0, F = 0 : (-1)S 0 (không) . Phần định trị: chỉ biểu diễn phân số nhị phân nhỏ hơn 1. . Giá trị sử dụng dạng thức dấu phẩy động: (-1) S x 2E – 127 x (1 + F) Sự khác nhau so với với dạng thức dấu phẩy động của các máy tính chức năng chung là: Phần số mũ có 8 bits, và thể hiện giá trị là kết quả cộng 127 vào giá trị gốc của số mũ đó. Phép cộng này gọi là bias (Hình 1-1-22). Phần định trị có 23 bits và phân số nhị phân tương đương với định trị -1 được đăng ký. Nói cách khác, 1 coi như bị bỏ qua. Cơ số của phần số mũ là 2. Cơ số của phần mũ là 2 Các mẫu bit Số Hình 1-1-22 Biểu diễn phần số mũ biểu diễn phần Thập phân Bias Số mũ thực số mũ (1 1 1 1 1 1 1 1)2 = 255 128 (1 1 1 1 1 1 1 0)2 = 254 127 Số mũ được (1 0 0 0 0 0 0 1)2 =129 2 biểu diễn chính (1 0 0 0 0 0 0 0)2 = 128 - 127 1 trong khoảng (0 1 1 1 1 1 1 1)2 = 127 0 này (0 0 0 0 0 0 0 1)2 = 1 -126 (0 0 0 0 0 0 0 0)2 = 0 -127 255 128 0 Bias -127
  27. 1.1 Biểu diễn dữ liệu 20 Thí dụ, nếu số thập phân 5 được biểu diễn bằng dạng thức này, ta sẽ có như trong hình 1-1-23. Vì là số dương, phần dấu của dấu định trị là 0. 0 2 Nếu (5)10 = (101)2 = (101)2 2 = (1.01)2 2 , khi đó, phần số mũ sẽ là (1.01)2-(1)2 = (0.01)2 -2 Nếu (101)2 được chuyển dịch sang phải 2 bits, nó trở thành (1.01)2, tức 2 lần của giá trị ban đầu. Để chuẩn hóa, 2 được thêm vào số mũ 0, và trở thành 2. Kết quả là, vì phần số mũ là 2 + 127 = 129, ta được biểu diễn là (10000001)2. Hình 1-1-23 Biểu diễn số thập phân 5 Dấu phần định trị Phần số mũ Phần định trị 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c. Phép chuyển dịch Cơ chế chuyển dịch theo chế độ chuẩn hoá được giải thích dưới đây. Trong hệ nhị phân, mỗi chữ số có trọng số ứng với một luỹ thừa của 2. Điều này gọi là trọng số theo vị trí. Vì vậy, thậm chí cùng là số 1 được biểu diễn, nhưng ý nghĩa của nó khác với ý nghĩa của số 1 ở vị trí thứ hai và 1 ở vị trí thứ ba. 1 1 ở vị trí thứ hai: (10)2 2 = 2 2 1 ở vị trí thứ ba: (100)2 2 = 4 Trong phép chuyển dịch, bằng cách chuyển vị trí của 1 sang bên trái (hoặc sang bên phải), phép nhân và phép chia các giá trị số có thể dễ dàng thực hiện. Việc chuyển đổi thành số thập phân của các số (100101)2 và (1001010)2, bằng cách chuyển dịch bit có giá trị 1 đầu tiên sang trái, sẽ là như sau: Trọng số của từng chữ số:2 6 25 24 23 22 21 20 (100101)2 1 0 0 1 0 1 = 32 + 4 + 1 = (37)10 (1001010)2 1 0 0 1 0 1 0 = 64 + 8 + 2 = (74)10 Qua việc chuyển đổi này, cần chú ý là số 1 được biểu diễn là 2 5 trước phép chuyển dịch, nay biểu diễn 26, số 1 đã được biểu diễn là 2 2, nay biểu diễn là 23, và số 1 đã được biểu diễn là 2 0 nay biểu diễn 21. Nói cách khác sau phép chuyển dịch, giá trị của mỗi số 1 được tăng gấp đôi, và kết quả của việc chuyển đổi sang hệ thập phân cũng tăng gấp đôi từ (37)10, thành (74)10. Nói ngắn gọn, kết quả trên cho thấy bằng phép dịch một bit nhị phân 1 sang trái, giá trị của nó tăng gấp đôi. Theo cách tiếp cận này, phép chuyển dịch có thể được tóm tắt theo các quy tắc sau:: [Qui tắc dịch] Khi một số nhị phân được chuyển dịch sang trái n bits, giá trị ban đầu của nó tăng lên 2n lần. Khi một số nhị phân được chuyển dịch sang phải n bits, giá trị ban đầu của nó giảm đi 2n lần. (Giá trị ban đầu chia cho 2n) Phép chuyển dịch có thể dùng để tính các giá trị số, như trong thí dụ trên, cũng như để thay đổi vị trí của một bit một cách đơn giản.  Phép chuyển dịch số học Phép chuyển dịch số học là phép toán được dùng để tính các giá trị số. Nó được dùng trong dạng thức dấu phẩy cố định biểu diễn số âm bằng "phần bù 2". [Qui tắc chuyển dịch số học] bit dấu không bị chuyển dịch. bit bị chuyển dịch ra ngoài thì bị mất.
  28. 1.1 Biểu diễn dữ liệu 21 bit cần điền vào vị trí bit phát sinh như kết quả của phép dịch là: Đối với chuyển dịch trái: 0 Đối với chuyển dịch phải: giống như bit dấu Thí dụ Tính (22)10 4 bằng phép chuyển dịch số học  Biểu diễn (22)10 bằng cách dùng dạng thức dấu phẩy cố định (8 bits) (22)10 = (10110)2  0 0 0 1 0 1 1 0  Chuyển dịch 2 bits sang trái để tăng lên 4 lần (= 22). 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 = (88)10 0 0 0 được đặt vào vị trí các bít trống Bít bị dịch chuyển ra ngoài thì bị mất  Phép chuyển dịch logic Chuyển dịch logic là phép chuyển dịch được dùng để thay đổi vị trí của bit. Sự khác nhau lớn giữa chuyển dịch số học và chuyển dịch logic là bit dấu không được phân biệt. [Chuyển dịch logic] bit dấu cũng bị chuyển dịch. bit bị chuyển dịch ra ngoài thì bị mất. bit cần điền vào vị trí bit phát sinh như kết quả của phép dịch sẽ là 0 Thí dụ Sau phép chuyển dịch số học và logic đối với (-16)10 sang phải 2 bits, hãy chuyển các kết quả thành số thập phân.  Biểu diễn (-16)10 bằng cách dùng dạng thức dấu phẩy cố định (8 bits). 1 1 1 1 0 0 0 0  Chuyển dịch số học 2 bits sang phải 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 = (-4)10 Bits tương đương với bit dấu được thêm vào 0 0 Bit bị chuyển dịch ra ngoài thì mất  Chuyển dịch logic 2 bits sang phải 1 1 1 1 0 0 0 0 = (60)10 0 được thêm vào
  29. 1.1 Biểu diễn dữ liệu 22 0 0 1 1 1 1 0 0 0 0 Bit bị chuyển dịch ra ngoài thì mất 1.1.3 Phép toán và độ chính xác Vì dung lượng bộ nhớ của máy tính có giới hạn, không phải mọi giá trị số mà ta dùng đều có thể được biểu diễn một cách chính xác. Nói cách khác, một giá trị được biểu diễn trong máy tính là một biểu diễn gần đú ng. Như đã nói ở trên, trong quá trình xử lý dữ liệu thương mại, các phép toán được thực hiện theo hệ thập phân, trong khi đó cả việc biểu diễn bên trong lẫn các phép tính toán khoa học và kỹ nghệ đều được thực hiện trong hệ nhị phân. Vì vậy, sự khác nhau giữa giá trị số được biểu diễn bên trong và giá trị thật của số trở thành vấn đề cần chú ý. (1)Độ chính xác của việc biểu diễn giá trị số Độ chính xác của số là khoảng sai số của nó, và cái gọi là "độ chính xác cao " có nghĩa là "sai số nhỏ." Chỉ tập trung vào phần số nguyên, nếu có đủ số chữ số để biểu diễn sự chuyển đổi số thập phân sang số nhị phân, thì sẽ không có sai số nào cả. Tuy nhiên, phần phân số lại không đơn giản như vậy; vì rất nhiều phân số thập phân không thể biểu diễn được bằng phân số nhị phân với một số hữu hạn các chữ số. Độ chính xác đơn Trong tính toán khoa học và kỹ nghệ, các giá trị số được biểu diễn với các chữ số nhị phân trong các từ . Độ dài của từ phụ thuộc vào phần cứng. Thí dụ, khi 1 từ = 16 bits, thì nói chung, dạng thức mà trong đó một giá trị số được biểu diễn bằng 1 từ được gọi là độ chính xác đơn. Khoảng các giá trị số biểu diễn đ ược bằng 16 bits, trong trường hợp số nguyên không dấu, được chỉ ra dưới đây. Giá trị nhỏ nhất = (0000 0000 0000 0000)2 = 0 Giá trị lớn nhất = (1111 1111 1111 1111)2 = 65,535 Nói cách khác, giá trị lớn hơn 65,535 không biểu diễn được. Tương tự, khoảng giá trị số biểu diễn được với 16 bits, trong trường hợp phân số không dấu, được chỉ ra dưới đây. -16 Giá trị nhỏ nhất = (0000 0000 0000 0000)2 = 2 0.0000152587890625000 -16 Giá trị lớn nhất = (1111 1111 1111 1111)2 = 1-2 0.9999847412109370000 Trong trường hợp này, các giá trị nhỏ hơn 0.00001525878, và các giá trị lớn hơn 0.999984741210937 không thể biểu diễn được. Độ chính xác gấp đôi Để mở rộng khoảng các giá trị số có thể biểu diễn được, số các chữ số được tăng lên. Bằng cách biểu diễn 1 giá trị số bằng 2 từ, so với cách biểu diễn với 1 từ, khoảng cách giá trị số biểu diễn được trở nên rộng hơn rất nhiều. Dạng thức này gọi là độ chính xác gấp đôi. Nếu 1 từ = 16 bits, 1 giá trị số được biểu diễn với độ chính xác gấp đôi tức với 32 bits. Giá trị nhỏ nhất = (0000 0000 0000 0000 0000 0000 0000 0000)2 = 0 Giá trị lớn nhất = (1111 1111 1111 1111 1111 1111 1111 1111)2 = 4,294,967,295 Nói cách khác, các giá trị cho đến 4,294,967,295 có thể biểu diễn được. Tương tự, khoảng các giá trị số biểu diễn được bằng 32 bits, trong trường hợp phân số không dấu được chỉ ra dưới đây. -32 Giá trị nhỏ nhất = (0000 0000 0000 0000 0000 0000 0000 0000)2 = 2 0.00000000023283064365387 -32 Giá trị lớn nhất = (1111 1111 1111 1111 1111 1111 1111 1111)2 = 1 2
  30. 1.1 Biểu diễn dữ liệu 23 0.99999999976716900000000 (2) Độ chính xác của phép tính Độ chính xác của việc biểu diễn với dấu phẩy cố định Khoảng các giá trị số biểu diễn được bằng dấu phẩy cố định phụ thuộc vào phần cứng máy tính. Tùy thuộc vào số bits trong một từ, khoảng số đó không giống nhau. Một bước của phần số nguyên luôn là 1, bất kể số bits là bao nhiêu, và chỉ có giá trị lớn nhất là thay đổi. Tuy nhiên trong kích thước một bước của phần phân số, số bit được dùng càng lớn thì kích thước bước càng trở nên nhỏ và sai số được hạn chế. Độ chính xác của việc biểu diễn với dấu phẩy động a. Tràn trên và tràn dưới Khi nhân các giá trị cực lớn hoặc cực nhỏ, có những trường hợp mà kết quả tính toán vượt ra ngoài khoảng các giá trị số có thể biểu diễn được với luỹ thừa. Trường hợp xuất hiện khi tích lớn hơn giá trị cực đại có thể được biểu diễn bằng phần mũ, được gọi là tràn trên (giá trị tuyệt đối lớn nhất < tràn trên). Trường hợp xuất hiện khi tích nhỏ hơn giá trị tuyệt đối nhỏ nhất có thể biểu diễn được gọi là tràn dưới (0 < tràn dưới < giá trị tuyệt đối nhỏ nhất). b. Triệt tiêu (Cancellation) Khi trừ hai số dấu phẩy động hầu như bằng nhau, vì kết quả trở nên cực bé, ra ngoài khoảng giá trị có thể biểu diễn được. Trường hợp này gọi là triệt tiêu. c. Mất thông tin Khi cộng hai giá trị biểu diễn bằng dạng thức dấu phẩy động, phần mũ phải trùng nhau. Nói chung thì phần mũ được chỉnh theo giá trị lớn nhất. Khi cộng một giá trị cực bé với một giá trị cực lớn, vì phần luỹ thừa phải chỉnh theo luỹ thừa của giá trị số lớn nhất, phần định trị của giá trị nhỏ bị chuyển dịch rất nhiều sang bên phải. Hậu quả của việc dịch chuyển này là thông tin đáng phải được biểu diễn bị mất đi. Trường hợp này gọi là mất thông tin. Để tránh loại lỗi này, cần nghĩ tới các cách như thay đổi thứ tự của các phép tính Các cách như vậy do người dùng thực hiện. 1.1.4 Biểu diễn các giá trị phi số Khi sử dụng máy tính, để đưa vào các số và ký tự (các ký tự của bảng chữ cái, ký hiệu ) ta sử dụng các thiết bị đầu vào như bàn phím. Bên trong máy tính, để biểu diễn các ký tự bằng các chữ số nhị phân, người ta dùng khái niệm bộ mã. Hiện nay, các bộ mã ký tự khác nhau được dùng phụ thuộc vào máy tính. Dưới đây giải thích các bộ mã đ ược dùng rộng rãi trên thế giới và ở Nhật Bản. (1) Biểu diễn ký tự Các bộ mã ký tự được dùng rộng rãi, về cơ bản biểu diễn 1 ký tự bằng 8 bits, tức là, 1 byte. Các bộ mã ký tự được dùng rộng rãi trong lĩnh vực xử lý thông tin đôi khi còn được gọi là bộ mã trao đổi thông tin. Bằng cách gõ bàn phím, các ký tự được đưa vào máy tính như là mã 1-byte.
  31. 1.1 Biểu diễn dữ liệu 24 Các phím sau có trên bàn phím của máy tính cá nhân các phím số: 10 kiểu (0 đến 9) các phím ký tự: chữ cái: (chữ hoa từ A đến Z và chữ thường từ a đến z) 52 kiểu các phím ký hiệu: 40 kiểu các phím điều khiển: 34 kiểu (phím dấu cách ) Để gán được một mẫu bit duy nhất cho mỗi kiểu trong số 136 kiểu ký tự trên, ta cần dùng 8 bit (ứng với 256 kiểu mẫu bit) (2) Các bộ mã ký tự Các bộ mã ký tự chính là.  Mã ASCII (American Standard Code for Information Interchange) Mã ASCII do Viện tiêu chuẩn quốc gia Hoa Kỳ, ANSI (American National Standards Institute) thiết lập năm 1962. Mã ký tự 8 bits gồm bit mã biểu diễn chữ cái, ký tự số (7 bits) và bit chẵn lẻ dùng để kiểm tra lỗi. Mã này được dùng trong các máy tính cá nhân và trong việc truyền dữ liệu.  Mã ISO (International Organization for Standardization) Mã ISO là mã 7-bit do tổ chức tiêu chuẩn quốc tế (International Organization for Standardization) thiết lập năm 1967 trên cơ sở mã ASCII. Đó là những mã ký tự dùng trong mọi nước trên thế giới.  Mã JIS (Japanese Industrial Standards) - chuẩn công nghiệp Nhật Bản Mã JIS được thiết lập là JIS X 0201 bằng cách thêm vào mã ISO các ký tự Romaji, Hiragana và các ký tự đặc thù khác của tiếng Nhật. Có "Mã JIS 7-bit" được dùng để biểu diễn Romaji và "mã JIS 8-bit" được dùng để biểu diễn katakana, cũng như "mã ISJIS kanji code," - biểu diễn 1 kí tự bằng 2 bytes (16 bits), và được dùng để biểu diễn hiragana và kanji.  Mã EBCDIC (Extended Binary Coded Decimal Interchange Code) Mã EBCDIC là bộ mã do IBM phát triển. So với các bộ mã trên - những bộ mã được dùng như là chuẩn -, mã EBCDIC được thiết kế cho máy tính IBM. Vì IBM chiếm tỷ trọng lớn nhất trong thị trường máy tính khi mà các máy tính thế hệ thứ ba với bộ mã này được khai trương, các công ty khác cũng phát triển máy tính của họ theo bộ mã này, và kết quả là nó trở thành một bộ mã chuẩn. Các chuẩn như vậy, - tức có nhiều người dùng - được gọi là các chuẩn de facto - thực tế.  Mã JIS chuyển dịch - Shift JIS code Như đã nói ở trên, để biểu diễn kanji, mã JIS kanji biểu diễn 1 từ với 2 bytes. Hình 1-1-24 Bảng mã JIS X 0201
  32. 1.1 Biểu diễn dữ liệu 25 Có thời, mã JIS và mã JIS kanji được trộn lẫn. Khi các mã 1-byte và mã 2-byte trộn lẫn, việc giải nghĩa không thể thực hiện được. Vì vậy, một mã thoát đặc biệt được thêm vào phía trước và phía sau của một chuỗi mã kanji. Thí dụ, chuỗi bit của 5 kanji trở thành 10 bytes + 2 bytes. Khi dữ liệu bị mất trong quá trình truyền dữ liệu v.v việc khôi phục trở nên khó khăn. Để tìm giải pháp cho việc này, mã JIS chuyển dịch để chuyển đổi ký tự trong mã JIS Kanji thành hệ thống mã khác, đã được tạo ra. Byte đầu của "shift JIS" dùng một mã không dùng trong mã JIS (1 byte), và, đồng thời, bằng cách tránh các ký tự điều khiển trong ký tự thứ hai, các mã 1-byte và các mã 2-byte có thể trộn lẫn mà không cần phải dùng đến các mã thoát đặc biệt.  Unicode Unicode là hệ thống mã 2-byte được thống nhất cho mọi nước. Bộ mã này được đề xuất và thiết kế bởi Apple Computer, IBM, Microsoft, và các công ty khác của Hoa Kỳ để tạo thuận lợi cho việc trao đổi dữ liệu giữa các máy tính cá nhân. Mã này được ISO thông qua như dự thảo của một chuẩn quốc tế. (3) Biểu diễn âm thanh Như đã nói, CNTT ngày nay cung cấp các hỗ trợ đa phương tiện, và đối tượng dữ liệu cần xử lý không chỉ hạn chế trong các dữ liệu ký tự và số mà còn có nhiều loại thông tin được dùng trong cuộc sống hàng ngày của chúng ta. Một trong những thành phần của đa phương tiện là âm thanh. Tiếng nói của con người được tạo thành khi luồng không khí được tạo ra trong phổi thay đổi, rung động và vang vọng nhờ những bộ phận như lưỡi, môi, răng, hàm, khoang mũi và dây thanh quản. Vì dữ liệu âm thanh có dạng sóng tương tự phức tạp, việc phân tích tiếng nói được thực hiện bằng cách sử dụng công thức số và một khi nó đã được chuyển đổi thành các mã số, nó được xử lý trong máy tính. Các trình soạn thảo vă n bản có chấp nhận đầu vào dạng âm thanh và nhận dạng tiếng nói là những thí dụ gần đây về việc ứng dụng này. (4) Biểu diễn hình ảnh Để hỗ trợ đa phương tiện hiện nay, không chỉ dữ liệu âm thanh mà dữ liệu hình ảnh cũng được xử lý. Bên trong máy tính, dữ liệu hình ảnh được xử lý như một tập các điểm. Vì lý do đó, việc đăng kí trạng thái của từng điểm tạo thành hình ảnh là việc đăng ký chính dữ liệu của hình ảnh. Cách tiếp cận dễ nhất là đăng ký 2 trạng thái, đen và trắng, đối với mỗi điểm tạo thành hình ảnh. Trong trường hợp này, 1 bit được dùng đ ể đăng ký thông tin cho mỗi điểm. Ngày nay, đa số là các hình ảnh màu, nên phương pháp này không giải quyết được vấn đề. Do đó, phương pháp biểu diễn tổ hợp các màu cơ bản trong mỗi điểm được sử dụng. Trong các màn hình máy tính, có số lớn các hệ thống tổ hợp 3 màu chính (đỏ, lục và lam) thành 256 mức tương ứng và biểu diễn khoảng 16,000,000 màu. Trong trường hợp này, vì cần 8 bits cho 1 màu, nên để đă ng ký thông tin của một điểm, ta cần đến 24 bits.
  33. 1.2 Thông tin và logic 26 1.2 Thông tin và lôgic 1.2.1 Logic mệnh đề Các phép toán mà máy tính có thể xử lý được không chỉ hạn chế trong các công thức số học. Bằng cách gán giá trị cho các câu, ta có thể thực hiện được các phép tính trên các câu. Thí dụ, trong toán logic, các mệnh đề như "Gió thổi," "Trời mưa," "x=5" và "y=2" được gọi là các mệnh đề. Giá trị “đúng” hoặc “sai”, nói cách khác, "đúng" và "sai" có thể gán cho các mệnh đề này. Tuy nhiên, một mệnh đề sẽ luôn "đúng" hoặc luôn "sai". Cùng một mệnh đề không thể cùng một lúc vừa đúng vừa sai. "Gió đang thổi và trời đang mưa” thì còn có thể, chứ "Gió đang thổi và đang không có gió” thì không thể có. Các mệnh đề được biểu diễn bằng p, q, r, và các chữ khác, và qua việc tổ hợp đặc tính logic của chúng, ta có thể tạo ra các mệnh đề tổng hợp mới. Mỗi quan hệ mệnh đề được làm rõ thông qua các phép tính logic bởi logic mệnh đề. Việc một mệnh đề tổng hợp đúng hay là sai được xác định bởi bảng chân lí. Thí dụ về bảng đó được đưa ra trong hình 1-2-1. Bảng chân lí cho thấy: Mệnh đề "Gió đang không thổi " là sai khi mệnh đề 1, "Gió đang thổi," là đúng, và nó đúng khi mệnh đề 1 là sai. Mệnh đề "Gió đang thổi hoặc trời đang mưa " là đúng khi cả hai, mệnh đề 1, "Gió đang thổi," và mệnh đề 2, "Trời đang mưa," đều đúng, hoặc khi một trong hai mệnh đề đúng. Khi cả hai đều sai, mệnh đề ban đầu là sai. Hình 1-2-1 Bảng chân lí Mệnh đề 1 Mệnh đề 2 Gió đang không Gió đang thổi và Gió đang thổi Nếu gió thổi Gió đang thổi Trời đang mưa thổi trời đang mưa Hoặc trời đang mưa thì trời mưa Đúng Đúng Sai Đúng Đúng Đúng Gió Mưa Sai Đúng Đúng Đúng Đúng Sai Sai Sai Đúng Sai Gió Không mưa Sai Sai Đúng Sai Sai Đúng Đúng Sai Đúng Sai Không có gió Mưa Đúng Sai Đúng Sai Sai Sai Đúng Sai Sai Sai Không có gió Không có mưa Đúng Sai Sai Sai 1.2.2 Phép toán logic Vì biểu thức logic diễn tả bằng từ trở nên quá dài, và không phù hợp với sự vận hành của máy tính, nên các quan hệ logic được biểu diễn bằng ký hiệu. Các ký hiệu để biểu diễn các phép toán mệnh đề đó (phép toán logic) được gọi là ký hiệu logic hoặc kết nối logic. Các ký hiệu logic chủ yếu hay được dùng trong xử lý thông tin là NOT, AND, OR, exclusive OR (loại trừ), ý nghĩa của các ký hiệu này được giải thích dưới đây. Mỗi phép toán logic sẽ được giải thích bằng các ví dụ trong hình 1-2-1, và mệnh đề 1 "Gió đang thổi," được ký hiệu là p, và mệnh đề 2 "Trời đang mưa " là q.
  34. 1.2 Thông tin và logic 27 (1) Phủ định Bằng cách phủ định mệnh đề "Gió đang thổi," một mệnh đề mới, "Gió đang không thổi " có thể được tạo ra. Trong trường hợp này, ký hiệu logic "¬ (NOT)" được sử dụng và việc phủ định được biểu diễn là "¬p". Hình 1-2-2 Bảng chân lí cho phép phủ định P ¬p T F F T (2) Tích logic Khi hai mệnh đề dược nối với nhau bằng liên từ "AND" như trong "Gió đang thổi và trời đang mưa”, cả hai mệnh đề "Gió đang thổi và trời đang mưa” "Gió đang thổi” và “Trời đang mưa” được diễn đạt đồng thời. Việc kết nối hai mệnh đề p và q bằng liên từ "AND" được gọi là tích logic. Trong trường hợp này, ký hiệu logic " (AND)" được dùng đến và biểu diễn thành "pq." Bảng chân lí trong hình 1-2-3, và kết quả chỉ đúng khi cả p và q cùng đúng. Hình 1-2-3 p Q p  q Bảng chân lí cho tích logic T T T T F F F T F F F F (3) Tổng logic Khi hai mệnh đề được nối với nhau bằng liên từ "OR" như trong "Gió đang thổi hoặc trời đang mưa”, thì hoặc là "Gió đang thổi” hoặc “Trời đang mưa” được diễn đạt. Việc kết nối hai mệnh đề p và q bằng liên từ "OR" được gọi là tổng logic. Trong trường hợp này, ký hiệu logic " (OR)" được dùng đến và biểu diễn thành "pq." Bảng chân lí trong hình 1-2-4, và kết quả chỉ sai khi cả p và q cùng sai. Hình 1-2-4 p Q p  q Bảng chân lí cho tổng logic T T T T F T F T T F F F (4) Phép tính OR loại trừ (Exclusive OR) Trong tổng logic ở trên, "Gió đang thổi hoặc trời đang mưa”, thể hiện hoặc là "Gió đang thổi” hoặc là “Trời đang mưa”. Tổng logic này đúng khi "Gió đang thổi và trời đang mưa”, hoặc nói cách khác, khi cả hai mệnh đề đều đúng. Ban đầu, từ "or" được dùng trong nhiều trường hợp để diễn tả ý nghĩa loại trừ theo kiểu "một trong hai điều". Vì vậy, phép tính OR loại trừ được dùng để hỗ trợ các trường hợp này. Trong trường hợp OR loại trừ, ký hiệu logic " (EOR)" được dùng và biểu diễn là "pq." Kết quả chỉ đúng khi p hoặc q, một trong hai mệnh đề đúng. Vì vậy, kết quả sai khi cả p và q cùng sai, hoặc cả p và q cùng đúng. Phép tính logic này thường dùng trong lập trình. . Hình 1-2-5 Bảng chân lí cho OR loại trừ p q p  q T T F T F T F T T F F F
  35. 1.2 Thông tin và logic 28 (5) Phủ định của AND (NAND) Đó là phủ định của tích logic. Nó được biểu diễn là " (pq)." Phép tính logic này thường dùng trong thiết kế các mạch số. (6) Phủ định của tổng logic (NOR) Đó là phủ định của tổng logic. Nó được biểu diễn là " (pq)." Hình 1-2-6 là bảng chung cho cả 6 phép tính logic. Hình 1-2-6 Bảng chân lí cho các phép tính logic NOT, AND, OR, EOR, NAND và NOR p q NOT p p AND q p OR q p EOR q p NAND q p NOR q T T F T T F F F T F F F T T T F F T T F T T T F F F T F F F T T (7) Luật của các biểu thức logic Các biểu diễn với các ký hiệu logic như trên gọi là biểu thức logic. Cùng với các ký hiệu logic đã nêu trên, người ta còn dùng một số ký hiệu khác (hình 1-2-7). Hình 1-2-7 Ý nghĩa Ký hiệu Ví dụ ký hiệu Ký hiệu logic X Phủ định NOT  — Tích logic AND  . X .Y Tổng logic OR  + X + Y Phép OR loại trừ EOR   X  Y Vì logic trở nên phức tạp, nên các biểu thức logic cũng trở nên cực kỳ phức tạp. Vì lý do đó, để làm đơn giản hóa các biểu thức logic, các luật sau được sử dụng: Luật tích logic: X  X X, X  X 0, X  0 0, X  1 X Luật tổng logic: X X X, X X 1, X 0 X, X 1 1 Luật OR loại trừ: X  X 0, X  X 1, X  0 X, X 1 X Giao hoán: X Y Y X, X  Y Y  X Kết hợp: X Y Z X Y Z, X  Y  Z X  Y  Z Phân phối: X Y  Z X Y  X Z X  Y Z X  Y X  Z Luật hấp thu : X X  Y X, X  X Y X Luật khôi phục: X X Luật De Morgan: X Y X  Y, X  Y X Y Ví dụ, biểu thức logic của OR loai trừ được biểu diễn thành X  Y X  Y X  Y . Bằng cách sử dụng các luật trên, biểu thức logic này có thể biến đổi như sau: X  Y X  Y X  Y X  Y X  X  Y Y ∙∙∙∙∙∙∙∙∙∙luật phân phối X X  X Y  Y X  Y Y ∙∙∙∙∙∙∙∙∙∙luật chuyển và phân phối 1  X Y  Y X  1 ∙∙∙∙∙∙∙∙∙∙tổng logic X Y  X Y ∙∙∙∙∙∙∙∙∙∙tích logic
  36. Bài tập 29 Bài tập Q1 Bất đẳng thức nào sau đây thể hiện đúng quan hệ về kích cỡ giữa 4 ký hiệu là lũy thừa nguyên của 10: G (giga), k (kilo), M (mega) và T (tera)? a. G < k < M < T b. k < G < T < M c. k < M < G < T d. M < G < k < T e. M < T < G < k Q2 Giá trị nào trong các giá trị sau tương ứng với pico giây (1 picosecond)? a. 1 nanosecond 1,000 b. 1 microsecond / 1,000,000 c. 2-12 seconds d. 10-10 seconds e. 10-11 seconds Q3 Cho các số nhị phân A và B, trong đó A = 01010101, B = 01100110, giá trị nào sau đây là kết quả của phép tính A + B? a. 01101010 b. 01111010 c. 10011010 d. 10111011 e. 11010101 Q4 Giá trị nào trong các giá trị sau là kết quả của phép trừ số hệ mười sáu DD và số 1F "DD- 1F"? a. AF b. BE c. CE d. EC e. FC Q5 Giá trị nào trong các giá trị dưới đây biểu diễn kết quả dưới dạng thập phân của phép cộng hai số nhị phân 1.1011 và 1.1101? a. 3.1 b. 3.375 c. 3.5 d. 3.8 e. 3.9375 Q6 Số nào là số thập phân có thể biểu diễn dưới dạng số nhị phân dấu phẩy động mà không có sai số? a. 0.2 b. 0.3 c. 0.4 d. 0.5 Q7 Giá trị nào trong các giá trị sau biểu diễn phân số hệ mười sáu 0.248 thành phân số thập phân? 31 31 31 73 a. b. c. d. 32 125 512 512 Q8 Đâu là mẫu bit đúng của số thập phân +432 khi nó được biểu diễn dưới dạng thức thập phân đóng gói? Lưu ý rằng dấu được biểu diễn bằng 4 bits cuối cùng, và "1100" biểu diễn số dương, còn "1101" biểu diễn số âm. a. 0000 0001 1011 0000 b. 0000 0001 1011 1100 c. 0001 1011 0000 1100 d. 0100 0011 0010 1100 e. 0100 0011 0010 1101
  37. Bài tập 30 Q9 Đâu là phạm vi của các số nguyên biểu diễn được với n bits bằng dạng thức dấu phẩy cố định theo kiểu thể hiện số âm bằng phần bù 2? Ở đây, vị trí của dấu chấm thập phân nằm ở phía bên phải của bit có nghĩa nhỏ nhất (LSB). a. 2 n to 2 n-1 b. 2 n-1 to 2 n-1 c. 2 n-1 to 2 n-1 1 d. 2 n-1 1 to 2 n-1 Q10 Đâu là lý do mà trong nhiều máy tính cách biểu diễn bằng phần bù lại được dùng để đơn giản hóa các mạch tính toán? a. Phép cộng có thể coi là phép trừ. b. Phép trừ có thể coi là phép cộng. c. Phép nhân có thể xử lý bằng tổ hợp của các phép cộng. d. Phép chia có thể xử lý bằng tổ hợp của các phép trừ. Q11 Giá trị nào trong các giá trị dưới đây ứng với biểu diễn số thập phân -5.625 dưới dạng số nhị phân dùng dạng thức 8-bit dấu phẩy cố định? Ở đây, vị trí của dấu chấm thập phân nằm giữa bit thứ tư và bit thứ năm và các số âm được biểu diễn bằng phần bù 2. 8 7 6 5 4 3 2 1 Vị trí dấu phẩy thập phân a. 01001100 b. 10100101 c. 10100110 d. 11010011 Q12 Đâu là biểu diễn chuẩn hóa của số thập phân 0.375? Ở đây, giá trị số được biểu diễn bằng cách dùng dạng thức 16-bit dấu phẩy động và dạng thức đó được chỉ trong hình sau. Việc chuẩn hóa được thực hiện là phép tính điều chỉnh phần số mũ để loại bỏ các số 0 của các chữ số hàng cao hơn, chứ không phải các giá trị có nghĩa của phần định trị. 4 S: Dấu phần định trị (0: Dương, 1: Âm) 1 bits 11 bit bits E: Phần số mũ là lũy thừa của 2, và số âm được biểu diễn sử dụng bù 2. M: Giá trị tuyệt đối của phần định trị. Vị trí dấu phẩy thập phân Q13 Giá trị nào trong số các giá trị sau là kết quả của phép chuyển dịch logic số hệ mười sáu ABCD hai bit sang bên phải? a. 2AF3 b. 6AF3 c. AF34 d. EAF3
  38. Bài tập 31 Q14 Phép nhân các số nhị phân có thể thực hiện bằng phép dịch và phép cộng. Để tăng số nhị phân lên 2n cần dịch số m đi n bits sang trái. Ví dụ, m 19 có thể nhận được bằng cách sau: (Giá trị của kết quả chuyển dịch m lần một bit sang trái) + (Giá trị của kết quả dịch m lần một bit sang trái) + m Vậy a là bao nhiêu? a. 2 b. 3 c. 4 d. 5 Q15 Số thập phân -100 được ghi dưới dạng phần bù 2 trong một thanh ghi 8-bit. Giá trị nào trong các giá trị dưới đây biểu diễn, trong dạng số thập phân, kết quả chuyển dịch số học của thanh ghi đó 3 bit sang phải? a. –33 b. –13 c. –12 d. 19 Q16 Mô tả nào là mô tả đúng về lỗi làm tròn? a. Đó là lỗi tạo ra khi kết quả của phép tính vượt quá giá trị tối đa mà máy tính có thể xử lý. b. Vì số chữ số để biểu diễn các số có hạn, nên đó là lỗi được tạo ra như là kết quả của việc làm tròn số, làm tròn trên hoặc bỏ qua các phần nhỏ hơn chữa số có nghĩa nhỏ nhất. c. Đó là lỗi được tạo ra do mất các giá trị có nghĩa cao nhất trong phép trừ các số có giá trị tuyệt đối gần bằng nhau. d. Đó là lỗi tạo ra do mất các giá trị có nghĩa thấp nhất trong phần định trị của giá trị số, với số mũ nhỏ hơn trong phép trừ các số dấu phẩy động. Q17 Số chữ số tối thiểu cần để biểu diễn một cách duy nhất với cùng một số bits của các chữ hoa trong bảng chữ cái từ A đến Z và các ký tự số từ 0 đến 9 là bao nhiêu? a. 5 b. 6 c. 7 d. 8 Q18 Bảng chân lí sau đây cho biết kết quả của phép tính logic "x  y." Biểu thức nào dưới đây tương đương với phép tính logic này? x Y x  y Đúng Đúng Sai Đúng Sai Sai Sai Đúng Đúng Sai Sai Sai a. x AND (NOT y) b. x OR (NOT y) c. (NOT x) AND y d. (NOT x) AND (NOT y) e. (NOT x) OR (NOT y) Q19 Biểu thức nào dưới đây tương đương với biểu thức logic (A + B)·C ? Ở đây, "" biểu diễn tích logic (AND), "+," tổng logic (OR), và A là phủ định của A (NOT).· a.(A·B) C b. A  B  C c.A B C d. (A  B) C
  39. 2 Phần cứng Mục tiêu của chương Trong công nghệ liên quan tới máy tính, tiến bộ của công nghệ phần cứng là đặc biệt nổi bật. Trong chương này, mục tiêu học tập là hiểu cơ cấu và chức năng của từng phần trong năm đơn vị chính của phần cứng máy tính:  Hiểu vai trò và chức năng của năm đơn vị chính của máy tính.  Hiểu những thao tác cơ bản của bộ xử lý (đơn vị xử lí) và những thanh ghi được dùng để đọc, giải mã và thực hiện lệnh và dữ liệu được ghi nhớ trong đơn vị bộ nhớ chính. Bộ xử lý này bao gồm đơn vị điều khiển và đơn vị số học.  Hiểu cách tiếp cận cơ bản và mạch cấu hình của đơn vị số học thực hiện những phép toán số học và những phép toán logic.  Hiểu cơ cấu và chức năng của đơn vị bộ nhớ chính và những thiết bị nhớ phụ được sử dụng để lưu giữ dữ liệu và hiểu về kiểu và đặc trưng của chúng.  Hiểu những kiểu và cơ cấu của bộ vào/ra cũng như hệ thống điều khiển vào/ra và giao diện vào/ra.  Hiểu các kiểu và đặc trưng của máy tính .
  40. 2.1 Yếu tố thông tin 33 Giới thiệu Chức năng của phần cứng tạo nên máy tính có thể được chia một cách đại thể thành năm loại sau đây: · Đưa vào · Lưu giữ · Thao tác · Điều khiển · Đưa ra Sau đây là những đơn vị thực thi những chức năng kể trên: · Đơn vị vào: Đơn vị này đưa dữ liệu và chương trình vào cho máy tính xử lý. Nó tương đương với đôi mắt và đôi tai của con người. · Đơn vị lưu giữ: Đơn vị này lưu giữ dữ liệu vào và chương trình. Nó tương đương như vùng nhớ trong não người. · Đơn vị số học: Đơn vị này tiến hành tính toán và quyết định trên dữ liệu được lưu giữ theo các lệnh của chương trình. Nó tương đương với phần suy nghĩ trong bộ não con người. · Đơn vị điều khiển: Đơn vị này điều khiển đơn vị vào, đơn vị lưu giữ, đơn vị số học và đơn vị ra. Nó tương đương với hệ thống thần kinh trung ương của con người. · Đơn vị ra: Đơn vị này đưa ra những kết quả của tiến trình xử lý máy tính ở dạng con người có thể được. Nó tương đương như đôi tay và cái miệng của con người. Năm đơn vị này được gọi là “năm đơn vị chính của máy tính” (Hình 2-1-1). Vì đơn vị điều khiển và đơn vị số học được xử lý như một đơn vị, nên chúng được gọi là bộ xử lý (đơn vị xử lý) hoặc đơn vị xử lý trung tâm (CPU). Thuật ngữ chung "thiết bị ngoại vi" được sử dụng để nói tới đơn vị vào/ra và các thiết bị bộ nhớ ngoài, nằm bên ngoài bộ xử lí và trao đổi dữ liệu với bộ nhớ chính. Cũng như vậy, đơn vị lưu giữ được chia thành đơn vị bộ nhớ chính và thiết bị lưu giữ phụ, tuỳ theo chức năng của chúng. Hình 2-1-1 Năm đơn vị chính của máy tính Đơn vị vào Đơn vị Đơn vị ra bộ nhớ chính Đơn vị Bộđiều xử khiển lý Đơn vị số học Luồng dữ liệu Luồng điều khiển
  41. 2.1 Yếu tố thông tin 34 2.1 Yếu tố thông tin 2.1.1 Mạch tích hợp Trong những máy tính ngày nay, mạch tích hợp (IC) tích hợp các chất bán dẫn ở mật độ cao. Những mạch tích hợp này đã được phân loại theo mức độ tích hợp như hình 2-1-2. Hình 2-1-2 IC Mức tích hợp SSI Mạch tích hợp cỡ nhỏ 101 - 102 Phân loại mạch tích hợp MSI Mạch tích hợp cỡ vừa 102 - 103 IC theo mức độ tích hợp LSI Mạch tích hợp cỡ lớn 103 - 104 VLSI Mạch tích hợp cỡ rất lớn 105 - Chú ý: Mức tích hợp đưa ra miền số các cổng trong 1 IC ( số các transistor) Cũng như vậy, theo cấu trúc, mạch tích hợp có thể được phân loại như sau: · Mạch tích hợp lưỡng cực (Bipolar IC): Tốc độ và những yêu cầu về năng lượng cũng như giá cả cao. Nó được sử dụng như một phần tử logic. · Mạch tích hợp CMOS hay còn được gọi là chip CMOS (CMOS IC): Tốc độ và những yêu cầu về năng lượng cũng như giá thành thấp. Nó đuợc sử dụng như một phần tử lưu giữ. 2.1.2 Bộ nhớ bán dẫn Những phần tử logic được sử dụng trong những thao tác logic, trong khi đó những phần tử lưu giữ được sử dụng trong lưu giữ dữ liệu và các lệnh. Trong phần này, sẽ trình bày về những phần tử lưu giữ này. (Mạch logic sẽ được diễn giải chi tiết ở phần tiếp theo 2.2). Phần tử lưu giữ được gọi là bộ nhớ bán dẫn hay bộ nhớ mạch tích hợp và nói chung chúng được chia thành RAM và ROM. Hình 2-1-3 DRA RAM và ROM RA M M SRA Bộ nhớ bán dẫn M Mask ROM RO M ROM người sử dụng có thể lập (1) Bộ nhớ truy nhập ngẫu nhiên RAM (Randomtrình Access Memory) RAM là bộ nhớ bán dẫn nó có thể đọc và ghi dữ liệu. Khi tắt máy tính đi, thì dữ liệu được lưu giữ tại đó cũng mất. Thuộc tính này được gọi là dễ thay đổi (linh hoạt). Đại bộ phận bộ nhớ chính là RAM, bộ xử lý có thể thực hiện việc đọc và ghi thông tin từ bộ nhớ chính tại các địa chỉ ngẫu nhiên. RAM được phân loại thành DRAM và SRAM.  RAM động hay bộ nhớ truy nhập ngẫu nhiên động (DRAM: Dynamic RAM) DRAM biểu diễn những bit, và lưu giữ thông tin phụ thuộc vào phần tử được gọi là tụ điện được nạp (trạng thái “1”) hoặc không được nạp (trạng thái “0”). Vì mạch điện đơn giản và nhỏ, nên dung lượng của RAM có thể được tạo với giá thành thấp. Tuy nhiên, vì việc nạp trên tụ điện sẽ mất đi sau một thời gian, bộ nhớ cần ghi lại (nạp lại) ở khoảng thời gian đều đặn. Thao tác này được gọi là làm tươi. Trước đây DRAM được sử dụng trong bộ nhớ chính, nhưng
  42. 2.1 Yếu tố thông tin 35 hiện nay DRAM còn được sử dụng trong bộ nhớ v.v nằm trong đơn vị vào/ra của máy in và các thiết bị khác.  Ram đồng bộ (SDRAM: Synchronous DRAM) Nhờ có sự phát triển của công nghệ mạch tích hợp, và cải thiện khả năng thực hiện của bộ xử lý, tốc độ thao tác của DRAM làm cho bộ nhớ không thể theo kịp với tốc độ của bộ xử lý. Vì lý do này, một tín hiệu đồng hồ bên ngoài cho biết thời gian thao tác của bộ xử lý hiện được đặt trong DRAM và đồng bộ với những tín hiệu này, việc xác định các địa chỉ được giảm và đơn giản hoá, cho phép sự phát triển DRAM hoạt động ở tốc độ cao. Những kiểu DRAM này được gọi là DRAM đồng bộ.  RAM tĩnh (SRAM: Static RAM) SRAM được tạo bằng mạch được gọi là mạch lật (flip-flop). Mạch lật thiết lập đầu ra theo đầu vào và có thể duy trì ở trạng thái "1" và "0" bên trong mạch điện. Vì vậy, dữ liệu không bị mất đi trừ khi máy tính tắt, làm tươi bộ nhớ là không cần thiết. Tuy nhiên, vì mạch SRAM phức tạp, dung lượng nhớ nhỏ hơn DRAM và giá cả cũng cao hơn. Tuy nhiên, vì tốc độ xử lý cao, nó được dùng làm thanh ghi trong bộ nhớ chính và trong bộ xử lý. (2) Bộ nhớ chỉ đọc (ROM: Read Only Memory) ROM là bộ nhớ bán dẫn chỉ sử dụng để đọc. Từ đầu, những chương trình và dữ liệu được lưu giữ ở ROM, thông tin được lưu giữ không bị mất đi kể cả khi máy tính bị tắt đi. Thuộc tính này được gọi là không linh động. ROM được phân loại thành mask ROM và ROM có thể lập trình theo yêu cầu người sử dụng.  Mask ROM Vì những chương trình và dữ liệu đã ghi trên Mask ROM trước khi Mask ROM được nhà sản xuất tung ra thị trường, người sử dụng không thể thêm những chương trình hoặc dữ liệu. Mask ROM được sử dụng trong những bộ nhớ của băng trò chơi và chứa những chương trình khởi động (IPL: Initial Program Loader), chương trình dùng để khởi động máy tính v.v  ROM người sử dụng có thể lập trình (User programmable ROM) ROM người sử dụng có thể lập trình là kiểu của ROM khi tung ra thị trường, nhà sản xuất không lưu giữ gì, người sử dụng có thể ghi dữ liệu lên mỗi ROM. Dưới đây là kiểu ROM người sử dụng có thể lập trình hiện có (Hình: 2-1-4). · ROM có thể lập trình (PROM: ROM có thể lập trình): Mỗi khi dữ liệu đã ghi lên, những dữ liệu đó không thể xoá đi được. · ROM có thể xoá bỏ (EPROM: Erasable PROM): ROM có thể được xoá bỏ bằng ánh sáng tử ngoại và có thể ghi lại. · ROM có thể xóa bỏ bằng điện (EEPROM: Electrically Erasable PROM): ROM có thể được xoá bỏ thông qua sử dụng điện áp và có thể ghi lại. EEPROM được sử dụng trong thiết bị lưu giữ được gọi là bộ nhớ “flash”, chúng được dùng để lưu dữ liệu ảnh của những máy ảnh kỹ thuật số v.v Cũng như vậy , nó còn được sử dụng trong phần lưu giữ của các thẻ IC (IC cards) v.v Hình 2-1-4 ROM người sử dụng có thể lập trình PROM ROM người sử dụng có thể lập trình EPROM EEPROM
  43. 2.2 Kiến trúc bộ xử lý 36 2.2 Kiến trúc bộ xử lý 2.2.1 Kiến trúc và nguyên tắc hoạt động của bộ xử lý (1) Kiến trúc bộ xử lý Trong năm đơn vị chính tạo nên máy tính, đơn vị điều khiển và đơn vị số học được quản lý bởi một đơn vị được gọi là đơn vị xử lý (processing unit). Đơn vị xử lý được gọi là đơn vị xử lý trung tâm (CPU), và như là xương sống của máy tính, đơn vị xử lý trung tâm thực hiện những vai trò quan trọng như sau.  Đơn vị điều khiển Đơn vị điều khiển là đơn vị điều khiển toàn bộ những thao tác của máy tính. Nó nhận, giải mã và thực hiện từng lệnh một theo thứ tự, những lệnh được lưu giữ trong bộ nhớ chính. Dưới đây là những chức năng chính của đơn vị điều khiển: · Tìm các lệnh được lưu trong bộ nhớ chính · Giải mã lệnh tìm được bằng bộ giải mã lệnh. · Tuỳ thuộc vào việc giải mã, truyền các đặc tả cần cho việc thực hiện lệnh tới từng đơn vị. Qua việc lặp lại những thao tác này, đơn vị điều khiển điều khiển mỗi đơn vị và thực thi những chức năng của mỗi đơn vị trong hệ thống máy tính. Hệ thống được thực hiện theo cách này, từng lệnh một được gọi là hệ thống điều khiển tuần tự. Thiết kế hệ thống điều khiển tuần tự này và hệ thống chương trình được lưu giữ (tham khảo đơn vị bộ nhớ chính trong 2.3.1) dựa trên những khái niệm của John von Neumann. Máy tính loại này được gọi là máy tính Neumann. Ở hình 2-2-1, là một ví dụ giải thích cấu tạo của hệ thống điều khiển tuần tự, tiến trình “cộng nội dung địa chỉ 100 và nội dung địa chỉ 101 và kết quả được lưu giữ ở địa chỉ 102”. Hình 2-2-1 Cấu tạo của hệ thống điều khiển tuần tự (1) Truy tìm nội Đơn vị điều khiển Địa chỉ 100 dung địa chỉ 100 Địa chỉ 101 (1) Địa chỉ 102 Đơn vị số học Địa chỉ 100 Đơn vị điều khiển Địa chỉ 100 (2) Truy tìm nội (2) Địa chỉ 101 dung địa chỉ 101 Địa chỉ 102 Đơn vị số học Địa chỉ 100 Địa chỉ 101 Đơn vị điều khiển (3) (3) Cộng nội dung địa chỉ 100 vào nội dung địa Đơn vị số học chỉ 101 Địa chỉ 100 + Địa chỉ 101 Đơn vị điều khiển Địa chỉ 100 (4) Lưu giữ kết Địa chỉ 101 quả cộng vào địa (4) Địa chỉ 102 chỉ 102 Đơn vị số học Kết quả cộng
  44. 2.2 Kiến trúc bộ xử lý 37 Đơn vị số học Tên chính thức của đơn vị số học là đơn vị logic và số học (ALU). Đây là đơn vị thực hiện những phép tính số học, những phép tính logic, so sánh, nhảy theo nhánh và các tiến trình xử lý trên các dữ liệu được coi như đối tượng cần xử lý. Những lệnh chính được hiển thị ở hình 2-2-2. Hình 2-2-2 Những chức năng của đơn Các phép tính cơ bản Các lệnh cơ bản vị số học Các phép tính số học Cộng, trừ, nhân và chia Phép tính logic Cộng logic(OR), tích logic (AND), phủ định (NOT) So sánh Lệnh so sánh (so sánh kích thước) Phân nhánh Lệnh nhảy (thay đổi trình tự các lệnh thực hiện theo điều kiện) Phụ thuộc vào phương pháp biểu diễn dữ liệu được coi như đối tượng của những phép tính, đơn vị số học và logic có những chức năng thực hiện phép tính dấu phẩy cố định, phép tính dấu phẩy động, và phép tính thập phân. (2) Những nguyên lý cơ bản về thao tác của bộ xử lý Đọc và giải mã lệnh Dữ liệu và chương trình được lấy từ bộ nhớ chính rồi được chuyển tới bộ xử lý thông qua bus dữ liệu. Sau đó, nội dung của đối tượng dữ liệu cần xử lý được lưu giữ tạm thời trong “thanh ghi vạn năng”, trong khi phần chương trình chỉ ra thủ tục của tiến trình được chuyển tới “thanh ghi lệnh”. a. Lệnh và dạng thức lệnh  Lệnh Chương trình là một tập các lệnh chỉ ra cho máy tính "hãy làm ". Bởi vì trong máy tính, dữ liệu đ ược biểu diễn bằng hệ nhị phân, nên lệnh cũng được biểu diễn bằng hệ nhị phân. Lệnh được biểu diễn trong hệ nhị phân được gọi là lệnh ngôn ngữ máy. Bất kể tới ngôn ngữ mà chương trình được viết, khi chương trình được viết xong nó sẽ được chuyển vào ngôn ngữ mà máy tính có thể hiểu đ ược, ngôn ngữ máy, theo thứ tự được giải mã và thực hiện. Lệnh ngôn ngữ máy và dạng thức lệnh khác nhau tuỳ thuộc vào máy tính, nhưng nói chung, chúng gồm các phần như sau: Phần lệnh: Biểu thị lệnh và phép toán Phần địa chỉ: Xác định địa chỉ và thanh ghi bộ nhớ của đối tượng cần xử lý. Hình 2-2-3 Phần câu lệnh Phần địa chỉ Ví dụ của cấu trúc lệnh 1 từ 1 từ 16 bits 16 bits 32 bits  Dạng thức của lệnh Trong thực tiễn, dạng thức lệnh khác nhau tuỳ theo máy tính. Có những lệnh có nhiều địa chỉ và tương ứng theo cấu trúc của phần địa chỉ, có bốn dạng thức địa chỉ, từ dạng thức không địa chỉ tới dạng thức ba địa chỉ. Dạng thức không địa chỉ Dạng thức không địa chỉ thực hiện những thao tác sử dụng một thanh ghi chuyên dụng gọi là con trỏ chồng (stack pointer). Hiện nay, dạng thức không địa chỉ không còn được sử dụng nữa. Con trỏ chồng là thanh ghi mà ở đó ghi nhớ địa chỉ được trả về (địa chỉ trả về) sau khi hoàn thành thực hiện. Hình 2-2-4 Dạng thức không địa chỉ Phần địa chỉ Dạng thức địa chỉ đơn
  45. 2.2 Kiến trúc bộ xử lý 38 Dạng thức địa chỉ đơn thực hiện những thao tác giữa nội dung của đơn vị bộ nhớ chính được xác định trong địa chỉ và thanh ghi tích luỹ dữ liệu (Hình 2-2-5). Thanh ghi tích luỹ lưu giữ giá trị những thao tác và những kết quả thao tác. Có những trường hợp những thanh ghi vạn năng cũng được sử dụng như thanh ghi tích luỹ. Hình 2-2-5 Dạng thức địa chỉ đơn Phần câu lệnh Phần địa chỉ Dạng thức hai địa chỉ Dạng thức hai địa chỉ xác định hai địa chỉ và dùng dữ liệu địa chỉ đã được xác định trong bộ nhớ chính. HÌnh 2-2-6 Dạng thức hai địa chỉ Phần câu lệnh Phần địa chỉ Phần địa chỉ Dạng thức ba địa chỉ Dạng thức ba địa chỉ xác định hai địa chỉ được sử dụng cho phép tính và địa chỉ còn lại để lưu kết quả. Hình 2-2-7 Phần câu lệnh Phần địa chỉ Phần địa chỉ Phần địa chỉ Dạng thức ba địa chỉ b. Đọc lệnh Lệnh nhận từ bộ nhớ chính và được lưu trong thanh ghi lệnh (IR). Độ dài của mỗi từ trong bộ nhớ chính là 16 bit. Giả sử một lệnh có 32 bit trong máy tính được sử dụng. Mỗi lệnh được lưu giữ trong hai từ. Vì thế, nội dung địa chỉ của bộ nhớ chính cần truy nhập được gửi tới bộ xử lý 2 lần. Trong thực tế, người ta xác định trước rằng trong một lệnh phần lệnh được lưu giữ ở địa chỉ chẵn còn phần địa chỉ được lưu ở địa chỉ lẻ. Hình 2-2-8 Nạp lệnh Địa chỉ chẵn tới Địa chỉ lẻ tới phần lệnh phần địa chỉ IR Bộ nhớ chính Lệnh 1 Địa chỉ 0 Được mở Phần lệnh Phần địa chỉ Lệnh 2 Địa chỉ 1 rộng qua 2 từ Lệnh 3 Địa chỉ 2 PC +1 Bộ điều khiển ghi / đọc mã địa chỉ Bộ giải mã Đơn vị điều khiển Địa chỉ 65535 Bộ xử lý c. Giải mã lệnh Nội dung phần lệnh của thanh ghi lệnh được chuyển tới một thiết bị được gọi là bộ giải mã. Bộ giải mã giải mã loại nhiệm vụ được chỉ ra bằng lệnh và gửi tín hiệu thực hiện các thao tác tới từng đơn vị. Hình 2-2-9 Bộ giải mã lệnh IR Bộ nhớ chính Lệnh 1 Địa chỉ 0 Phần lệnh 1 Phần lệnh 2 Lệnh 2 Địa chỉ 1 Lệnh 3 Địa chỉ 2 Bus dữ liệu PC Bộ giải mã lệnh +1 Các tín hiệu thực hiện lệnh Đơn vị điều khiển Địa chỉ 65535 Bộ vi xử lý Bộ giải mã địa chỉ Bộ điều khiển ghi / đọc
  46. 2.2 Kiến trúc bộ xử lý 39 Mặt khác, nội dung phần địa chỉ của thanh ghi lệnh được chuyển tới bus địa chỉ. Nội dung địa chỉ của bộ nhớ chính được xác định bởi bus địa chỉ tương ứng với dữ liệu cần xử lý. Phụ thuộc vào lệnh của phần lệnh, một tín hiệu đọc/ghi được gửi từ bộ điều khiển tới dữ liệu cần xử lý trong bộ nhớ chính. Hình 2-2-10 Phần địa chỉ và dữ liệu Chỉ rõ địa chỉ Bộ nhớ chính tuỳ thuộc vào xử lý IR của dữ liệu Lệnh 1 tùy thuộc Địa chỉ 0 Phần lệnh 1 Phần lệnh 2 Lệnh 2 vào xử lý Địa chỉ 1 Địa chỉ 2 PC Dữ liệu tùy thuộc vào Bộ giải Bus địa chỉ xử lý mã lệnh +1 Tính hiệu ghi / đọc Địa chỉ 65535 Bộ giải mã địa chỉ Bộ điều khiển ghi / đọc Đơn vị điều khiển Bộ vi xử lý Dấu hiệu ghi / đọc  Thực hiện lệnh Khi nội dung lệnh và địa chỉ của dữ liệu cần xử lý được nhận, thì lệnh được thực hiện. Sử dụng ví dụ về hợp ngữ trong đó có tương ứng một một với ngôn ngữ máy, điều khiển thực hiện lệnh và mỗi kiểu thanh ghi sẽ được giải thích dưới đây. a. Nhớ dữ liệu tìm được Xem như kết quả giải mã phần lệnh và phần địa chỉ sử dụng bộ giải mã lệnh, nếu lệnh được tìm thấy nói là: “Hãy tìm và chuyển tới bộ xử lý nội dung địa chỉ 100 của bộ nhớ chính”, thì sẽ cần một chỗ để lưu giữ nội dung tìm được. Do đó, thanh ghi vạn năng được đặt trong đơn vị số học của bộ xử lý để lưu giữ dữ liệu tìm được. Trong ví dụ này, giả thiết có năm thanh ghi và để thuận tiện, những thanh ghi này được gán số từ 0 đến 4. Thế thì bằng việc sử dụng từng thanh ghi vạn năng, chúng sẽ được biểu diễn là GR0, GR1, GR2, GR3 và GR4. Hình 2-2-11 Thanh ghi vạn năng IR Thanh ghi vạn năng GR 0 GR 1 PC GR 2 GR 3 GR 4 +1 Bộ giải Đơn vị số học Đơn vị mã lệnh điều khiển Bộ vi xử lý Hình 2-2-12 chỉ ra cơ chế theo đó nội dung tại địa chỉ 100 của bộ nhớ chính truyền qua bus dữ liệu để được lưu giữ trong thanh ghi vạn năng GR1. Hình 2-2-12 Lưu giữ trong thanh ghi vạn năng Chỉ rõ Thanh ghi IR địa chỉ Bộ nhớ chính vạn năng 100 Lệnh 1 Địa chỉ 0 Phần lệnh 1 Phần lệnh 2 Lệnh 2 Địa chỉ 1 GR 0 Lệnh 3 Địa chỉ 2 GR 1 Giải mã PC GR 2 lệnh đưa ra Địa chỉ 100 GR 3 Bộ giải mã GR 4 lệnh Bus địa chỉ Lệnh đưa ra +1 Địa chỉ 65535 mã địa chỉ Bộ giải mã Bộ điều khiển ghi / đọc Đơn vị số học Đơn vị điều khiển Bộ xử lý Chỉ rõ lệnh đọc ra
  47. 2.2 Kiến trúc bộ xử lý 40 b. Thực hiện lệnh Nếu, xem như kết quả giải mã của phần lệnh và phần địa chỉ của thanh ghi lệnh, lệnh được tìm thấy là “cộng nội dung địa chỉ 100 của bộ nhớ chính với nội dung GR1 và lưu giữ kết quả vào GR1”, thì nội dung được tìm thấy của địa chỉ 100 phải được cộng vào nội dung của GR1. Đơn vị thực hiện việc cộng và trừ những giá trị số gọi là ALU (đơn vị số học và logic). ALU có cơ chế số học sau đây: Cơ chế phép toán dấu phẩy cố định để thực hiện những phép tính của dữ liệu Cho tính toán nguyên khoa học và kỹ Cơ chế phép toán dấu phẩy động để thực hiện những phép tính dấu phẩy động thuật ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ Cho xử lý dữ liệu Cơ chế phép toán thập phân để thực hiện những phép tính những số thập thương mại ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ phân được mã theo hệ nhị phân đóng gói ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ (binary – coded decimals in packed format) Cần lưu ý rằng bên cạnh những phép toán số học như phép cộng và phép trừ, những thao tác của ALU còn thực hiện những phép tính logic như nhân logic, cộng logic và dịch chuyển (shift). Xem giải thích chi tiết về những phép toán logic, ở chương 1 và phần 2.2. c. Xử lý tiếp theo việc thực hiện lệnh Dựa vào lệnh và dữ liệu tìm được trong bộ nhớ chính, kết quả của tiến trình được thực hiện bằng việc sử dụng cơ chế phép toán và thanh ghi được chứa trong bộ xử lý được chuyển tới bộ nhớ chính thông qua bus dữ liệu. Sau đó địa chỉ chứa kết quả cần được lưu giữ được xác định bằng lệnh chương trình. Hình 2-2-13 Lưu giữ kết quả tiến trình Chỉ rõ địa chỉ Bộ nhớ chính IR nơi kết quả Lệnh 1 lưu giữ Địa chỉ 0 Phần lệnh 9 Phần lệnh 10 Lệnh 2 100 Địa chỉ 1 Giải mã Lệnh 9 Địa chỉ 8 Kết quả xử lý PC lệnh viết Lệnh 10 Địa chỉ 9 +1 Địa chỉ đặc biệt ALU Bộ giải Địa chỉ 65535 mã lệnh Bus địa chỉ Bộ giải mã địa chỉ Bộ điều khiển ghi / đọc Đơn vị số học Đơn vị điều khiển Bộ vi xử lý Chỉ rõ lệnh đang viết d. Luồng lệnh từ giải mã tới thực hiện và cấu trúc phần cứng Hình 2-2-14 mô tả cấu trúc phần cứng từ đọc lệnh tới giải mã và thực hiện. Hình 2-2-14 Cấu trúc phần cứng Bus dữ liệu IR Bộ nhớ chính Thanh ghi vạn năng Lệnh 1 Địa chỉ 0 GR 0 Phần lệnh Phần địa chỉ Lệnh 2 Địa chỉ 1 GR 1 Lệnh 3 Địa chỉ 2 GR 2 Bus dữ Liệu PC GR n Bus địa chỉ +1 ALU Bộ giải Địa chỉ 65535 mã lệnh Bộ giải mã địa chỉ Bộ điều khiển ghi / đọc Đơn vị số học Đơn vị điều khiển Bộ vi xử lý Bus điều khiển
  48. 2.2 Kiến trúc bộ xử lý 41 e. Những thanh ghi khác Cho tới điểm này chúng ta đã giải thích vai trò của thanh ghi lệnh, thanh ghi vạn năng, v.v nhưng bên cạnh các thanh ghi này, còn có những thanh ghi dưới đây: · Bộ đếm chương trình · Thanh tích luỹ · Thanh ghi chỉ số · Thanh ghi địa chỉ cơ sở · Từ trạng thái chương trình (PSW) · Thanh ghi cờ · Thanh ghi bù  Bộ đếm chương trình (PC) Trong hình 2-2-15, xét thủ tục trong đó lệnh “A” được lưu giữ trong địa chỉ 101 của bộ nhớ chính được nạp vào bộ xử lý, ta có thể thấy: 1. Bộ xử lý xác định địa chỉ 101 bằng bus địa chỉ. 2. Đơn vị điều khiển gửi tín hiệu đọc tới bộ nhớ chính 3. Bộ nhớ chính chuyển nội dung địa chỉ 101 tới bộ xử lý bằng việc sử dụng bus dữ liệu. Khi bắt đầu, bộ xử lý xác định địa chỉ 101, nhưng theo lệnh của ai? Thực tế có một đơn vị bộ nhớ giành riêng thực hiện loại lệnh này bên trong bộ xử lý. Nó được gọi là bộ đếm chương trình và gồm 16 bit. Bộ đếm chương trình cũng được gọi là thanh ghi địa chỉ lệnh, bộ đếm lệnh hoặc bộ đếm điều khiển tuần tự. Những thiết bị này, như bộ đếm chương trình, được đặt trong bộ xử lý và lưu giữ dữ liệu tạm thời nói chung được biết tới là các thanh ghi. Trong số những thanh ghi, có những thanh ghi chuyên biệt mà việc sử dụng nó đã được đặt trước, như bộ đếm chương trình và thanh ghi vạn năng mà việc sử dụng chúng do chương trình tự do thiết lập. 3. Truyền nội dung Hình 2-2-15 địa chỉ được xác định Đọc địa chỉ Bus dữ liệu Bộ nhớ chính 1 từ (16 bits) Địa chỉ 0 1 từ (16 bits) Địa chỉ 1 1 từ (16 bits) Địa chỉ 2 1. Xác định địa chỉ Bộ vi xử lý A Địa chỉ 101 B Địa chỉ 102 Bus địa chỉ 1 từ (16 bits) Đơn vị điều khiển Địa chỉ 65535 mã địa chỉ Bộ giải mã Bộ điều khiển ghi / đọc Truyền tín hiệu đọc Bus điều khiển Phần cứng máy tính được thiết lập sao cho, khi máy tính được bật lên, nội dung của bộ đếm chương trình được đọc ngay lập tức và địa chỉ của bộ nhớ chính cần được truy nhập được kiểm tra
  49. 2.2 Kiến trúc bộ xử lý 42 lại. Giống như vậy, mỗi lần tham chiếu tới bộ đếm chương trình, thì nội dung được lưu giữ sẽ được tự động tăng lên “+ (độ dài từ lệnh)." Tính đến vai trò của bộ đếm chương trình, và nếu chúng ta xét thủ tục trong bộ xử lý nạp lệnh “A” được lưu giữ trong địa chỉ 101 của bộ nhớ chính, có thể thấy: 1. Nội dung được lưu giữ trong bộ đếm chương trình được tham chiếu và địa chỉ của đơn vị bộ nhớ chính cần truy nhập được kiểm chứng. Sau khi được tham chiếu, "" được tự động cộng với nội dung của bộ đếm chương trình. 2. Bộ xử lý xác định địa chỉ 101 với bus địa chỉ. 3. Bộ điều khiển gửi tín hiệu đọc tới bộ nhớ chính. 4. Bộ nhớ chính truyền nội dung của địa chỉ 101 tới bộ xử lý bằng bus dữ liệu. Hình 2-2-16 Vai trò của bộ đếm 4. A được truyền chương trình Bộ vi xử lý 1. địa chỉ bị truy Bộ nhớ chính nhập được thực 1 từ (16 bits) Địa chỉ 0 hiện 1 từ (16 bits) Địa chỉ 1 2. địa chỉ 101 1 từ (16 bits) Địa chỉ 2 được xác định PC Địa chỉ 101 A Địa chỉ 101 B Địa chỉ 102 +0 Đơn vị điều khiển 1 từ (16 bits) Địa chỉ 65535 mã địa chỉ Bộ giải mã Bộ điều khiển ghi / đọc 3. Truyền tín hiệu đọc  Bộ tích luỹ Bộ tích luỹ là thanh ghi được sử dụng dành riêng để lưu giữ kết quả phép toán và những giá trị phép toán. Vì nó lưu giữ các kết quả tích luỹ, nó cũng được gọi là thiết bị tích luỹ. Có những trường hợp ở đó thanh ghi vạn năng được sử dụng thay thế cho bộ tích luỹ. Khi bộ tích luỹ được sử dụng, nó được gọi là chế độ tích luỹ, khi thanh ghi vạn năng được sử dụng, nó được gọi là chế độ thanh ghi vạn năng. Thanh ghi hoặc bộ nhớ chính Hình 2-2-17 Bộ tích lũy Mạch số học Bộ tích luỹ Dữ liệu Kết quả  Thanh ghi chỉ số Kết quả tích lũy Khi một địa chỉ trong bộ nhớ được xác định, hành động thay đổi địa chỉ của phần địa chỉ lệnh được gọi là sửa đổi địa chỉ. Thanh ghi được sử dụng để thực hiện việc thay đổi này là thanh ghi chỉ số. Bộ nhớ chính Địa chỉ 0 Hình 2-2-18 Phần lệnh Phần địa chỉ Địa chỉ 1 Thanh ghi chỉ số Địa chỉ được tính + Địa chỉ 65535 Thanh ghi chỉ số  Thanh ghi địa chỉ cơ sở Thanh ghi địa chỉ cơ sở là thanh ghi lưu giữ địa chỉ đầu của chương trình. Bộ nhớ chính Địa chỉ 0 Thanh ghi địa chỉ cơ sở Địa chỉ 1 100 Địa chỉ 100 Địa chỉ 101 Bộ vi xử lý Thực hiện dưới các chương trình Địa chỉ 65535
  50. 2.2 Kiến trúc bộ xử lý 43 Hình 2-2-19 Thanh ghi địa chỉ cơ sở  Thanh ghi cờ Thanh ghi cờ lưu giữ thông tin liên quan tới kết quả của phép toán (nó có thể dương hoặc âm hoặc 0), liên quan tới việc nhớ, tràn bộ nhớ, v.v Hình 2-2-20 Ví dụ về thanh ghi cờ Không được định nghĩa Bit diễn tả kết quả hoạt động Bít diễn tả kết quả hoạt động âm hoặc dương. Bít biểu thị khi xảy ra tràn bộ nhớ  PSW (Program Status Word) Từ trạng thái chương trình Bộ đếm chương trình, thanh ghi cờ và những thông tin khác được lưu trong PSW. Trong những trường hợp ở đó sự kiện ngắt chương trình (ngắt) xuất hiện trong bộ xử lý, chương trình thực hiện có thể được tiếp tục thực hiện lại bằng việc sử dụng thông tin PSW. Ngắt được giải thích trong chương 3 phần 3.1. Ngắt chương trình Tiếp tục chương trình Hình 2-2-21 PSW Bộ đếm chương trình Bộ đếm chương trình Thông tin ban đầu của hoặc thông tin về hoặc thanh ghi cờ sử bộ đếm chương trình thanh ghi cờ dụng ngắt chương trình và thanh ghi cờ PSW Lưu giữ Khôi phục lại  Thanh ghi bù Thanh ghi bù sinh ra những phần bù số nguyên để thực hiện phép toán trong mạch cộng. Hình 2-2-22 Bù 1 Thanh ghi bù Số nguyên Thanh ghi bù Bù 2 (3) Phương thức xác định địa chỉ Phần địa chỉ của lệnh xác định địa chỉ bộ nhớ chính và thanh ghi cần cho xử lý. Phương pháp xác định này được gọi là phương pháp xác định địa chỉ. Khi thực hiện lệnh, giá trị phần địa chỉ của lệnh không được sử dụng như địa chỉ để xử lí như nó xuất hiện; địa chỉ thực được xác định sau khi thực hiện tính toán giữa thanh ghi đặc biệt và địa chỉ. Hành động thu được địa chỉ thông qua tính toán được gọi là “sửa đổi địa chỉ” và địa chỉ thực thu được, được gọi là “địa chỉ hiệu dụng”. Những kiểu phương thức xác định địa chỉ này được liệt kê ở hình 2-2-23. Hình 2-2-23 Xác định ngay Những kiểu phương Xác định địa chỉ trực tiếp thức xác định địa chỉ Xác định địa chỉ chỉ số Xác định địa chỉ Xác định địa chỉ thanh ghi Xác định địa chỉ cơ sở Xác định địa chỉ tương đối Xác định địa chỉ gián tiếp
  51. 2.2 Kiến trúc bộ xử lý 44  Xác định ngay Trong xác định ngay, bản thân dữ liệu được chứa trong phần địa chỉ. Vì không cần thiết truy nhập vào địa chỉ bộ nhớ chính, nó có thể được thực hiện ngay lập tức. Phần địa chỉ Hình 2-2-24 Xác định ngay Lệnh Phần lệnh Dữ liệu  Xác định địa chỉ trực tiếp Trong xác định địa chỉ trực tiếp, địa chỉ của đối tượng dữ liệu cần được xử lý được chứa trong phần địa chỉ. Đơn vị bộ nhớ chính Phần địa chỉ Địa chỉ Địa chỉ 0 Hình 2-2-25 Lệnh Phần lệnh 100 Địa chỉ 1 Xác định địa Địa chỉ 2 chỉ trực tiếp Địa chỉ 3 Địa chỉ 100 Đối tượng dữ liệu cần được xử lý  Xác định địa chỉ chỉ số Trong xác định địa chỉ chỉ số, phần địa chỉ được chia thành phần chỉ rõ số của thanh ghi chỉ số và phần hằng số, và địa chỉ hiệu dụng là kết quả của phép cộng sau: (Nội dung của thanh ghi được xác định bằng số thanh ghi) + (hằng số địa chỉ) Số thanh ghi Hình 2-2-26 Phần địa chỉ Đơn vị bộ nhớ chính Địa chỉ Xác định Lệnh Phần lệnh 2 100 Địa chỉ 0 địa chỉ chỉ số Địa chỉ 1 Địa chỉ 2 Địa chỉ 3 Số thanh ghi Địa chỉ 150 0 1 50 Đối tượng dữ liệu 2 + cần được xử lý 3 4  Xác định địa chỉ thanh ghi Trong xác định địa chỉ thanh ghi, số hiệu thanh ghi được lưu giữ trong phần địa chỉ và địa chỉ được lưu giữ trong thanh ghi này. Số thanh ghi Phần địa chỉ Đơn vị bộ nhớ chính Địa chỉ Hình 2-2-27 Lệnh Phần lệnh 2 Địa chỉ 0 Xác định Địa chỉ 1 Địa chỉ 2 Địa chỉ 3 Số thanh ghi Địa chỉ 150 0 Địa chỉ 151 1 2 150 3 4
  52. 2.2 Kiến trúc bộ xử lý 45 địa chỉ thanh ghi  Xác định địa chỉ cơ sở Trong xác định địa chỉ cơ sở, địa chỉ bắt đầu chương trình được lưu giữ trong thanh ghi cơ sở. Kết quả của phép cộng địa chỉ được chứa trong thanh ghi cơ sở này và hằng số địa chỉ trở thành địa chỉ hiệu dụng. Hình 2-2-28 Số thanh ghi Xác định Phần địa chỉ Đơn vị bộ nhớ chính địa chỉ cơ sở Địa chỉ Lệnh Phần lệnh 2 150 Địa chỉ 0 Địa chỉ 1 Địa chỉ 2 Địa chỉ 3 Địa chỉ 100 Địa chỉ 101 Số thanh ghi Địa chỉ 250 Chương trình 0 1 2 100 + 3 4 Trong ví dụ này, chương trình bắt đầu địa chỉ được lưu giữ trong thanh ghi số 2, thanh ghi này sử dụng như một thanh ghi cơ sở.  Xác định địa chỉ tương đối Trong xác định địa chỉ tương đối, kết quả phép cộng địa chỉ của lệnh đang thực hiện ở thời gian hiện tại (giá trị của bộ đếm chương trình) và địa chỉ của phần địa chỉ trở thành địa chỉ hiệu dụng. Hình 2-2-29 Đơn vị bộ nhớ chính Địa chỉ Xác định Phần địa chỉ Địa chỉ 0 địa chỉ tương đối. Lệnh Phần lệnh 50 Địa chỉ 1 Địa chỉ 2 Địa chỉ 3 PC 100 Địa chỉ 99 + Địa chỉ 100 Lệnh Cộng thêm 1 sau khi lệnh của địa chỉ 99 đọc Địa chỉ 150 và trở thành 100 Dữ liệu tùy thuộc xử lý  Xác định địa chỉ gián tiếp Trong xác định địa chỉ gián tiếp, địa chỉ của đối tượng dữ liệu cần được xử lý chứa trong địa chỉ xác định trong phần địa chỉ (Hình 2-2-30). Có những trường hợp ở đó xác định địa chỉ gián tiếp được thực hiện trên hai hoặc ba mức. Hình 2-2-30 Đơn vị bộ nhớ chính Xác định Địa chỉ Phần địa chỉ Địa chỉ 0 địa chỉ gián tiếp Lệnh Phần lệnh 100 Địa chỉ 1 Địa chỉ 2 Địa chỉ 3 Địa chỉ 100 Địa chỉ 101 150 Địa chỉ 150
  53. 2.2 Kiến trúc bộ xử lý 46 (4) Tập lệnh Khi máy tính thực hiện một nhiệm vụ do người sử dụng yêu cầu, phần cứng thực hiện tiến trình dùng một số lệnh cần thiết trong nhóm lệnh đã được xây dựng sẵn trong máy tính. Tập các lệnh được định nghĩa như giao diện giữa phần mềm và phần cứng của máy tính và phụ thuộc vào máy tính, những kiểu và số lượng của những lệnh là khác nhau. Những nhóm lệnh này (tổng số lệnh) được gọi là tập lệnh. Do đó, những phần mềm máy tính với những tập lệnh xác định hầu như về cơ bản là tương thích. (5) Điều khiển thực hiện lệnh Thực hiện một chương trình là việc lặp lại nhiều lần các thao tác đọc lệnh từ bộ nhớ chính, giải mã lệnh và thực hiện những lệnh này bởi đơn vị điều khiển. Nếu chúng ta sắp xếp các thao tác được thực hiện bởi bộ xử lý trong tiến trình thực hiện chương trình, chúng ta có thể chia thành: · Đọc lệnh · Thực hiện lệnh  Chu kỳ lệnh và chu kỳ thực hiện Một loạt những thao tác bao gồm đọc lệnh được nhớ trong bộ nhớ chính, ghi nó vào thanh ghi lệnh nằm trong bộ xử lý và giải mã lệnh bằng bộ giải mã lệnh, được gọi là chu kỳ lệnh. Giống như vậy một loạt các thao tác bao gồm việc đọc đối tượng dữ liệu cần xử lý từ bộ nhớ chính, ghi và thực hiện lệnh được gọi là chu kỳ thực hiện. a. Chu kỳ lệnh Chu kỳ lệnh bao gồm hai thao tác tuần tự sau: Tương ứng với giá trị của bộ đếm chương trình, lệnh cần thực hiện được đọc ra từ địa chỉ của bộ nhớ chính nơi nó được lưu giữ, rồi được lưu giữ trong thanh ghi lệnh. Phần lệnh của thanh ghi lệnh được giải mã nhờ sử dụng bộ giải mã lệnh, và địa chỉ của đối tượng cần xử lý được tính toán dựa trên phần địa chỉ của thanh ghi lệnh. Chu kỳ lệnh cũng được gọi là chu kỳ I, và nó cũng được gọi là chu kỳ F (fetch). b. Chu kỳ thực hiện Chu kỳ thực hiện bao gồm hai thao tác tuần tự sau: Nếu lệnh được giải mã là lệnh đọc, đối tượng dữ liệu cần xử lý được đọc ra từ địa chỉ xác định của bộ nhớ chính; nếu lệnh ghi, thì dữ liệu được ghi vào địa chỉ xác định của bộ nhớ chính. Trong trường hợp lệnh đọc, dữ liệu đọc ra được sử dụng để thực hiện tiến trình thao tác. Chu kỳ thực hiện cũng được gọi là chu kỳ E (Execution) c. Những thao tác của chu kỳ lệnh và chu kỳ thực hiện Hình 2-2-31 mô tả hình ảnh của thao tác của chu kỳ lệnh và chu kỳ thực hiện một cách rất rõ ràng như sau:
  54. 2.2 Kiến trúc bộ xử lý 47 Hình 2-2-31 Luồng thao tác của chu kỳ lệnh và chu kỳ thực hiện Bắt đầu Không tồn tại Lệnh được thực hiện ? Tồn tại Theo giá trị của bộ đếm chương trình, lệnh được khôi phục từ địa chỉ xác định của bộ nhớ chính Lặp lại Đọc lệnh được lưu giữ trong phần lệnh và phần địa chỉ của thanh ghi lệnh Chu kỳ lệnh Phần lệnh của thanh ghi lệnh được mã hóa Địa chỉ của dữ liệu được xử lý được tính toán dựa trên cơ sở phần lệnh của thanh ghi lệnh Nạp lệnh Kiểu lệnh Viết lệnh được giải mã Dữ liệu được tải từ địa Dữ liệu được viết vào chỉ xác định địa chỉ xác định Xử lý hoạt động của dữ liệu nạp vào Chu kỳ thực hiện Cập nhật bộ đếm chương trình Kết thúc Bộ xử lý đọc ra những lệnh chương trình được lưu giữ trong bộ nhớ chính và thực hiện chương trình bằng việc thực hiện nhiều lần chu kỳ lệnh và chu kỳ thực hiện. (6) Điều khiển logic nối dây cứng và điều khiển vi chương trình Tập lệnh trong máy tính được thực hiện bằng việc dùng các mạch logic bao gồm một số phần tử logic. Nói cách khác, các mạch logic là kết quả của việc nối dây cứng giữa các phần tử logic với nhau; bởi lí do đó chúng được gọi là hệ thống điều khiển logic nối dây cứng hoặc hệ thống điều khiển logic nối dây. Vì những lệnh khác nhau được thực hiện bằng phần cứng, chúng có lợi thế là tốc độ thao tác nhanh. Đối lập với hệ thống này, có hệ thống thực hiện lệnh bằng vi chương trình. Với sự cải thiện hiệu năng máy tính, những lệnh với những chức năng phức tạp hơn trở nên khả thi. Mức chức năng của lệnh càng cao, thì thủ tục điều khiển càng trở nên phức tạp. Do đó, thay vì thực hiện những lệnh với phần cứng nối dây phức tạp, phương pháp thực hiện với việc dùng vi chương trình dễ dàng thay đổi đã được thiết kế ra. Phương pháp này được gọi là hệ thống điều khiển vi chương trình. So sánh với hệ thống điều khiển logic nối dây cứng, tốc độ thao tác của hệ thống điều khiển vi chương trình chậm, nhưng phần cứng đơn giản hơn và dễ hiệu chỉnh (gỡ rối). Vi chương trình, là một chuỗi mẫu xác định rằng cổng logic là bật hoặc tắt, được lưu giữ trong bộ nhớ đặc biệt gọi là bộ nhớ điều khiển trong bộ điều khiển. Những lệnh được tuân theo bằng việc đọc ra tuần tự vi chương trình. 2.2.2 Nâng cao tốc độ xử lý trong bộ xử lý Có hai kiểu kiến trúc xét theo cách thực hiện lệnh. Chúng là Kiến trúc tuần tự Kiến trúc tích luỹ Tên khác cho điều khiển bắt lệnh trước (pre-fetched) là đường ống (pipeline). RISC là một ví dụ của bộ xử lý sử dụng xử lý đường ống.