Bài giảng Cấu trúc máy tính và giao diện - Nguyễn Phạm Hoàng Dũng
Một hệ thống máy tính bao gồm rất nhiều thành phần, trong đó bộ xử lý
trung tâm (hay còn gọi là CPU) chính là bộ não của cả hệ thống. CPU sẽ tiếp nhận
và xử lý mọi thông tin trong hệ thống. Thông tin hay còn được gọi là dữ liệu trong
một hệ thống máy tính được biểu diễn dưới dạng số nhị phân. Hệ số nhị phân còn
gọi là hệ cơ số hai chỉ bao gồm hai chữ số 0 và 1. Trong máy tính nói riêng và trong
các mạch điện tử số nói chung, các giá trị này được mã hóa dưới dạng các tín hiệu
điện với các giá trị điện áp hoặc dòng điện tương ứng khác nhau. Việc tính toán, xử
lý dữ liệu nhị phân trong máy tính cũng được thực hiện tương tự như trong toán
học.
1.1. Các hệ đếm
1.1.1. Hệ thập phân (decimal)
Hệ thập phân là hệ cơ số rất quen thuộc đối với chúng ta, đây là hệ cơ số
được sử dụng trong cuộc sống hàng ngày để biểu diễn các giá trị số, còn được gọi là
hệ cơ số mười hay hệ mười.
Hệ thập phân sử dụng 10 chữ số để biểu diễn hệ thống số. Mười chữ số này
là: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Số dương và số âm được biểu diễn bằng dấu “+” và “-“
trước mỗi số. Để phân biệt với hệ cơ số khác, ta thường thêm chữ cái „D‟ vào phía
cuối để chỉ ra rằng đó là một số trong hệ thập phân, ta cũng có thể bỏ „D‟ đi mà vẫn
ngầm hiểu đó là số thuộc hệ thập phân.
1.1.2. Hệ nhị phân (binary)
Cũng như hệ thập phân, nhị phân cũng là một hệ thống số trong đó các giá trị
số được biểu diễn chỉ bằng hai chữ số 0 và 1. Để phân biệt với các hệ cơ số khác, ta
thường thêm chữ cái „B‟ vào phía cuối số nhị phân.
Ví dụ: 10B, 11B, 100B, 1100B, 10100110B
Mỗi giá trị trong hệ nhị phân tương ứng với một giá trị trong hệ thập phân và
ngược lại. Việc chuyển đổi qua lại giữa các giá trị trong hệ thập phân và hệ nhị phân
được thực hiện như sau.
+ Chuyển một số từ hệ nhị phân sang hệ thập phân4
Việc chuyển đổi từ số nhị phân sang số thập phân được thực hiện bằng cách
tính tổng các tích giữa các hệ số của số nhị phân với các trọng số 2i tương ứng
Tóm tắt nội dung tài liệu: Bài giảng Cấu trúc máy tính và giao diện - Nguyễn Phạm Hoàng Dũng
TRƢỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG KHOA KỸ THUẬT – CÔNG NGHỆ BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GIAO DIỆN Bậc học: Cao đẳng Giảng viên: Nguyễn Phạm Hoàng Dũng Bộ môn: Điện – Điện tử Khoa: Kỹ thuật – Công nghệ Quảng Ngãi, tháng 12/2015 TRƢỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG KHOA KỸ THUẬT – CÔNG NGHỆ BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GIAO DIỆN Bậc học: Cao đẳng (Số tiết: 30) Giảng viên: Nguyễn Phạm Hoàng Dũng Bộ môn: Điện – Điện tử Khoa: Kỹ thuật – Công nghệ Quảng Ngãi, tháng 12/2015 MỤC LỤC LỜI NÓI ĐẦU ........................................................................................................... 1 DANH SÁCH CÁC TỪ VIẾT TẮT ........................................................................ 2 Chƣơng 1 . GIỚI THIỆU HỆ THỐNG SỐ ............................................................ 3 1.1. Các hệ đếm ....................................................................................................... 3 1.1.1. Hệ thập phân (decimal) ............................................................................. 3 1.1.2. Hệ nhị phân (binary) ................................................................................. 3 1.1.3. Hệ thập lục phân (hexadecimal) ................................................................ 5 1.2. Các phép toán ................................................................................................... 7 1.2.1. Các phép toán logic ................................................................................... 7 1.2.2. Các phép toán số học ................................................................................ 8 1.3. Biểu diễn số .................................................................................................... 11 1.4. Biểu diễn ký tự ............................................................................................... 14 Chƣơng 2 . GIỚI THIỆU CÁC HỆ MÁY TÍNH ................................................. 17 2.1. Các thế hệ máy tính ........................................................................................ 17 2.1.1. Thế hệ zero .............................................................................................. 17 2.1.2. Thế hệ đầu tiên (1945 – 1953) ................................................................ 18 2.1.3. Thế hệ thứ hai (1954 – 1965) .................................................................. 19 2.1.4. Thế hệ thứ ba (1965 – 1980) ................................................................... 20 2.1.5. Thế hệ thứ tư (1980 đến nay) .................................................................. 20 2.2. Chức năng máy tính ....................................................................................... 21 2.3. Cấu trúc và tổ chức máy tính ......................................................................... 22 2.4. Phân loại ......................................................................................................... 23 2.4.1. Phân loại theo cấu trúc tập lệnh .............................................................. 23 2.4.2. Phân loại theo khả năng xử lý của máy tính ........................................... 25 2.5. Máy tính Von Neumann ................................................................................. 26 Chƣơng 3 . CẤU TRÚC TỔNG QUÁT ................................................................ 28 3.1. Thùng máy – nguồn ....................................................................................... 28 3.2. Mainboard ...................................................................................................... 30 3.3. CPU ................................................................................................................ 33 3.4. RAM ............................................................................................................... 36 3.5. BIOS VÀ CMOS RAM ................................................................................. 39 3.6. Interfaces ........................................................................................................ 40 3.7. Chipset ............................................................................................................ 43 3.8. Ổ đĩa cứng ...................................................................................................... 44 3.9. Ổ đĩa quang .................................................................................................... 48 3.10. Màn hình ...................................................................................................... 49 Chƣơng 4 . CẤU TRÚC BÊN TRONG MÁY TÍNH ........................................... 50 4.1. Vi xử lý ........................................................................................................... 50 4.1.1. Kiến trúc .................................................................................................. 50 4.1.2. Cấu trúc pipeline ..................................................................................... 51 4.1.3. Kỹ thuật superscalar ................................................................................ 54 4.1.4. Thanh ghi ................................................................................................ 54 4.1.5. Tập lệnh ................................................................................................... 56 4.2. Bộ nhớ ............................................................................................................ 58 4.2.1. Phân loại bộ nhớ ...................................................................................... 59 4.2.2. Cấu trúc cơ bản ....................................................................................... 62 4.3. Hệ thống kết nối (bus) .................................................................................... 63 4.3.1. Phân loại .................................................................................................. 63 4.3.2. Chức năng ............................................................................................... 65 4.4. Hệ thống cache ............................................................................................... 68 4.4.1. Giới thiệu ................................................................................................. 68 4.4.2. Chức năng ............................................................................................... 69 4.4.3. Cache nhiều tầng ..................................................................................... 70 4.4.4. Phân loại .................................................................................................. 71 Chƣơng 5 . HỆ THỐNG XUẤT NHẬP ................................................................ 73 5.1. Hệ thống ngắt ................................................................................................. 74 5.2. Truy cập trực tiếp bộ nhớ ............................................................................... 77 5.3. Thiết bị bên ngoài ........................................................................................... 80 5.4. Các ngoại vi .................................................................................................... 82 TÀI LIỆU THAM KHẢO ...................................................................................... 84 1 LỜI NÓI ĐẦU Bài giảng “Cấu trúc máy tính và giao diện” được biên soạn dùng làm tài liệu học tập cho sinh viên bậc cao đẳng chính qui ngành công nghệ kỹ thuật Điện – Điện tử trường Đại học Phạm Văn Đồng. Bài giảng bao gồm 5 chương, cung cấp cho sinh viên những kiến thức cơ bản về quá trình phát triển của máy vi tính, cấu trúc cơ bản của một máy vi tính hiện đại, các chuẩn và thông số kỹ thuật của các thành phần tạo nên một chiếc máy tính, một số kỹ thuật xử lý nhằm cải thiện tốc độ xử lý của máy tính theo thời gian, một số chi tiết của hệ thống máy tính như: bộ xử lý trung tâm, bộ nhớ, cache, Bài giảng này cũng góp phần giúp sinh viên cập nhật những công nghệ mới thông qua các ví dụ thực tế. Nội dung chi tiết của bài giảng như sau: - Chương 1: Giới thiệu hệ thống số - Chương 2: Giới thiệu các hệ máy tính - Chương 3: Cấu trúc tổng quát - Chương 4: Cấu trúc bên trong máy tính - Chương 5: Hệ thống xuất nhập Trong quá trình biên soạn không thể tránh khỏi những thiếu sót, rất mong nhận được sự góp ý của bạn đọc để bài giảng được hoàn thiện hơn. Mọi ý kiến đóng góp xin gửi về địa chỉ: Bộ môn Điện – Điện tử, Khoa Kỹ thuật – Công nghệ, Trường Đại học Phạm Văn Đồng. Tác giả xin chân thành cảm ơn! 2 DANH SÁCH CÁC TỪ VIẾT TẮT Từ viết tắt Từ đầy đủ Ý nghĩa CPU Central Processing Unit Đơn vị xử lý trung tâm MSB Most Significant Bit Bit có trọng số lớn nhất LSB Least Significant Bit Bit có trọng số thấp nhất ASCII American Standard Code for Information Interchange Chuẩn mã trao đổi thông tin Hoa Kỳ VLSI Very Large Scale Integration Tích hợp cỡ lớn PC Personal Computer Máy tính cá nhân CISC Complex Instruction Set Computing Máy tính có tập lệnh phức tạp RISC Reduced Instruction Set Computing Máy tính có tập lệnh đơn giản RAM Random Access Memory Bộ nhớ truy cập dữ liệu ngẫu nhiên SRAM Static Random Access Memory Bộ nhớ RAM tĩnh DRAM Dynamic Random Access Memory Bộ nhớ RAM động SDRAM Synchronous Dynamic Random Access Memory Bộ nhớ DRAM đồng bộ DDR Double Data Rate Gấp đôi tốc độ dữ liệu ROM Real-Only Memory Bộ nhớ chỉ đọc BIOS Basic Input/Output System Hệ thống xuất nhập cơ bản CMOS Complementary Metal-Oxide- Semiconductor Bộ nhớ RAM lưu trữ thông tin cấu hình máy tính HDD Hard Disk Drive Ổ đĩa cứng cơ truyền thống SSD Solid-State Drive Ổ đĩa cứng thể rắn ALU Arithmetic Logic Unit Đơn vị tính toán số học DMA Direct Memory Access Giao thức truy cập trực tiếp bộ nhớ DMAC Direct Memory Access Controller Bộ điều khiển truy cập trực tiếp bộ nhớ 3 Chƣơng 1. GIỚI THIỆU HỆ THỐNG SỐ Một hệ thống máy tính bao gồm rất nhiều thành phần, trong đó bộ xử lý trung tâm (hay còn gọi là CPU) chính là bộ não của cả hệ thống. CPU sẽ tiếp nhận và xử lý mọi thông tin trong hệ thống. Thông tin hay còn được gọi là dữ liệu trong một hệ thống máy tính được biểu diễn dưới dạng số nhị phân. Hệ số nhị phân còn gọi là hệ cơ số hai chỉ bao gồm hai chữ số 0 và 1. Trong máy tính nói riêng và trong các mạch điện tử số nói chung, các giá trị này được mã hóa dưới dạng các tín hiệu điện với các giá trị điện áp hoặc dòng điện tương ứng khác nhau. Việc tính toán, xử lý dữ liệu nhị phân trong máy tính cũng được thực hiện tương tự như trong toán học. 1.1. Các hệ đếm 1.1.1. Hệ thập phân (decimal) Hệ thập phân là hệ cơ số rất quen thuộc đối với chúng ta, đây là hệ cơ số được sử dụng trong cuộc sống hàng ngày để biểu diễn các giá trị số, còn được gọi là hệ cơ số mười hay hệ mười. Hệ thập phân sử dụng 10 chữ số để biểu diễn hệ thống số. Mười chữ số này là: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Số dương và số âm được biểu diễn bằng dấu “+” và “-“ trước mỗi số. Để phân biệt với hệ cơ số khác, ta thường thêm chữ cái „D‟ vào phía cuối để chỉ ra rằng đó là một số trong hệ thập phân, ta cũng có thể bỏ „D‟ đi mà vẫn ngầm hiểu đó là số thuộc hệ thập phân. 1.1.2. Hệ nhị phân (binary) Cũng như hệ thập phân, nhị phân cũng là một hệ thống số trong đó các giá trị số được biểu diễn chỉ bằng hai chữ số 0 và 1. Để phân biệt với các hệ cơ số khác, ta thường thêm chữ cái „B‟ vào phía cuối số nhị phân. Ví dụ: 10B, 11B, 100B, 1100B, 10100110B Mỗi giá trị trong hệ nhị phân tương ứng với một giá trị trong hệ thập phân và ngược lại. Việc chuyển đổi qua lại giữa các giá trị trong hệ thập phân và hệ nhị phân được thực hiện như sau. + Chuyển một số từ hệ nhị phân sang hệ thập phân 4 Việc chuyển đổi từ số nhị phân sang số thập phân được thực hiện bằng cách tính tổng các tích giữa các hệ số của số nhị phân với các trọng số 2i tương ứng. Giả sử ta có số nhị phân như sau: bn bn-1b1b0B, trong đó bi (i = n,0 ) là các hệ số của số nhị phân, có thể nhận một trong hai giá trị 0 hoặc 1. Khi đó 2i sẽ là trọng số tương ứng của hệ số bi. Số nhị phân này được chuyển đổi sang hệ thập phân bằng công thức sau: bn*2 n + bn-1*2 n-1 + + b1*2 1 + b0*2 0 Ví dụ: ta có số nhị phân: 1011B 3 2 1 0 1 0 1 1 b3 b2 b1 b0 Số thập phân tương ứng sẽ là: b3*2 3 + b2*2 2 + b1*2 1 + b0*2 0 = 1*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 11 Như vậy, số 1011B sẽ tương ứng với số 11 trong hệ thập phân. Ví dụ: số nhị phân: 110011B 1*2 5 + 1*2 4 + 0*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 32 + 16 + 0 + 0 + 2 +1 = 51 Như vậy, số 110011B tương ứng với số 51 trong hệ thập phân. + Chuyển một số từ hệ thập phân sang hệ nhị phân Việc chuyển đổi một số từ hệ thập phân sang hệ nhị phân được thực hiện bằng cách lấy số cần đổi chia cho 2 và ghi nhớ phần dư, tiếp theo lấy thương của phép chia trước đó chia cho 2 và ghi nhớ phần dư. Làm như vậy cho tới khi được thương bằng 0. Đảo ngược thứ tự dãy số dư ta sẽ được các chữ số của hệ nhị phân cần tìm. Ví dụ: hình 1.1 mô tả cách đổi số 50 sang hệ nhị phân Số dư (số gạch dưới) được sắp xếp theo chiều mũi tên, như vậy 50 = 110010B 5 Hình 1.1. Đổi một số thập phân sang hệ nhị phân Hệ nhị phân là hệ cơ số được sử dụng trong máy tính nói riêng và trong các mạch điện tử số nói chung. Các giá trị 0 và 1 được hiểu là các mức điện áp (hoặc dòng điện) khác nhau trong mạch (một số ví dụ như đã đề cập ở phần trên). Trong thế giới máy tính, các số 0 và 1 được gọi là các bit. Một nhóm 4 bit sẽ tạo thành 1 nibble, nhóm 8 bit sẽ tạo thành một byte, nhóm 16 bit sẽ tạo thành một word. Bit đầu tiên bên trái trong chuỗi bit được gọi là bit MSB, bit cuối cùng bên phải trong chuỗi bit được gọi là bit LSB. Ví dụ: + Bit: 0B, 1B + Nibble: 1011B, 1110B, 1000B, + Byte: 01011110B, 11110000B, 11000001B, + Word: 1000010111100001B, 1111000010101100B, MSB LSB 1 1 0 1 0 1 0 0 Từ các ví dụ trên ta có thể thấy, một nibble có thể biểu diễn được số lớn nhất là 15, một byte có thể biểu diễn được số lớn nhất là 255, một word có thể biểu diễn số lớn nhất là 65535. Để biểu diễn những số lớn hơn ta phải dùng những chuỗi bit dài hơn, điều này rất bất tiện cho con người trong việc ghi chép, tính toán trên giấy. Để khắc phục nhược điểm trên người ta thường sử dụng hệ thập lục phân. 1.1.3. Hệ thập lục phân (hexadecimal) Hệ thập lục phân hay còn gọi là hệ cơ số 16, cũng là một hệ thống số trong đó các giá trị số được biểu diễn bằng các chữ số từ 0 đến 9 và các chữ cái từ A đến 6 F, tương ứng với giá trị thập phân từ 0 đến 15. Để phân biệt với các hệ cơ số khác, ta thương thêm chữ cái „H‟ vào phía cuối số thập lục phân. Ví dụ: 19H, AB5H, 2F0CH, E104DH, Như đã đề cập ở trên, hệ thập lục phân ra đời nhằm khắc phục nhược điểm của số trong hệ nhị phân, đó là việc sử dụng một chuỗi số nhị phân quá dài để biểu diễn một giá trị lớn. Để việc biểu diễn một kết quả nhị phân gọn lại, ... thể xảy ra tại bất kỳ thời điểm nào trong quá trình hoạt động của hệ thống. Chương trình phục vụ ngắt được lập trình để thực hiện các thao tác thích hợp khi có sự kiện ngắt bất đồng bộ xảy ra. Thông thường, các ngoại vi khác nhau sẽ có các chương trình phục vụ ngắt khác nhau. Việc xác định đúng chương trình ngắt phục vụ cho ngoại vi đang có yêu cầu ngắt rất quan trọng. Sau đây là một số kỹ thuật để thực hiện công việc này. 76 Dò chương trình ngắt bằng phần mềm: trong một số thiết kế, vi xử lý sẽ chuyển đến thực hiện lệnh trong chương trình ở một địa chỉ cố định khi có yêu cầu ngắt. Sau đó, chương trình phần mềm phải có nhiệm vụ dò xem ngoại vi nào đang có yêu cầu ngắt bằng cách đọc thanh ghi trạng thái của các ngoại vi. Sau khi xác định được ngoại vi có yêu cầu ngắt, vi xử lý sẽ chuyển đến thực thi chương trình ngắt thích hợp cho ngoại vi đó. Phương pháp dò chương trình ngắt bằng phần mềm có một nhược điểm, đó là: phải tốn thời gian dò tìm chương trình ngắt, làm chậm quá trình xử lý ngắt. Để khắc phục nhược điểm này, người ta sử dụng một phương pháp khác, đó là daisy chain (còn được gọi dò ngắt bằng phần cứng). Khi nhận được yêu cầu ngắt, vi xử lý sẽ gởi lại một tín hiệu xác nhận ngắt. Tín hiệu này được đưa lần lượt qua từng ngoại vi cho đến khi gặp ngoại vi đang có yêu cầu ngắt. Sau đó, ngoại vi đưa một word lên bus dữ liệu. Word này còn được gọi là vector ngắt, chứa nhiều thông tin, trong đó bao gồm cả địa chỉ của chương trình ngắt. Vi xử lý đọc vector ngắt, và chuyển đến chương trình ngắt tương ứng bắt đầu từ địa chỉ chứa trong vector ngắt này. Hệ thống máy tính có rất nhiều ngoại vi, mỗi ngoại vi đều có thể tạo yêu cầu ngắt để truyền dữ liệu. Trong trường hợp có nhiều yêu cầu ngắt xuất hiện cùng một lúc, thông thường yêu cầu ngắt nào có tính cấp thiết hơn sẽ được đáp ứng trước. Việc phân xử để xác định thứ tự đáp ứng ngắt được thực hiện bằng bộ điều khiển ngắt. Tùy theo đặc điểm của từng hệ thống, mức độ ưu tiên ngắt của các ngoại vi có thể khác nhau, nhưng nhìn chung các ngoại vi sau thường có ưu tiên ngắt cao hơn so với các ngoại vi còn lại, đó là: bộ xử lý đồ họa, điều khiển bộ nhớ, điều khiển PCIe, ethernet. Việc quy định mức độ ưu tiên ngắt của các ngoại vi thường do người thiết kế hệ thống quyết định. Bộ điều khiển ngắt được lập trình để phân xử ngắt đúng theo những quy định này. Lấy ví dụ với vi xử lý 8086 của Intel, ngõ vào yêu cầu ngắt có hai chân là INTR và NMI. Chân INTR thường được kết nối với ngõ ra INT của bộ điều khiển ngắt 8259A. Ngoài chức năng phân xử ngắt, 8259A còn được sử dụng để mở rộng số lượng ngõ vào yêu cầu ngắt, đáp ứng cho các hệ thống có nhiều ngoại vi. Các yêu cầu ngắt vào chân INTR (thông qua 8259A) là các ngắt có thể che được, nghĩa 77 là có thể được hoặc không được đáp ứng. Các yêu cầu ngắt vào chân NMI là các yêu cầu không che được, nghĩa là các yêu cầu này luôn được đáp ứng. Do đó, chân NMI thường được sử dụng cho các yêu cầu ngắt quan trọng liên quan đến lỗi phần cứng như: lỗi pin, lỗi bộ nhớ, 5.2. Truy cập trực tiếp bộ nhớ Kỹ thuật truyền dữ liệu sử dụng ngắt có khả năng đáp ứng nhanh nhưng việc truyền dữ liệu vẫn phải được thực hiện thông qua vi xử lý. Nghĩa là, trong chương trình ngắt, vi xử lý phải đọc dữ liệu từ ngoại vi muốn truyền dữ liệu (còn gọi là nguồn) và ghi dữ liệu xuống ngoại vi cần nhận dữ liệu (còn gọi là đích) như hình 5.3. Việc này gần như ít ảnh hưởng đến tốc độ chung của hệ thống nếu dữ liệu cần truyền có dung lượng nhỏ. Tuy nhiên, khi cần truyền khối dữ liệu có dung lượng lớn, với nguồn hoặc đích là bộ nhớ hoặc thiết bị lưu trữ, kỹ thuật ngắt không còn thích hợp do vi xử lý phải truyền và nhận lượng lớn dữ liệu cùng với việc có thể truy cập đến các bộ nhớ hoặc thiết bị lưu trữ có tốc độ thấp sẽ tiêu tốn rất nhiều thời gian của vi xử lý, ảnh hưởng đến tốc độ chung của cả hệ thống. Hình 5.3. Truyền dữ liệu thông qua vi xử lý Để giải quyết những hạn chế của kỹ thuật ngắt, người ta thiết kế thêm một phần cứng để hỗ trợ việc truyền dữ liệu không cần thông qua vi xử lý. Kỹ thuật này được gọi là truy cập trực tiếp bộ nhớ (còn gọi là DMA). Phần cứng được thiết kế thêm gọi là bộ điều khiển DMA (còn gọi là DMAC). DMAC được kết nối trực tiếp với bus hệ thống. Chức năng chính của bộ điều khiển DMA là chuyển dữ liệu giữa các ngoại vi, thiết bị lưu trữ và bộ nhớ trong hệ thống như mô tả trong hình 5.4. Bộ DMAC thay thế vai trò của vi xử lý trong kỹ thuật sử dụng ngắt. Do đó, DMAC có quyền chiếm bus khi cần truyền dữ liệu. Vi xử lý buộc phải nhường quyền kiểm soát bus cho DMAC cho đến khi quá trình truyền dữ liệu hoàn tất. Bộ điều khiển DMA hoạt động dựa trên một số thông tin cơ bản sau: Địa chỉ nguồn: địa chỉ bắt đầu của ngoại vi, thiết bị lưu trữ hoặc bộ nhớ chứa dữ liệu cần phải truyền đi 78 Địa chỉ đích: địa chỉ bắt đầu của ngoại vi, thiết bị lưu trữ hoặc bộ nhớ dùng để lưu dữ liệu được truyền đến Cách thức đọc/ghi dữ liệu ở nguồn/đích: dữ liệu được truy xuất theo địa chỉ tăng dần, giảm dần hoặc không đổi Số lượng dữ liệu: dung lượng dữ liệu (thường tính theo byte) cần được truyền đi Hình 5.4. Truyền dữ liệu thông qua DMAC Dữ liệu truyền theo kỹ thuật DMA thường là các khối gồm nhiều byte dữ liệu được lưu trữ trong các địa chỉ kế tiếp nhau hoặc không đổi (đối với bộ nhớ FIFO). Như hình 5.5, ta có thể xác định các khối dữ liệu gồm (n+1) byte, địa chỉ đầu là a, địa chỉ tăng dần hoặc giảm dần. Do đó, DMAC cần phải có các thông tin như trên để truyền đi một khối dữ liệu. Hình 5.5. Minh họa một cách xác định khối dữ liệu trong kỹ thuật DMA Các thông tin này được lập trình cho DMAC thông qua vi xử lý. Sau khi có lệnh DMAC sẽ thực hiện truyền dữ liệu trực tiếp mà không cần phải thông qua vi xử lý. Trong thời gian truyền dữ liệu qua DMAC, vi xử lý có thể thực hiện các công việc khác. Khi hoàn thành, bộ điều khiển DMA sẽ gởi một tín hiệu ngắt để thông báo và trả lại quyền kiểm soát bus hệ thống cho vi xử lý. Như vậy, vi xử lý chỉ có chức năng kiểm soát lúc bắt đầu và lúc kết thúc việc truyền dữ liệu. 79 Hiện nay, nhu cầu trao đổi dữ liệu trong hệ thống rất lớn, đặc biệt là giữa các thành phần như: bộ nhớ USB, ổ đĩa cứng, mạng máy tính, Do đó, các ngoại vi như: điều khiển USB, SATA, Ethernet, cũng được trang bị các bộ điều khiển DMA riêng. Sau đây, ta lấy ví dụ bộ điều khiển DMA tương thích với các dòng vi xử lý Intel họ 8086, có tên là 8237A. Hình 5.6 mô tả sơ đồ kết nối 8237A với vi xử lý. Giả sử ổ đĩa cứng (disk) muốn nhận dữ liệu từ bộ nhớ (memory) thông qua DMA. Quá trình đồng bộ (bắt tay) để truyền dữ liệu sẽ được thực hiện như sau: Ngoại vi (trong trường hợp này là bộ điều khiển ổ đĩa) sẽ gởi một yêu cầu sử dụng DMA đến 8237A bằng cách đưa tín hiệu DREQ lên mức cao. Chip 8237A sẽ kéo tín hiệu HRQ (kết nối với chân HOLD của vi xử lý) lên mức cao, báo hiệu cho vi xử lý biết nó cần sử dụng bus để truyền dữ liệu Vi xử lý sẽ hoàn thành chu kỳ bus hiện tại và kéo chân HLDA lên mức cao để báo cho 8237A biết nó đã có thể sử dụng bus để truyền dữ liệu. Trong lúc 8237A thực hiện việc truyền dữ liệu, chân HOLD phải được giữ ở mức cao. Chip 8237A sẽ tích cực tín hiệu DACK để báo hiệu cho ngoại vi có thể thực hiện việc truyền dữ liệu. Chip 8237A bắt đầu truyền dữ liệu bằng cách đặt địa chỉ của byte đầu tiên lên bus địa chỉ và tích cực chân MEMR để đọc dữ liệu từ bộ nhớ và đặt lên bus dữ liệu. Sau đó, 8237A sẽ tích cực chân IOW để ghi dữ liệu từ bus dữ liệu xuống ngoại vi. Chip 8237A, sau đó, sẽ giảm bộ đếm dữ liệu, tăng (hoặc giảm tùy theo cách lập trình) con trỏ địa chỉ và lặp lại quá trình như trên cho đến khi bộ đếm dữ liệu về 0, hoàn thành quá trình truyền dữ liệu. Chip 8237A đưa chân HRQ xuống mức thấp, thông báo cho vi xử lý lấy lại quyền điều khiển bus, đồng thời gởi cho vi xử lý một tín hiệu ngắt báo hiệu việc truyền dữ liệu đã hoàn tất. 80 Hình 5.6. Kết nối 8237A với vi xử lý Mỗi kỹ thuật truy xuất dữ liệu đều có những ưu điểm riêng tùy thuộc vào điều kiện hoạt động cụ thể của hệ thống. Do đó, người ta thường sử dụng kết hợp các kỹ thuật truy xuất dữ liệu này khi lập trình hoạt động cho vi xử lý. 5.3. Thiết bị bên ngoài Thiết bị bên ngoài là các thành phần giúp máy tính giao tiếp với môi trường bên ngoài. Như đã đề cập trong phần đầu của chương, các thiết bị này còn được gọi là các thiết bị ngoại vi, giao tiếp với máy tính thông qua các bộ điều khiển I/O, còn được gọi là ngoại vi của hệ thống máy tính. Các thiết bị bên ngoài có thể được chia thành ba nhóm lớn: Các thiết bị nhập dữ liệu Các thiết bị xuất dữ liệu Các thiết bị lưu trữ Các thiết bị ngoại vi phổ biến và quen thuộc nhất đối với con người có lẽ là: chuột, bàn phím, màn hình máy tính và ổ đĩa cứng. Chuột và bàn phím máy tính là các thiết bị nhập dữ liệu, thường kết nối với máy tính thông qua cổng PS/2. Ngày nay, hầu hết các cổng PS/2 đã được thay thế bằng cổng USB. Dữ liệu truyền qua bàn phím là các ký tự, thường được mã hóa dưới dạng chuỗi 7 hoặc 8 bit. Hiện nay, phiên bản 7 bit, tương ứng với 128 ký tự được sử dụng phổ biến. Các ký tự bao gồm hai loại: ký tự in được và ký tự điều 81 khiển. Ký tự in được là các ký tự chữ, số thông thường và một số ký tự đặc biệt khác có thể hiển thị trên màn hình hoặc có thể in được trên giấy (thông qua máy in). Các ký tự điều khiển có chức năng điều khiển việc hiển thị các ký tự trên màn hình. Ví dụ như ký tự xuống dòng (khi ta nhấn Enter), có chức năng điều khiển con trỏ chuyển sang dòng mới. Các phím được bố trí theo ma trận, việc xác định chuỗi bit biểu diễn cho một ký tự khi ta nhấn phím được gọi là quét phím. Quá trình này được một chip điều khiển quét phím chuyên dụng thực hiện. Chuỗi bit này được truyền nối tiếp đến máy tính thông qua cổng PS/2. Dữ liệu truyền qua chuột máy tính thường là các thông tin về tọa độ của chuột theo hai trục X và Y và thông tin về trạng thái các nút nhấn. Các thông tin được truyền từ chuột và bàn phím thường được tiếp nhận và hiển thị trên màn hình. Do đó, màn hình máy tính là thiết bị xuất dữ liệu. Ngày nay, các màn hình CRT truyền thống gần như đã được thay thế bằng các màn hình LCD nhỏ gọn hơn rất nhiều. Ngày nay, cùng với màn hình, máy in cũng là một thiết bị xuất dữ liệu phổ biến trong hệ thống máy tính. Trên thị trường hiện nay có nhiều loại máy in, nội dung môn học này chỉ đề cập đến hai loại máy in phổ biến được trang bị trong văn phòng và các hộ gia đình, đó là máy in phun và máy in laser. Bộ phận quan trọng nhất của máy in laser là một ống kim loại hình trụ, rỗng, được phủ một lớp vật liệu đặc biệt, có khả năng thay đổi điện tích khi ánh sáng laser chiếu vào, gọi là trống (drum). Nguyên lý chung của các máy in laser là sử dụng một hệ thống quang học lái tia laser khắc các hình ảnh cần in lên mặt trống. Sau đó, trống được lăn qua giấy để in những hình ảnh này lên giấy. Mực máy in laser có dạng bột, được sấy nóng chảy để bám vào giấy. Do đó, các máy in laser có thể in được trên nhiều loại giấy mà vẫn đảm bảo được chất lượng. Các máy in phun sử dụng một đầu phun dùng để phun mực trực tiếp lên giấy. Mực máy in phun có dạng lỏng nên có hai khuyết điểm như sau: bản in thường bị lem và hình ảnh thường phai màu theo thời gian. Do đó, ta phải sử dụng đúng loại giấy cho máy in phun, các loại giấy này thường có đặc điểm chung là không dễ bị 82 thấm nước. Để khắc phục khuyết điểm thứ hai, người ta thường sử dụng các loại mực chất lượng cao có pha chế với chất chống bay màu. Hiện nay, các máy in phun thường được sử dụng để in màu. Chất lượng hình ảnh màu của các máy in phun thường cao hơn, giá thành của máy in phun cũng rẻ hơn so với máy in laser, tuy nhiên chi phí để in một trang giấy bằng máy in phun đắt hơn nhiều lần so với máy in laser. Do đó, tùy vào mục đích sử dụng mà ta nên trang bị loại máy in cho phù hợp. Ổ đĩa cứng truyền thống là thiết bị lưu trữ dữ liệu dưới dạng từ tính. Các tín hiệu từ tính được chuyển đổi thành các bit dữ liệu bằng một bộ chuyển đổi chuyên dụng trước khi truyền đến máy tính. Chuẩn giao tiếp truyền thống giữa ổ đĩa cứng và máy tính là IDE, thực hiện việc truyền dữ liệu song song. Tuy nhiên, chuẩn này bị hạn chế về tốc độ truyền dữ liệu, nên hiện nay, chuẩn SATA truyền dữ liệu nối tiếp, có tốc độ cao và nhỏ gọn hơn được sử dụng phổ biến hơn. 5.4. Các ngoại vi Như đã đề cập trong phần đầu của chương, ngoại vi của vi xử lý là các khối điều khiển I/O. Ngoại vi có một số chức năng chính như sau. Điều khiển và định thì Giao tiếp với vi xử lý Giao tiếp với thiết bị bên ngoài Đệm dữ liệu Phát hiện lỗi Trong quá trình hoạt động, vi xử lý phải giao tiếp với rất nhiều thiết bị bên ngoài. Các nguồn tài nguyên của hệ thống như bộ nhớ chính hay bus hệ thống được chia sẻ để có thể hoạt động với nhiều ngoại vi. Vì vậy, các ngoại vi yêu cầu phải có chức năng điều khiển và định thì để có thể điều khiển các thiết bị bên ngoài hoạt động đồng bộ hoạt động đồng bộ trong hệ thống. Từ hình 5.1, ta có thể thấy, các ngoại vi có hai giao diện chính. Giao tiếp bus: dùng để giao tiếp, trao đổi dữ liệu với vi xử lý và các thành phần khác trong hệ thống thông qua bus. Các tín hiệu trong giao diện này phải 83 tương thích với bus, do đó, thường giống nhau cho các ngoại vi kết nối đến cùng một bus. Giao tiếp với các thiết bị bên ngoài: dùng để kết nối và trao đổi dữ liệu với các thiết bị bên ngoài. Các tín hiệu trong giao diện này hoàn toàn khác nhau giữa các ngoại vi do thiết bị bên ngoài có các chuẩn giao tiếp khác nhau. Tốc độ truy xuất dữ liệu của các ngoại vi và bộ nhớ không giống nhau, do đó chức năng đệm dữ liệu là cần thiết để đảm bảo việc truyền dữ liệu giữa các thành phần trong hệ thống diễn ra một cách đồng bộ. Hầu hết các ngoại vi còn có chức năng phát hiện lỗi trong quá trình truyền dữ liệu.Khi phát hiện lỗi trong dữ liệu nhận được, ngoại vi thường thông báo lỗi này cho vi xử lý để có hướng xử lý cho phù hợp. Sử dụng parity bit là một ví dụ đơn giản về việc dùng thêm một bit để phát hiện lỗi trong các giao thức truyền dữ liệu nối tiếp. CÂU HỎI ÔN TẬP CHƢƠNG 5 1. Mô tả hoạt động của vi xử lý khi nhận được yêu cầu ngắt từ ngoại vi. Vì sao phải lưu lại trạng thái các thanh ghi trước khi thực hiện chương trình ngắt? 2. Kỹ thuật DMA là gì? Trình bày ưu điểm của việc truy xuất dữ liệu bằng kỹ thuật DMA so với kỹ thuật ngắt. 3. Trình bày quá trình xảy ra trong hệ thống khi có một yêu cầu truy xuất dữ liệu bằng kỹ thuật DMA. 4. Thiết bị ngoại vi được kết nối với máy tính thông qua thành phần nào trong hệ thống. Mô tả đặc điểm chính của các thành phần này. 84 TÀI LIỆU THAM KHẢO [1]. Tống Văn On, Giáo trình Cấu trúc máy tính, Nhà xuất bản Lao động – Xã hội, 2007. [2]. Paul A.Carter, PC Assembly Language, 2006. [3]. William Stallings, Computer Organization and Architecture (Ninth Edition), Prentice Hall, 2012 [4]. Linda Null, Julia Lobur, The Essentials of Computer Organization and Architecture, Jones and Bartlett Publishers, 2003.
File đính kèm:
- bai_giang_cau_truc_may_tinh_va_giao_dien_nguyen_pham_hoang_d.pdf