Bài giảng Các vấn đề cơ sở của khoa học máy tính - Chương 3 Tổ chức máy tính

Nhập/Xuất • Các thiết bị ký tự sẽ sinh ra ngắt cho mỗi ký tự được truyền đi, các thiết bị khối sẽ sinh ra ngắt chỉ khi toàn bộ khối đó được truyền đi. • Hầu hết các máy tính ngày nay đều có bộ điều khiển truy xuất bộ nhớ trực tiếp (direct memory access - DMA) để dùng với thiết bị khối. • Bộ điều khiển DMA dùng để truy xuất trực tiếp bộ nhớ và chia sẻ công việc truy xuất bộ nhớ với CPU. DMA truyền dữ liệu trực tiếp giữa bộ đệm của bộ điều khiển nhập/xuất với bộ nhớ chính, nó không yêu cầu bất cứ phục vụ nào từ CPU.

pdf42 trang | Chia sẻ: truongthinh92 | Lượt xem: 1571 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Bài giảng Các vấn đề cơ sở của khoa học máy tính - Chương 3 Tổ chức máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 3: TỔ CHỨC MÁY TÍNH Nội Dung 1. Kiến trúc von Neumann. 2. Biểu diễn dữ liệu. 3. Chiều dài từ của máy tính. 4. Dạng dữ liệu nguyên. 5. Dạng dữ liệu thực. 6. Dạng ký tự. 7. CPU / ALU. 8. Tập lệnh. 9. Bộ nhớ. 10. Nhập / Xuất . 2 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Kiến Trúc Von Neumann • Hầu hết các máy tính ngày nay hoạt động dựa vào “kiến trúc von Neumann”. Ý tưởng chính của kiến trúc này là chương trình và dữ liệu được lưu trữ trong bộ nhớ máy tính. John von Neumann đã đưa ra ý tưởng này vào năm 1945. • Kiến trúc von Neumann cũng được gọi là “máy tính có chương trình được lưu trữ - stored program computer”. Các bước (lệnh) của chương trình được lưu trữ trong bộ nhớ máy tính và chu kỳ thao tác của máy sẽ lấy bước kế tiếp (lệnh để thực thi) từ bộ nhớ, hoàn thành thao tác này và lấy bước kế tiếp. 3 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Kiến Trúc Von Neumann Quá trình này được lặp lại cho đến khi máy tính gặp lệnh “dừng - halt”. • Có 3 thành phần chủ yếu trong máy tính von Neumann. Bộ nhớ là nơi chứa chương trình và dữ liệu. Đơn vị xử lý trung tâm (central processing unit - CPU) truy xuất chương trình và dữ liệu trong bộ nhớ và thực thi chúng. Đơn vị nhập/xuất truy xuất các thiết bị nhập và xuất dữ liệu. 4 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Biểu Diễn Dữ Liệu • Chúng ta thường sử dụng các số được biểu diễn trong “cơ số 10 - base 10” – hệ thập phân. Có lẻ cơ số này dựa trên ý tưởng là chúng ta có 10 ngón tay. • Ví dụ: 427 = 4 * 102 + 2 * 101 + 7 * 100 • Chúng ta nói rằng số được biểu diễn trong cơ số 10 bởi vì các ký số của số đó được nhân với luỹ thừa của 10. • Máy tính sử dụng cơ số 2, bởi vì điều này sẽ làm cho dễ dàng trong việc xây dựng phần cứng khi máy tính chỉ dựa trên hai trạng thái on và off (1 và 0). 5 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Biểu Diễn Dữ Liệu • Cơ số 2 cũng được gọi là “hệ nhị phân - binary number system”. Các ký số (bit) của một số trong hệ nhị phân được nhân với luỹ thừa của 2. Ví dụ, tính giá trị thập phân (cơ số 10) của số nhị phân 10011010: 10011010 = 27 + 24 + 23 + 21 = 154 • Phép cộng trên hệ nhị phân: 0 + 0 = 0 0 + 1 = 1 1 + 1 = 10 (nhớ 1 - bit bên trái nhất) • Ví dụ, cộng hai số nhị phân 1100 và 0110: 1100 0110 10010 6 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Chiều Dài Từ Của Máy Tính • Mỗi máy tính khác nhau có thể truy xuất cùng lúc số bit khác nhau. Ví dụ, một máy tính có thể truy xuất 8 bit cùng lúc được gọi là “máy tính 8 bit”. Nói cách khác, máy tính đó có “chiều dài từ - word size” là 8 bit. • Máy tính PC đầu tiên của IBM sử dụng bộ xử lý 8088 của Intel có bus dữ liệu là 8 bit, nghĩa là nó có thể đọc/ghi 8 bit dữ liệu cùng lúc với thiết bị ngoại vi. • Ngày nay, hầu hết các máy tính có chiều dài từ là 32 hay 64 bit. 7 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Định Dạng Số Nguyên • Cho đến bây giờ, chúng ta chỉ thảo luận các số nguyên dương. Máy tính cũng cần thao tác với các số nguyên có dấu và cả số thực. • Để lưu trữ số có dấu, bit bên trái nhất (msb) được sử dụng làm bit dấu. Bit này có giá trị 0 nếu là số dương và 1 nếu là số âm. • Số nguyên âm được biểu diễn bằng cách lấy bù 2 (two’s complement) của số dương tương ứng. Để tính bù 2 của một số, đảo ngược các bit của số đó và cộng thêm 1. Ví dụ, bù 2 của 6 (00000110) trên máy tính 8 bit: 8 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Định Dạng Số Nguyên 11111001 +00000001 11111010 (−6) • Chúng ta có thể kiểm tra lại giá trị trên bằng cách cộng với 6, kết quả sẽ là 0: 11111010 (−6) +00000110 (+6) 100000000 (0, bỏ bit bên trái nhất) 9 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Định Dạng Số Thực • Biểu diễn số thực khó hơn số nguyên. Số thực gồm phần định trị (mantissa) và phần số mũ (exponent). • Phần định trị và phần số mũ có thể dương hoặc âm. Phần định trị lớn sẽ cho độ chính xác lớn, phần số mũ lớn sẽ cho miền trị lớn. • Trước đây vào thập niên 1980, các nhà sản xuất máy tính khác nhau đã sử dụng cách biểu diễn dữ liệu khác nhau. Vì vậy, chương trình và dữ liệu không tương thích trên các máy tính khác nhau. • Viện IEEE (Institute of Electrical and Electronic Engineers) đã đưa ra chuẩn để 10 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Định Dạng Số Thực biểu diễn số dấu chấm động dạng nhị phân sử dụng 32 và 64 bit. • Số dấu chấm động 32 bit có dạng như sau: dấu số mũ định trị SEEEEEEEEmmmmmmmmmmmmmmmmmmmmmmm • Bit msb là bit dấu, 8 bit kế tiếp là số mũ của cơ số 2 và 23 bit còn lại là phần định trị. • Dấu của số mũ được kết hợp vào giá trị biểu diễn của nó. Vì lý do kỹ thuật, chuẩn IEEE không sử dụng bù 2 để biểu diễn số mũ âm mà sử dụng phương pháp khác. • Ví dụ để biểu diễn 8.5, đầu tiên là chuyển 11 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Định Dạng Số Thực 8.5 về dạng nhị phân: 1000.1 • Theo chuẩn IEEE, chỉ có một ký số (bit) nằm bên trái dấu chấm. Do vậy, giá trị trên được viết lại: 1.0001 * 23 • Từ đây, chúng ta nhận ra số mũ của cơ số 2 là 3 và phần định trị là 0001. • Sự đặc tả chuẩn IEEE 32 bit sử dụng “độ lệch – bias” 127 ở phần số mũ (cách làm này không cần bit dấu riêng cho số mũ và làm cho việc so sánh các số mũ dễ dàng hơn là sử dụng bù 2, cũng làm cho dễ dàng thấy 12 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Định Dạng Số Thực được giá trị thật của nó). Trong ví dụ của chúng ta, phần số mũ có giá trị nhị phân của 127 + 3 = 130 (10000010). • Từ các kết quả trên, biểu diễn nhị phân của 8.5 sẽ là: 01000001000010000000000000000000 • Tính toán với số thực đòi hỏi máy tính phải làm việc nhiều hơn là với số nguyên. Vì vậy, một số máy tính được tích hợp bộ xử lý dấu chấm động (floating-point processor) để tăng tốc độ tính toán. • Bài tập tại lớp: a) Hãy cho biết vì sao giá trị 13 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Định Dạng Số Thực của độ lệch là 127 mà không phải là giá trị khác? b) Nếu giá trị của độ lệch là 127 thì miền trị của số mũ là bao nhiêu? 14 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Định Dạng Ký Tự • Dữ liệu dùng cho chương trình ở dạng ký tự nhiều hơn dạng số. Tên, địa chỉ, tựa đề, được biểu diễn bằng chuỗi ký tự. • Các ký tự được ánh xạ hay mã hoá thành các số nguyên. Có nhiều kiểu mã hoá như BCD (binary coded decimal), EBCDIC (extended BCD interchange coded). • Bộ mã ASCII (American Standard Code for Information Interchange) được đưa ra vào thập niên 1960 và trở thành bộ mã được ưa chuộng nhất. Ngày nay, Unicode được sử dụng phổ biến hơn bởi vì nó tương thích với bộ mã ASCII và cho phép mã hoá nhiều chữ 15 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Định Dạng Ký Tự cái phức tạp hơn tiếng Nga, Trung Quốc và những ngôn ngữ khác. Chúng ta sẽ sử dụng bộ mã ASCII để minh hoạ cho ý tưởng mã hoá ký tự, khi nó vẫn còn được sử dụng rộng rãi và mô tả đơn giản hơn là dùng Unicode. • Trong bộ mã ASCII, mỗi ký tự được gán một giá trị nguyên 7 bit. Cho ví dụ, ‘A’ = 65 (1000001), ‘B’ = 66 (1000010), ‘C’ = 67 (1000011), Bit thứ 8 trong byte ký tự được dùng như bit chẵn-lẻ (parity) để kiểm tra lỗi khi truyền thông tin hoặc mã hoá thành các ký tự dùng trong các phép toán, các ký tự có 16 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Định Dạng Ký Tự dấu hoặc các ký tự trang trí. • Một số ký tự điều khiển cũng được định nghĩa trong bộ mã ASCII. Các ký tự điều khiển không hiển thị ra màn hình nhưng được sử dụng để điều khiển thiết bị. Cho ví dụ, ‘line feed - LF’ = 10 (0001010), ‘tab’ = 11 (0001011), ‘backspace’ = 8 (0001000), • Để xuất chuỗi “Dog” và xuống dòng, một dãy các byte sau được gởi đi: 01000100 01101111 01100111 00001010 D o g LF • Tương tự, khi nhập dữ liệu từ bàn phím, bàn 17 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Định Dạng Ký Tự phím sẽ gởi một dãy các giá trị nguyên tương ứng với các ký tự đã nhập. • Làm thế nào để một chương trình biết dãy bit nào là của số nguyên, ký tự hay dấu chấm động. Câu trả lời là chương trình sẽ dựa vào kiểu dữ liệu của các đối tượng phần mềm trong chương trình. 18 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng CPU/ALU • CPU (Central Processing Unit) là thành phần mà người ta nghĩ đến đầu tiên khi mô tả về máy tính. Một chu kỳ trong máy tính von Neumann là: - Nạp một lệnh từ bộ nhớ vào CPU. - Giải mã và thực thi lệnh đó. • Thực thi lệnh bao gồm thực hiện các phép tính số học hay luận lý và cũng là nạp hay lưu trữ dữ liệu trong bộ nhớ. • Khi thực thi lệnh xong, máy tính sẽ lấy lệnh tiếp theo từ bộ nhớ và thực thi lệnh đó. Quá trình trên tiếp tục cho đến khi CPU gặp lệnh dừng. 19 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng CPU/ALU • CPU gồm đơn vị điều khiển (control unit - CU), đơn vị số học và luận lý (arithmetic and logic unit - ALU) và các thanh ghi. • Đơn vị điều khiển chịu trách nhiệm duy trì đều đặn chu kỳ lấy và thực thi lệnh, ALU thực thi các phép toán số học, so sánh (>, <, =, ) và luận lý (AND, OR, NOT, ). • Cả hai đơn vị điều khiển và ALU có các ô nhớ đặc biệt và tốc độ thực thi rất cao được gọi là các thanh ghi (register). • Một số thanh ghi có công dụng đặc biệt và một số có công dụng chung. • Các thanh ghi có công dụng đặc biệt là bộ 20 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng CPU/ALU đếm chương trình (program counter - PC) và thanh ghi lệnh (instruction register – IR). • Thanh ghi PC lưu giữ địa chỉ của lệnh thực thi kế tiếp. Khi đơn vị điều khiển bắt đầu chu kỳ lấy và thực thi lệnh, đơn vị điều khiển chuyển lệnh có địa chỉ được lưu trong PC đến thanh ghi IR. Khi này, đơn vị điều khiển tự động tăng thanh ghi PC để nó trỏ đến lệnh kế tiếp. • Đơn vị điều khiển giải mã lệnh trong IR và thực thi. Khi thực thi xong, đơn vị điều khiển lấy lệnh mà PC đang trỏ đến và tiếp tục chu kỳ mới. 21 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng CPU/ALU • Các thanh ghi có công dụng chung được sử dụng để lưu giữ dữ liệu cho CPU truy xuất. Truy xuất dữ liệu trong thanh ghi nhanh hơn truy xuất trong bộ nhớ. • Những máy tính khác nhau có số thanh ghi khác nhau, kích thước thanh ghi bằng với chiều dài từ của máy tính (16, 32, 64 bit, ) • Trong kiến trúc Intel x86, có 4 thanh ghi 32 bit có công dụng chung (EAX, EBX, ECX và EDX) và 4 thanh ghi 32 bit dùng để lưu địa chỉ stack và chuỗi (ESP, EBP, ESI và EDI). 22 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Tập Lệnh • Định nghĩa cốt lõi của một kiến trúc máy tính là là tập lệnh máy. Đó là danh sách các chỉ thị mà phần cứng máy tính có thể thực thi. • Các lệnh của máy tính bao gồm: - Nạp dữ liệu từ bộ nhớ vào thanh ghi. - Lưu dữ liệu từ thanh ghi vào bộ nhớ. - Nhảy đến vị trí nào đó trong chương trình. - Dịch các bit của một giá trị sang trái hay sang phải. - So sánh 2 giá trị. - Cộng giá trị của hai thanh ghi. - Thực hiện các phép toán luận lý, 23 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Tập Lệnh • Phần lớn, các lệnh của máy chỉ thực hiện các thao tác cơ bản. • Hợp ngữ (assembly language) là ngôn ngữ lập trình cấp thấp dạng gợi nhớ (mnemonic) để viết chương trình thay vì bằng ngôn ngữ máy. • Các tập lệnh khác nhau cho chúng ta thấy tại sao một chương trình chỉ thực thi được trên một số máy tính. • Ngày nay, hầu hết các chương trình được viết bằng ngôn ngữ cấp cao hơn hợp ngữ. • Khi một chương trình viết bằng ngôn ngữ 24 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Tập Lệnh lập trình cấp cao (Java, C, Python, ), bộ xử lý ngôn ngữ (language processor - trình biên dịch hay thông dịch) sẽ chuyển các lệnh của chương trình thành các lệnh mã máy để thực thi. • Nếu chúng ta muốn thực thi chương trình đó trên máy tính khác với tập lệnh khác, thường thì chỉ cần thay đổi bộ xử lý ngôn ngữ thích hợp với máy tính mới, mã nguồn của chương trình không thay đổi. • Lệnh máy gồm một dãy các bit 0 và 1. Một số bit được dùng làm mã lệnh (op-code). Ví dụ, một số mã lệnh như ADD, Jump, Compare và 25 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Tập Lệnh AND. Một số bit khác dùng làm toán hạng (operand). Toán hạng có thể là thanh ghi, biến bộ nhớ hay hằng. • Ví dụ lệnh máy của Intel x86 sau đây là lệnh ADD (cộng) để thực hiện thao tác “Cộng 40 vào thanh ghi DX”: 00000001 11000010 00000000 00101000 ADD DX 40 • Byte đầu tiên là mã lệnh của lệnh ADD. Byte thứ 2 cho biết toán hạng đích là thanh ghi DX, hai byte còn lại là toán hạng nguồn có trị là 40. 26 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Tập Lệnh • Một ví dụ khác là lệnh JMP (Jump – nhảy) để thực hiện thao tác “Thiết lập bộ đếm chương trình trỏ/nhảy đến địa chỉ 20.476”: 11101001 11111100 01001111 JMP byte thấp byte cao • Byte đầu tiên là mã lệnh của lệnh JMP. Byte thứ 2 và 3 lần lượt là byte thấp và byte cao của địa chỉ muốn nhảy đến. • Sau đây là một số lệnh máy tiêu biểu của tập lệnh máy Intel x86: 27 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Tập Lệnh MOV Gán toán hạng nguồn cho đích. ADD Cộng hai toán hạng. SUB Trừ hai toán hạng. DIV Chia thanh ghi cho toán hạng đích. IMUL Nhân số có dấu. DEC Giảm toán hạng đích 1 đơn vị. INC Tăng toán hạng đích 1 đơn vị. AND Lấy VÀ hai toán hạng. OR Lấy HOẶC hai toán hạng. XOR Lấy XOR hai toán hạng. NOT Lấy NOT toán hạng đích. IN Đọc dữ liệu từ cổng. 28 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Tập Lệnh OUT Xuất dữ liệu ra cổng. JMP Nhảy không điều kiện. JG Nhảy nếu lớn hơn. JZ Nhảy nếu bằng 0. CALL Gọi chương trình con. RET Trả về của chương trình con. CLC Xoá cờ nhớ. CMP So sánh hai toán hạng. HLT Dừng CPU. INT Thực hiện ngắt. LOOP Lặp vòng. NEG Chuyển thành số âm (bù 2). 29 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Tập Lệnh OUT Xuất dữ liệu ra cổng. JMP Nhảy không điều kiện. JG Nhảy nếu lớn hơn. JZ Nhảy nếu bằng 0. CALL Gọi chương trình con. RET Trả về của chương trình con. CLC Xoá cờ nhớ. CMP So sánh hai toán hạng. HLT Dừng CPU. INT Thực hiện ngắt. LOOP Lặp vòng. NEG Chuyển thành số âm. 30 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Tập Lệnh POP Lấy dữ liệu từ stack. PUSH Nạp dữ liệu vào stack. ROL Quay các bit sang trái. ROR Quay các bit sang phải. SHL Dịch các bit sang trái. SHR Dịch các bit sang phải. XCHG Hoán đổi nội dung hai toán hạng. 31 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Tập Lệnh POP Lấy dữ liệu từ stack. PUSH Nạp dữ liệu vào stack. ROL Quay các bit sang trái. ROR Quay các bit sang phải. SHL Dịch các bit sang trái. SHR Dịch các bit sang phải. XCHG Hoán đổi nội dung hai toán hạng. 32 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Bộ Nhớ • Bộ nhớ (memory) máy tính được tổ chức thành các ô (cell), mỗi ô được đánh địa chỉ riêng biệt. • Trước đây, các nhà sản xuất máy tính không thống nhất với nhau về kích thước của một đơn vị bộ nhớ. Các máy tính khác nhau sử dụng kích thước ô nhớ khác nhau. • Ngày nay, byte được dùng làm đơn vị của bộ nhớ máy tính. Hầu hết các máy tính, bất chấp chiều dài từ của nó là bao nhiêu, mỗi byte bộ nhớ có địa chỉ duy nhất và có thể đọc/ghi giá trị tại đó. 33 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Bộ Nhớ • Như chúng ta đã biết, đơn vị đo lường bộ nhớ như sau: - 1 kilobyte (KB) = 1.024 byte (210). - 1 megabyte (MB) = 1.048.576 byte (220). - 1 gigabyte (GB) = 1.037.741.824 byte (230). - 1 terabyte (TB) = 1.099.511.627.776 byte (240) - 1 petabyte (PB) = 1.125.899.906.842.624 (250) • Bộ nhớ được sử dụng để lưu giữ các lệnh của chương trình và dữ liệu. Các thao tác cơ bản với bộ nhớ là lưu/ghi và lấy/đọc/nạp. • Có ít nhất hai thanh ghi kết hợp với mạch điều khiển bộ nhớ để làm cho dễ dàng đọc và ghi 34 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Bộ Nhớ dữ liệu. Đó là thanh ghi MAR (thanh ghi địa chỉ - memory address register) và MDR (thanh ghi dữ liệu - memory data register). • Khi ghi dữ liệu, đầu tiên CPU chuyển giá trị được ghi đến MDR và địa chỉ để ghi đến MAR. Ở chu kỳ truy xuất bộ nhớ tiếp theo, giá trị trong MDR sẽ được chép vào địa chỉ trong MAR. • Khi đọc dữ liệu, đầu tiên CPU chứa địa chỉ để đọc vào MAR. Ở chu kỳ truy xuất bộ nhớ tiếp theo, giá trị tại địa chỉ trong MAR được chép vào MDR. Từ thanh ghi MDR, giá trị có thể được chuyển đến các thanh ghi khác 35 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Bộ Nhớ hoặc nơi nào đó. • Bộ nhớ chính của máy tính được biết đến là bộ nhớ RAM (bộ nhớ truy cập ngẫu nhiên - random access memory). Chúng ta có thể truy xuất bất kỳ địa chỉ nào của bộ nhớ thì thời gian truy xuất là như nhau. • Ngoài bộ nhớ chính, các nhà thiết kế máy tính cũng tích hợp vào CPU một bộ nhớ có dung lượng nhỏ, tốc độ truy cập nhanh được gọi là bộ nhớ cache (bộ nhớ đệm). • Bộ nhớ cache lưu giữ nội dung của dữ liệu đã được truy cập để sau này có thể dùng lại, nhằm làm tăng tốc độ của máy tính. 36 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Nhập/Xuất • Hầu hết dữ liệu sử dụng cho chương trình không nằm trên máy tính. Khi dữ liệu được xử lý xong, chúng ta thường muốn chúng hiển thị ra màn hình hay xuất ra máy in. • Có nhiều thiết bị nhập/xuất khác nhau: - Giao tiếp với người: bàn phím, chuột, màn hình. - Máy tính trực tiếp sử dụng: đĩa, thiết bị kết nối mạng. • Các thiết bị nhập/xuất có tốc độ rất khác nhau, nhưng tất cả đều chậm hơn CPU và bộ nhớ chính. 37 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Nhập/Xuất • Trong những máy tính trước đây, CPU sẽ đợi để nhập ký tự. Một lệnh máy giao tiếp với bàn phím để sẵn sàng nhận ký tự và lệnh máy kế tiếp sẽ kiểm tra xem ký tự đã nhập chưa. Nếu ký tự chưa nhập, chương trình sẽ lặp vòng để kiểm tra (polling). Phương pháp này được gọi là “programmed I/O with polling” hay “busy waiting”. • Các máy tính ngày nay sử dụng hệ thống ngắt (interrupt system) để tránh trường hợp phải chờ và hệ điều hành quản lý tất cả nhập/xuất. • Mỗi thiết bị nhâp/xuất được kết nối với máy 38 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Nhập/Xuất tính thông qua “bộ điều khiển nhập/xuất - I/O controller”. Bộ điều khiển nhập/xuất có gắn bộ nhớ với dung lượng nhỏ để làm bộ đệm (buffer) chứa dữ liệu tạm thời trong quá trình nhận hay gởi. • Khi chương trình yêu cầu xuất, hệ điều hành sẽ chuyển dữ liệu đến bộ nhớ đệm của bộ điều khiển nhập/xuất, bộ điều khiển nhập/xuất sẽ chuyển dữ liệu đến thiết bị xuất. Khi dữ liệu được chuyển xong, bộ điều khiển nhập/xuất tạo một ngắt (interrupt) để báo cho hệ điều hành biết là đã chuyển xong. Hệ điều hành sẽ đáp lại ngắt đó bằng cách bắt đầu thực thi thao tác xuất khác. 39 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Nhập/Xuất • Khi chương trình yêu cầu nhập, hệ điều hành sẽ tạm dừng thực thi nó và ra lệnh cho bộ điều khiển nhập/xuất của thiết bị bắt đầu đọc dữ liệu. Sau đó, hệ điều hành chuyển điều khiển của CPU đến chương trình thứ hai để thực thi, trong khi chương trình đầu đang đợi để nhập. Khi dữ liệu được nhập xong, bộ điều khiển nhập/xuất sẽ sinh ra một ngắt. Hệ điều hành sẽ đáp lại bằng cách tạm dừng chương trình thứ hai, rồi chuyển dữ liệu từ bộ nhớ đệm của bộ điều khiển nhập/xuất đến chương trình đầu và tiếp tục thực thi chương trình đầu. 40 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Nhập/Xuất • Các thiết bị nhập/xuất được phân làm 2 loại là thiết bị ký tự (character device) và thiết bị khối (block device): 1. Thiết bị ký tự: giao tiếp với bên ngoài từng byte, các byte này không có địa chỉ. Nghĩa là chỉ có thể truy xuất dữ liệu theo dạng tuần tự. Đa số các thiết bị nhập/xuất dùng với máy tính thuộc loại này như bàn phím, chuột, card mạng, máy quét, máy in, 2. Thiết bị khối: giao tiếp với bên ngoài từng khối dữ liệu, mỗi khối có địa chỉ cố định và độc lập. Các thiết bị loại này như CD-ROM, âm thanh, các thiết bị hiển thị, 41 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng Nhập/Xuất • Các thiết bị ký tự sẽ sinh ra ngắt cho mỗi ký tự được truyền đi, các thiết bị khối sẽ sinh ra ngắt chỉ khi toàn bộ khối đó được truyền đi. • Hầu hết các máy tính ngày nay đều có bộ điều khiển truy xuất bộ nhớ trực tiếp (direct memory access - DMA) để dùng với thiết bị khối. • Bộ điều khiển DMA dùng để truy xuất trực tiếp bộ nhớ và chia sẻ công việc truy xuất bộ nhớ với CPU. DMA truyền dữ liệu trực tiếp giữa bộ đệm của bộ điều khiển nhập/xuất với bộ nhớ chính, nó không yêu cầu bất cứ phục vụ nào từ CPU. 42 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng

Các file đính kèm theo tài liệu này:

  • pdfkhoa_hoc_may_tinh_c3_1947.pdf