Khoa học máy tính - Chương 2: Cấu trúc máy tính

ppt 115 trang vanle 3090
Bạn đang xem 20 trang mẫu của tài liệu "Khoa học máy tính - Chương 2: Cấu trúc 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:

  • pptkhoa_hoc_may_tinh_chuong_2_cau_truc_may_tinh.ppt

Nội dung text: Khoa học máy tính - Chương 2: Cấu trúc máy tính

  1. GIỚI THIỆU KHOA HỌC MÁY TÍNH NGUYỄN THANH TRUNG 1
  2. Chương 2 - CẤU TRÚC MÁY TÍNH ◼ 2.1. Hệ thống máy tính ◼ 2.2. Bộ xử lý trung tâm ◼ 2.3. Bộ nhớ máy tính ◼ 2.4. Thiết bị ngoại vi 2
  3. 2.1. Hệ thống máy tính Máy tính ngày nay vẫn dựa trên kiến trúc của máy tính Von Neumann 3
  4. 2.1.1. CÁC THÀNH PHẦN ◼ BỘ XỬ LÝ ◼ BỘ NHỚ ◼ THIẾT BỊ NGOẠI VI ◼ ĐƯỜNG TRUYỀN 4
  5. TỔ CHỨC VẬT LÝ 5
  6. 2.1.2.Hoạt động của Hệ thống ◼ Khởi động hệ thống ◼ POST ◼ Nạp hệ điều hành → bộ nhớ ◼ Trao quyền điều khiển hệ thống cho HĐH. ◼ Các hoạt động chính 6
  7. Hoạt động chính của Hệ thống 7
  8. a. Cơ chế DMA Khi cần di chuyển lượng dữ liệu lớn → DMAC (Direct Memory Access Controller) 8
  9. Cơ chế hoạt động Truy cập dữ liệu trực tiếp qua DMAC như sau: ◼ Thiết bị/Bộ nhớ cần chuyển dữ liệu, phát tín hiệu Data Request → DMAC. ◼ DMAC đưa tín hiệu đến CPU. ◼ Nếu chấp nhận, CPU trả lời tín hiệu cho DMAC và tự treo để nhường quyền điều khiển hệ thống Bus cho DMAC. ◼ DMAC dành quyền điều khiển Bus và tiến hành truy cập dữ liệu theo từng block dữ liệu. ◼ Sau khi kết thúc việc truy cập dữ liệu, DMAC phát tín hiệu kết thúc CPU và trả quyền điều khiển bus lại cho CPU. 9
  10. b. Ngắt và đáp ứng ngắt Có 2 loại ngắt cơ bản: - Ngắt cứng (hardware Interrupt): Ngắt sinh ra do các thiết bị phần cứng. Có 2 loại là ngắt che được (Maskable Interrupt) và ngắt không che được (Non Maskable Interrupt). - Ngắt mềm: Ngắt sinh ra do chương trình, ví dụ dùng lệnh Int trong hợp ngữ để gọi 1 chương trình con phục vụ ngắt nào đó. 10
  11. Hoạt động ngắt 11
  12. Cơ chế hoạt động ngắt Khi có yêu cầu phục vụ ngắt, CPU sẽ kiểm tra ngắt này có thể phục vụ được thì: ◼ Cất nội dung thanh ghi cờ → Stack. ◼ Thiết lập cờ IF = 0 (Cấm ngắt khác) và TF=0 (vi xử lý chạy bình thường). ◼ Cất CS:IP → Stack. Lấy địa chỉ chương trình con phục vụ ngắt từ bảng vector ngắt → CS:IP, và thực hiện chương trình này cho đến khi gặp lệnh kết thúc (IRET). ◼ Lần lượt lấy lại CS:IP và nội dung thanh ghi cờ từ Stack để thực hiện công việc đang tiến hành. 12
  13. Các mức ưu tiên phục vụ ngắt: Để tránh tranh chấp xảy ra khi có đồng thời nhiều yêu cầu ngắt thì người ta chia ra các mức ưu tiên để phục vụ: ◼ Cao nhất là ngắt nội bộ (lỗi chia 0, tràn số, lỗi phần cứng ) ◼ → Ngắt cứng không che được ◼ → Ngắt cứng che được ◼ → Ngắt chạy từng lệnh. 13
  14. Trật tự phục vụ ngắt 14
  15. Mạch điều khiển ngắt PIC ◼ Mạch PIC 8259A (Programmable Interrupt Controller) ◼ Mạch này có chức năng phân chia các mức ưu tiên phục vụ ngắt, chọn ngắt phù hợp và gởi thông tin ngắt (INT n) đến CPU. ◼ Mạch 8259A có 2 loại Master và Slaver 15
  16. Hoạt động phục vụ ngắt của PIC 16
  17. Các bước thực hiện lệnh ◼ Tìm lệnh ◼ Giải mã ◼ Thưc hiện 17
  18. Tìm lệnh Chu kỳ tìm lệnh Lệnh được đọc từ bộ nhớ → thanh ghi IR Phần lệnh được giải mã bằng bộ giải mã Phần địa chỉ được tính toán để xác định địa chỉ toán hạng 18
  19. Giải mã Giải mã lệnh Phần lệnh → bộ giải mã lệnh → tín hiệu sau khi giải mã → các khối thực hiện lệnh 19
  20. Thực hiện lệnh 20
  21. 2.1.3.CÁC ĐƯỜNG TRUYỀN (BUS) ◼ BUS NỘI BỘ ◼ BUS HỆ THỐNG ◼ BUS MỞ RỘNG 21
  22. a. BUS hệ thống (System Bus) ◼ Bus điều khiển (Control Bus), ◼ Bus dữ liệu (Data Bus), ◼ Bus địa chỉ dùng để xác định địa chỉ các ô nhớ hay địa chỉ các thiết bị (Address Bus). 22
  23. Data Bus ◼ Cung cấp một đường truyền cho việc di chuyển dữ liệu giữa các module hệ thống. ◼ Thường có 8, 16, 32 hay 64 đường riêng biệt, số các đường được đề cập đến với tên gọi độ rộng của đường truyền dữ liệu. ◼ Chẳng hạn, nếu đường truyền dữ liệu có độ rộng 8 bit và mỗi chỉ thị có độ dài 16 bit, CPU phải truy cập module bộ nhớ hai lần trong mỗi chu kỳ chỉ thị (lệnh). 23
  24. Address Bus ◼ Sử dụng để chỉ định nguồn hay đích của dữ liệu có trên đường truyền dữ liệu. Lấy ví dụ, nếu CPU muốn đọc dữ liệu từ bộ nhớ, nó sẽ đặt địa chỉ ô nhớ cần đọc trên các đường địa chỉ. ◼ Độ rộng của đường truyền địa chỉ sẽ xác định dung lượng bộ nhớ tối đa có thể có của hệ thống. ◼ VD: Ví dụ bus địa chỉ 20 bit sẽ lập địa chỉ được cho 220 vị trí nhớ, chính xác là 1.048.576 byte, hay gọi là 1MB. 24
  25. Control Bus ◼ Sử dụng để điều khiển việc truy cập đến và sử dụng các đường dữ liệu cũng như địa chỉ. Vì các đường này được dùng chung bởi tất cả các thành phần, phải có một phương tiện điều khiển việc sử dụng chúng. ◼ Các tín hiệu điều khiển truyền cả lệnh lẫn thông tin định thời giữa những module hệ thống. ◼ Tín hiệu định thời chỉ ra sự đúng đắn của dữ liệu và thông tin địa chỉ. ◼ Tín hiệu lệnh đặc tả thao tác cần được thực hiện. 25
  26. Các đường điều khiển chính gồm ◼ Ghi bộ nhớ ◼ Đọc bộ nhớ ◼ Ghi nhập/xuất ◼ Đọc nhập/xuất ◼ Truyền ACK: Chỉ ra rằng dữ liệu được chấp nhận hay đặt trên đường truyền. ◼ 26
  27. b. Đường truyền mở rộng (Expanded Bus) Là các dây dẫn song song tải tín hiệu, và được thiết kế phù hợp để cắm vừa các card mở rộng, tạo nên bus mở rộng theo nhiều chuẩn khác nhau. Giúp ta có thể bổ sung thêm nhiều tính năng mới cho máy thông qua card điều hợp mới. Cung cấp một loạt các chức năng điện tử phức tạp được đồng bộ với các chức năng của bộ VXL. 27
  28. Các loại Bus mở rộng ◼ ISA, EISA ◼ AGP bus (Accelerated Graphic Port) - Bus đồ họa tăng tốc: nối ghép card màn hình tăng tốc. ◼ PCI bus (Peripheral Component Interconnection): nối ghép với các TBNV có tốc độ trao đổi dữ liệu nhanh. ◼ USB (Universal Serial Bus): Bus nối tiếp đa năng ◼ IDE (Integrated Driver Electronics): Bus kết nối với ổ đĩa cứng hoặc ổ đĩa CD, DVD. 28
  29. 2.2. BỘ XỬ LÝ TRUNG TÂM 2.2.1. Tổng quan về bộ xử lý trung tâm ◼ CPU = Central Processing Unit ◼ Là trái tim của hệ thống, điều khiển mọi hoạt động của hệ thống máy tính. 29
  30. Đặc điểm về cấu trúc Công suất: (Độ dài từ máy, khả năng đánh địa chỉ, tốc độ thực hiện lệnh) → Nói đến khả năng xử lý dữ liệu, gồm: 1. Độ dài từ (Word length): Phụ thuộc vào loại Vi xử lý và công nghệ chế tạo: 4/8/16/32/64 bit, độ rộng của thanh ghi, ALU, và Bus dữ liệu bên trong cũng tương ứng với độ dài từ. 2.Khả năng đánh địa chỉ: Tức là khả năng định vị địa chỉ bộ nhớ, điều này do số bit của Bus địa chỉ. 30
  31. 3. Tốc độ xử lý lệnh. Thường đo bằng tốc độ thực hiện các lệnh dấu phẩy động FLOPS (Floating Point Operations per Second) hoặc tính bằng triệu lệnh / giây – MIPS (Millions Instructions per Second) MIPS = f*N /(M + T) +f: Tần số Vi xử lý (MHz, GHz) +N: Số lượng ALU +M: Số lượng vi lệnh / 1 lệnh (khoảng 4 - 7). +T: Thời gian truy cập bộ nhớ. 31
  32. 2.2.2. Các thành phần cơ bản của CPU 32
  33. Các thành phần cơ bản của CPU ◼ Đơn vị điều khiển (Control Unit – CU): ◼ Đơn vị số học và logic (Arithmetic and Logic Unit – ALU): ◼ Tập thanh ghi (Register File - RF): ◼ Đơn vị nối ghép bus (Bus interface Unit - BIU): 33
  34. 2.2.3. Vi xử lý Intel 8086/8088 ◼ Vi xử lý 16 bit đầu tiên của Intel sản xuất 1978. ◼ Tần số 4.7 → 10 MHz. ◼ 16 bit dữ liệu, 20 bit địa chỉ → quản lý 1MB bộ nhớ. ◼ Đồng xử lý toán học 8087 ◼ Độ dài từ máy 16 bit. 35
  35. a. Sơ đồ cấu tạo 36
  36. BIU (Bus Interface Unit) ◼ gồm các thanh ghi đoạn (CS, DS, ES, SS), ◼ con trỏ lệnh IP, ◼ hàng đợi lệnh trước PQ ◼ và đơn vị điều khiển Bus (Bus Control Logic). → BIU có nhiệm vụ nhận lệnh và đưa về chứa vào hàng đợi lệnh trước theo cơ chế FIFO. 37
  37. EU (Execution Unit) ◼ gồm đơn vị Số học – Logic (ALU), ◼ đơn vị điều khiển (CU), ◼ các thanh ghi đa năng (AX, BX, CX, DX), ◼ các thanh ghi con trỏ và chỉ mục (SP, BP, SI, DI), ◼ thanh ghi cờ (FR). →Nhiệm vụ của EU là giải mã lệnh và thực hiện lệnh. 38
  38. b.Hoạt động ◼ Hoạt động của 8086 có thể chi làm 3 giai đoạn chính: ◼ Nhận lệnh, ◼ Giải mã lệnh, ◼ Thực hiện lệnh. ◼ BIU điều khiển các Bus để lấy lệnh từ bộ nhớ, hay thiết bị ngoại vi về chứa tại PQ (Prefetch Queue) gồm 6 byte ◼ EU nhận lệnh lần lượt từ PQ, giải mã lệnh và tiến hành thực hiện lệnh. ◼ 39
  39. c. Bộ thanh ghi 8086 Thanh ghi (Register) là một phần bộ nhớ có tốc độ truy cập nhanh nằm ngay bên trong CPU, khác với bộ nhớ được máy xác định thông qua địa chỉ thì thanh ghi được xác định thông qua tên. 8086 có cả thảy 13 thanh ghi, mỗi thanh ghi dài 16 bit, từng thanh ghi có nhiệm vụ cụ thể và được chia vào các nhóm sau: ◼ Các thanh ghi đa năng ◼ Các thanh ghi đoạn ◼ Các thanh ghi con trỏ và chỉ mục ◼ Thanh ghi cờ 40
  40. Thanh ghi cờ (Flag) ◼ Là thanh ghi 16 bit, các bit trong thanh ghi này phản ánh trạng thái hiện tại của bộ xử lý, với 8086 thì có 9 bit được sử dụng. ◼ + CF (Carry Flag): Là cờ nhớ, khi có nhớ hay có mượn tại bit cao nhất thì CF=1. ◼ + PF(Parity Flag): Cờ chẵn lẻ, PF=1 khi tổng số bit 1 là chẵn. ◼ + AF (Auxiliary Flag): Cờ nhớ phụ, dùng cho các phép tính với mã BCD. 41
  41. ◼ + ZF (Zero Flag): Cờ Zero, ZF=1 khi kết quả tính toán = 0. ◼ + SF (Sign Flag): Cờ dấu, SF=1 khi kết quả âm. ◼ + TF (Trap Flag): Cờ bẫy lỗi, TF=1 vi xử lý sẽ chạy từng lệnh. ◼ + IF (Interrupt Flag): Cờ ngắt, cho phép gọi ngắt (dùng cho các ngắt che được – Maskable Interrupt). ◼ + DF (Direction Flag): Cờ hướng, DF=1 thì xử lý xâu ký tự từ phải sang trái. ◼ + OF (Overflow): Cờ tràn, OF=1 khi kết quả phép tính bị tràn số (vượt giới hạn), dùng cho các phép tính có dấu. →Ta có thể kiểm tra sự thay đổi giá trị trong các thanh ghi kể cả thanh ghi cờ bằng chương trình Debug. 42
  42. 2.2.4. Lệnh của Vi xử lý ◼ Là những chỉ thị cơ bản nhất mà CPU có thể hiểu được ◼ Kiến trúc tập lệnh ◼ CISC ◼ RISC ◼ Một số nhóm lệnh ◼ Việc thực hiện 1 lệnh 43
  43. Bộ lệnh (tập lệnh) ◼ Bộ lệnh là khác nhau với các máy tính khác nhau. Chương trình là một nhóm lệnh lấy từ tập lệnh và được sắp xếp theo thứ tự nào đó, nhằm thực hiện một công việc xác định. ◼ Các lệnh vi xử lý được viết dưới dạng mã nhị phân, 1 lệnh nhị phân dài từ 1 đến 6 byte tuỳ mỗi lệnh. ◼ VD: VXL 8086 có khoảng <200 lệnh 44
  44. Cấu trúc chung của lệnh 8086/8088 Mỗi lệnh chiếm khoảng 1→ 6 Byte, trong đó: • Prefix trước mã lệnh • Mã lệnh dùng để xác định đó là lệnh gì, ví dụ: Mov có mã lệnh 100010. • Toán hạng cho biết cái gì sẽ được xử lý (thanh ghi hay ô nhớ). • Địa chỉ trực tiếp (2 Byte). 45
  45. Cấu trúc chung của mỗi lệnh 8086/8088 • D (Direction) • W (Word): Thanh ghi đang dùng là 8 bit hay 16 bit • Mode và R/M dùng để xác định chế độ địa chỉ của lệnh (Addressing Mode). Đây là cách giúp cho vi xử lý tìm ra toán hạng cho lệnh nào đó, vi xử lý Intel có 7 chế độ địa chỉ 46
  46. Các kiểu thực hiện lệnh ◼ Bộ xử lý giải mã lệnh đã được nhận và phát tín hiệu điều khiển thực hiện thao tác mà lệnh yêu cầu. ◼ Các kiểu thao tác của lệnh: ◼ Trao đổi dữ liệu giữa CPU và bộ nhớ chính ◼ Trao đổi dữ liệu giữa CPU và môđun vào-ra ◼ Xử lý dữ liệu: thực hiện các phép toán số học hoặc phép toán logic với các dữ liệu ◼ Điều khiển rẽ nhánh ◼ Kết hợp các thao tác trên 47
  47. Kiến trúc tập lệnh ◼ RISC ◼ CISC 48
  48. Kiến trúc tập lệnh CISC ◼ CISC (Complex Instruction Set Computer) ◼ Các lệnh có độ phức tạp cao ◼ Các lệnh thực hiện bằng các vi chương trình ◼ Có sự khác nhau lớn giữa thời gian và kích thước của mỗi lệnh 49
  49. Tập lệnh RISC ◼ RISC (Reduced Instruction Set Computer) ◼ Gồm các lệnh đơn giản ◼ Thực hiện bằng phần cứng ◼ Kích thước và thời gian thực hiện các lệnh là như nhau 51
  50. Các nhóm lệnh cơ bản ◼ Chuyển dữ liệu ◼ Xử lý số học với số nguyên ◼ Xử lý logic ◼ Điều khiển vào-ra ◼ Chuyển điều khiển (rẽ nhánh) ◼ Điều khiển hệ thống ◼ Xử lý số dấu chấm động ◼ Xử lý các dữ liệu chuyên dụng 52
  51. Các lệnh chuyển dữ liệu MOVE Copy dữ liệu từ nguồn đến đích LOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lý STORE Cất dữ liệu từ bộ xử lý đến bộ nhớ EXCHANGE Trao đổi nội dung của nguồn và đích CLEAR Chuyển các bit 0 vào toán hạng đích SET Chuyển các bit 1 vào toán hạng đích PUSH Cất nội dung toán hạng nguồn vào ngăn xếp POP Lấy nội dung đỉnh ngăn xếp đưa đến toán hạng đích 53
  52. Các lệnh số học ADD Cộng hai toán hạng SUBTRACT Trừ hai toán hạng MULTIPLY Nhân hai toán hạng DIVIDE Chia hai toán hạng ABSOLUTE Lấy trị tuyệt đối toán hạng NEGATE Đổi dấu toán hạng (lấy bù 2) INCREMENT Tăng toán hạng thêm 1 DECREMENT Giảm toán hạng đi 1 COMPARE Trừ 2 toán hạng để lập cờ 54
  53. Các lệnh logic AND Thực hiện phép AND hai toán hạng OR Thực hiện phép OR hai toán hạng XOR Thực hiện phép XOR hai toán hạng NOT Đảo bit của toán hạng (lấy bù 1) TEST Thực hiện phép AND 2 toán hạng để lập cờ SHIFT Dịch trái (phải) toán hạng ROTATE Quay trái (phải) toán hạng 55
  54. Minh hoạ các lệnh AND, OR, XOR ◼ Giả sử có hai thanh ghi chứa dữ liệu như sau: ◼ (R1) = 1010 1010 ◼ (R2) = 0000 1111 ◼ R1  (R1) AND (R2) = 0000 1010 ◼ Phép toán AND dùng để xoá một số bit và giữ nguyên một số bit còn lại của toán hạng. ◼ R1  (R1) OR (R2) = 1010 1111 ◼ Phép toán OR dùng để thiết lập một số bit và giữ nguyên một số bit còn lại của toán hạng. ◼ R1  (R1) XOR (R2) = 1010 0101 ◼ Phép toán XOR dùng để đảo một số bit và giữ nguyên một số bit còn lại của toán hạng. 56
  55. Các lệnh vào ra chuyên dụng ◼ INPUT Copy dữ liệu từ một cổng xác định đến đích ◼ OUTPUT Copy dữ liệu từ nguồn đến một cổng xác định 57
  56. Các lệnh chuyển điều khiển ◼ JUMP (BRANCH) - Lệnh nhảy không điều kiện: ◼ Nạp vào PC một địa chỉ xác định ◼ JUMP CONDITIONAL - Lệnh nhảy có điều kiện: ◼ Điều kiện đúng nạp PC một địa chỉ xác định ◼ Điều kiện sai không làm gì cả ◼ Điều kiện thường được kiểm tra thông qua các cờ ◼ CALL - Lệnh gọi chương trình con: ◼ Cất nội dung của PC (địa chỉ trở về) ra một vị trí xác định (thường ở Stack) ◼ Nạp vào PC địa chỉ của lệnh đầu tiên của chương trình con ◼ RETURN - Lệnh trở về từ chương trình con: ◼ Khôi phục địa chỉ trở về trả lại cho PC để trở về chương trình chính 58
  57. Các lệnh điều khiển hệ thống ◼ NO OPERATION Không thực hiện gì cả ◼ HALT Dừng thực hiện chương trình ◼ WAIT Tạm dừng thực hiện chương trình, lặp kiểm tra điều kiện cho đến khi thoả mãn thì tiếp tục thực hiện ◼ LOCK Cấm không cho xin chuyển nhượng bus ◼ UNLOCK Cho phép xin chuyển nhượng bus 59
  58. Ví dụ minh hoạ (lệnh 16 bit) 60
  59. Ví dụ về lấy lệnh và thực hiện lệnh Fetch Execute Opcode = 1h Lệnh 1 Nạp nội dung ô nhớ có đc 940h → AC Opcode = 5h Lệnh 2 Cộng nội dung ô nhớ có đc 941h với AC. Kết quả chứa ở AC Opcode = 2h Lệnh 3 Lưu nội dung AC → ô nhớ có đc 941h 61
  60. 2.3. Bộ nhớ máy tính (Memory) ◼ Chức năng: lưu trữ chương trình và dữ liệu. ◼ Các thao tác cơ bản với bộ nhớ: ◼ Đọc (Read) ◼ Ghi (Write) ◼ Các thành phần chính: ◼ Bộ nhớ trong (Internal Memory) ◼ Bộ nhớ ngoài (External Memory) 62
  61. Bộ nhớ trong (Internal memory) ◼ Chức năng và đặc điểm: ◼ Chứa các thông tin mà CPU có thể trao đổi trực tiếp ◼ Tốc độ rất nhanh ◼ Dung lượng không lớn ◼ Sử dụng bộ nhớ bán dẫn: ROM, RAM ◼ Các loại bộ nhớ trong: ◼ Bộ nhớ chính ◼ Bộ nhớ cache (bộ nhớ đệm nhanh) 63
  62. Các loại RAM & ROM 64
  63. Bộ nhớ chính (Main memory) ◼ Chứa các chương trình và dữ liệu đang được CPU sử dụng. ◼ Tổ chức thành các ngăn nhớ được đánh địa chỉ. ◼ Ngăn nhớ thường được tổ chức theo byte. ◼ Nội dung của ngăn nhớ có thể thay đổi, song địa chỉ vật lý của ngăn nhớ luôn cố định 65
  64. Bộ nhớ đệm nhanh (Cache memory) ◼ Bộ nhớ có tốc độ nhanh được đặt đệm giữa CPU và bộ nhớ chính nhằm tăng tốc độ CPU truy nhập bộ nhớ ◼ Dung lượng nhỏ hơn bộ nhớ chính ◼ Tốc độ nhanh hơn ◼ Cache thường được chia thành một số mức ◼ Cache có thể được tích hợp trên chip vi xử lý. ◼ Cache có thể có hoặc không. 66
  65. Bộ nhớ ngoài (External memory) ◼ Chức năng và đặc điểm: ◼ Lưu giữ tài nguyên phần mềm của máy tính ◼ Được kết nối với hệ thống dưới dạng các thiết bị vào-ra ◼ Dung lượng lớn ◼ Tốc độ chậm ◼ Các loại bộ nhớ ngoài: ◼ Bộ nhớ từ: đĩa cứng, đĩa mềm ◼ Bộ nhớ quang: đĩa CD, DVD ◼ Bộ nhớ bán dẫn: Flash disk, memory card 67
  66. 2.4 Hệ thống vào ra và thiết bị ngoại vi ◼ Hệ thống vào ra ◼ Thiết bị ngoại vi 68
  67. Hệ thống vào-ra (Input/Output System) ◼ Chức năng: trao đổi thông tin giữa máy tính với thế giới bên ngoài. ◼ Các thao tác cơ bản: ◼ Vào dữ liệu (Input) ◼ Ra dữ liệu (Output) ◼ Các thành phần chính: ◼ Các thiết bị ngoại vi (Peripheral Devices) ◼ Các môđun vào-ra (IO Modules) 69
  68. Cấu trúc cơ bản của hệ thống vào-ra 70
  69. Các thiết bị ngoại vi ◼ Chức năng: chuyển đổi dữ liệu giữa bên trong và bên ngoài máy tính. ◼ Các loại thiết bị ngoại vi (TBNV) cơ bản: ◼ Thiết bị vào: bàn phím, chuột, máy quét ◼ Thiết bị ra: màn hình, máy in ◼ Thiết bị nhớ: các ổ đĩa ◼ Thiết bị truyền thông: MODEM 71
  70. Môđun vào-ra ◼ Chức năng: nối ghép các TBNV với máy tính. ◼ Mỗi môđun vào-ra có một hoặc một vài cổng vào-ra (I/O Port). ◼ Mỗi cổng vào-ra được đánh một địa chỉ xác định. ◼ Các TBNV được kết nối và trao đổi dữ liệu với máy tính thông qua các cổng vào-ra. 72
  71. Màn hình 74
  72. Bàn phím 75
  73. Đĩa cứng vật lý 76
  74. Máy in 77
  75. Máy tính PC ngày nay ◼ Máy tính cá nhân hay PC được giới thiệu lần đầu vào năm 1981, ngày nay có rất nhiều loại khác nhau, lúc đầu là các PC/AT → PC/XT, từ năm 1995 Intel và Microsoft đưa ra đề nghị về cấu hình máy tính cá nhân PC97, PC98, PC99, PC2001 78
  76. PC99 ◼ Cấu hình PC99 quy định loại bỏ bus ISA ra khỏi cấu trúc máy PC, thay thế các giao diện tuần tự và song song cổ điển bằng các giao diện nhanh hơn và thông minh hơn (USB, IEEE 1394) card màn hình phải dùng giao diện PCI hoặc AGP. 79
  77. PC2001 ◼ Cấu hình PC2001 quy định cho cấu hình các máy tính cá nhân từ năm 2001 về sau. Loại bỏ cấu trúc IBM-PC (gồm bus ISA, giao diện tuần tự và song song cổ điển chỉ trừ máy in, ), yêu cầu PC tối thiểu có vi xử lý 400MHz, bus PCI, giao diện USB và IEEE 1394. 80
  78. Các yêu cầu hệ thống cho PC 2001 81
  79. PC2001 ◼ Các thiết bị thu nhận dữ liệu không nằm trong vỏ máy đều phải có giao diện tuần tự USB và theo chuẩn USB HID 1.1 (Universal Serial Bus Human Interface Device). Các thiết bị đều hỗ trợ chuẩn Plug - n - Play, các thiết bị mạng tuân theo chuẩn NDIS 5.0, 82
  80. PC2001 ◼ Các thiết bị hiển thị: Nếu máy có giao diện hiển thị số thì ổ cắm và màn hình cần tuân thủ đặc tả DIV (Digital Visual Interface Specification). Thiết bị hiển thị cần có độ phân giải tối thiểu 1024x768, 32 bit màu, khả năng 3D, Plug n Play, quản lý nguồn, máy in dù vẫn hỗ trợ giao diện tuần tự cổ điển hoặc giao diện song song IEEE 1284 nhưng phải trang bị giao diện USB và IEEE 1394. 83
  81. PC2001 ◼ Thiết bị truyền dữ liệu: Modem phải tuân theo bộ lệnh V.250 AT, Modem ISDN cũng phải tuân theo bộ lệnh AT cơ bản và các lệnh mới đăc trưng cho ISDN. Mọi modem ngoại vi đều phải dùng giao diện USB để nối với máy tính. 84
  82. Một số ví dụ 85
  83. Aspire SA85 Là phiên bản mới nhất trong dòng Aspire, vừa được Acer giới thiệu tại thị trường Việt Nam trong tháng 10. Mainboard: mini-ATX 661FX-M7 (v1.2A). card đồ họa, card âm thanh và card mạng được tích hợp trên Mainboard. các cổng thông dụng như PS/2, serial, parallel, VGA, LAN, 3 ngõ Audio và 4 cổng USB; mặt trước có thêm 2 cổng USB và 2 ngõ Audio. BXL Intel Celeron D 336 (2,8GHz, 256KB Cache L2), hoặc Pentium 4 HT 524 (3,06GHz, 1MB Cache L2). Bộ nguồn P4 300W (20 chân) của Liteon 86
  84. VIA PC1-1500 ◼ bo mạch chủ (BMC) mini-ITX ◼ 1 khe cắm RAM (tối đa 1GB), ◼ 2 giao tiếp IDE cho ổ cứng, CD-ROM ◼ 1 khe PCI. ◼ Các cổng cơ bản như PS/2, VGA (tích hợp), serial, parallel, 3 ngõ audio, 2 cổng USB và card mạng tích hợp; mặt trước có 2 cổng USB và 2 ngõ audio. ◼ BXL VIA C3 1,0GHz (133,6MHzx7,5), ◼ DDR-SDRAM 256MB ◼ ổ cứng ATA 40GB. 87
  85. VIA PC1-2500 ◼ BMC dạng mini-ATX kích thước (19x22,5cm), ◼ có 2 khe gắn RAM (tối đa 2GB), ◼ 2 giao tiếp IDE, 2 giao tiếp SATA ◼ 2 khe PCI ◼ các cổng cơ bản như PS/2, VGA (tích hợp), serial, parallel, 3 ngõ audio, 4 cổng USB và card mạng tích hợp; mặt trước có 2 cổng USB và 2 ngõ audio. ◼ BXL VIA C7 1,5GHz, đồ họa tích hợp VIA/S3G UniChrome 64 MB, ◼ DDR2-SDRAM 256MB ◼ ổ cứng SATA 40GB 88
  86. CMS PowerCom 7020 ◼ Ngoài các cổng cơ bản ở mặt sau như PS/2, Serial, Parallel, 3 ngõ Audio, 4 cổng USB và card mạng (tích hợp). Mặt trước được tăng cường thêm 2 cổng USB, 2 ngõ Audio ◼ BXL Core 2 Duo 6600 (2,4GHz socket 775, FSB 1066MHz, cache L2 4MB), 512 MB PC2 4300 (DDR2 533MHz), card đồ họa ATI Radeon X300/TD 128MB; ổ cứng SATA 80GB trên nền chipset 965 của Intel. 89
  87. Những tính năng mới nhất ◼ Bo mạch chủ: bo mạch chủ 2 socket cho phép chạy 2 BXL lõi kép. ◼ 2 khe PCI-Express x16 với băng thông đúng mức x16 cho hệ đồ họa kép. ◼ CPU lõi kép tốc độ cao → >3GHz ◼ RAM sử dụng DDR2 có dung lượng cao đến 2GB. ◼ ổ cứng khá rẻ và tốc độ lại rất cao dung lượng lớn khoảng 250 GB, hỗ trợ SATA0-2, có thể tận dụng được ưu thế tốc độ hoặc tính an toàn dữ liệu của RAID-0 hoặc RAID-1 . ◼ ổ quang với khả năng ghi đĩa giá thành đang giảm, ◼ HĐH 64-bit 90
  88. Các thành phần cơ bản Bộ xử lý ◼ Bộ xử lý trung tâm, ◼ Các bộ đồng xử lý, ◼ Các vi mạch xử lý khác Chức năng Điều khiển mọi hoạt động của máy tính 91
  89. Các thành phần cơ bản Bộ nhớ • Bộ nhớ trong • Bộ nhớ ngoài (Storage Devices). 92
  90. Các thành phần cơ bản Các thiết bị nhập • keyboards, • mouse • voice recognition devices, • sound cards, • modems, • scanners, • tape drives, • CD/DVD drives, • video camera 93
  91. Các thành phần cơ bản Các thiết bị xuất • monitors, • printers, • fax, • modems, • plotters, • CD-recordable discs, • Speaker 94
  92. a. Bus mở rộng ISA (Industry Standard Architecture) Năm 1987, Ủy ban tiêu chuẩn phối hợp với Viện kỹ thuật điện và điện tử IEEE (của Mỹ) đã đưa ra một bộ các tiêu chuẩn gọi là ISA . Đây là bus mở rộng 16-bit nhưng vẫn tương thích với loại 8-bit cũ. có tốc độ chậm (8 megabyte mỗi giây) nên với những bộ VXL tốc độ nhanh, bus này bị quá tải mà người ta gọi là hiện tượng thắt cổ chai (bottleneck) 95
  93. Bus Micro Chanel Architecture (MCA) ◼ rộng 32-bit do IBM giới thiệu vào năm 1987 trong dòng máy tính PS/2 của họ. ◼ Khe cắm MCA có kích thước bé hơn, chân dày sít hơn, nhưng không chỉ về mặt vật lý, nó còn có khả năng hoạt động nhanh và mạnh hơn bus ISA. (Với 32-bit dữ liệu, 32 đường địa chỉ (khả năng địa chỉ hóa 4GB bộ nhớ), một kênh âm thanh, và khả năng VGA cài sẵn, bus MCA được dự định dùng cho việc tính toán mức cao.) ◼ Tốc độ truyền tải dữ liệu của bus này là 20MB/s nên có thể hoạt động với các BXL đến 100 MHz. ◼ Không tương thích ngược với bus AT và máy PC, bắt buộc người sử dụng phải mua card mở rộng tương thích với MCA. Chi phí tác quyền cao nên đã không được các hãng sản xuất máy nhái và phụ kiện PC hưởng ứng đối với bus MCA, và về sau IBM phải tự từ bỏ. 96
  94. c. Bus EISA ◼ bus mở rộng ISA nâng cao (Enhanced ISA), do liên minh gồm 9 công ty (AST Research, Compaq, Epson, Hewlett-Packard, NEC, Olivetti, Tandy, Wyse và Zenith Data System) cùng hợp tác xây dựng. ◼ chấp nhận cả 2 loại card chuẩn ISA và EISA. Nó cho phép truyền 8/16 bit qua card ISA và truyền 32 bit qua card EISA. Bus EISA còn có tính chủ động, nó cho phép các bộ phận như bộ điều khiển ổ cứng và card LAN có thể giao dịch trực tiếp với nhau, không cần thông qua chip CPU của máy tính. ◼ bus EISA tương thích ngược với các tiêu chuẩn bus ISA 16-bit và XT 8-bit trước đó. Chạy ở 8,33 MHz, bus EISA có thể truyền dữ liệu với tốc độ 33MB mỗi giây. Một phiên bản mới là EISA-2 có tốc độ truyền dữ liệu đến 132 MB mỗi giây. 97
  95. d. Bus mở rộng PCI ◼ bus mở rộng 32 hoặc 64 bit dựa vào kiểu thiết kế do Intel Corporation xây dựng năm 1992. Không phải là loại local bus thực sự, bus PCI (Peripheral Component Interface bus) là kiểu trung gian giữa bus dữ liệu ngoài của BXL và bus vào/ra chung của máy tính. ◼ bus PCI là một kiểu bus mở rộng hoàn chỉnh, có khả năng tương thích với chuẩn Plug and Play để người dùng máy PC có thể tự do cài đặt các card ngoại vi mà không phải bận tâm về những tranh chấp sẽ xảy ra. 98
  96. Plug and Play ◼ Plug and Play (cắm vào là chạy) máy tính phải có hệ điều hành thích hợp (Windows 95 trở lên), BIOS thích hợp (flash BIOS), và các card mở rộng thích hợp với chuẩn này. ◼ Với người dùng thì chuẩn này giúp họ có thể tự gắn thêm các thiết bị một cách dễ dàng mà không cần phải là chuyên gia máy tính. 99
  97. Bus PCMCIA ◼ Bus PCMCIA (personal Computer Manufacturer's Computer Interface Adapter). ◼ Đây là một tiêu chuẩn bus mở rộng, đầu tiên được xây dựng để cung cấp các card nhớ cho máy trợ giúp cá nhân (personal digital assitant), nhưng hiện nay được chấp nhận đối với hàng loạt các ngoại vi có dạng card, bao gồm modem, card âm thanh, và ngay cả ổ điã cứng. ◼ Mặc dù các khe mở rộng PCMCIA ngày càng gặp nhiều trong các máy tính để bàn, nhưng tiêu chuẩn này vẫn gắn bó chủ yếu với máy tính notebook. 100
  98. Bus nội bộ ◼ local bus đơn giản chỉ là một đoạn ghép nối trực tiếp bus dữ liệu trong của bộ VXL ra ngoài, nằm giữa BXL và tập hợp các chip phụ trợ của nó. ◼ cho phép hoạt động theo tốc độ của bus dữ liệu ngoài BXL 101
  99. Các thanh ghi đa năng (General ) ◼ Có nhiệm vụ chứa tham số cho mã lệnh, chứa dữ liệu cho một số phép toán, địa chỉ cổng khi làm việc với ngoại vi, ◼ Là các thanh ghi 16 bit (AX, BX, CX, DX) nhưng có khi lại dùng như các thanh ghi 8 bit (AH, AL, BH, BL, CH, CL, DH, DL) một cách độc lập. 102
  100. + AX (Accumulator): Chuyên dùng để chứa kết quả các thao tác lệnh, chứa số hiệu của hàm khi gọi ngắt (ah), + BX (Base): Thường dùng cho địa chỉ cơ sở, đôi khi cũng dùng chứa kết quả tạm trong các thao tác lập trình. + CX (Count): Chứa số lần lặp trong các lệnh lặp như Loop, hoặc số lần quay bit hay dịch bit trong các lệnh Rotate, Shift. + DX (Data): Là thanh ghi dữ liệu, chứa dữ liệu trong các phép nhân chia 16 bit, chứa địa chỉ cổng ngoại vi. 103
  101. Các thanh ghi đoạn (Segment) ◼ Khi dùng các thanh ghi 16 bit để quản lý địa chỉ các ô nhớ trong 1M bộ nhớ thì không đủ. ◼ → dùng 2 thanh ghi 16 bít quản lý địa chỉ các ô nhớ trong vùng nhớ 1M này theo cách sau: ◼ Người ta chia bộ nhớ thành các đoạn với độ rộng tối đa là 64K (=216 ô nhớ), ◼ trong mỗi đoạn dùng 1 thanh ghi khác để chứa các ô nhớ trong mỗi đoạn gọi là địa chỉ lệch. → Thanh ghi đoạn dùng để chứa các địa chỉ đoạn, 8086 có các đoạn sau: Mã lệnh, Dữ liệu, Stack 104
  102. ◼ Để quản lý các ô nhớ 8086 dùng cặp địa chỉ Segment:offset (đoạn: lệch). Địa chỉ này gọi là địa chỉ logic, còn địa chỉ vật lý của bộ nhớ được tính như sau: Địa chỉ vật lý = địa chỉ đoạn * 16 + địa chỉ lệch ◼ Trong thực tế để tính địa chỉ vật lý người ta dịch trái địa chỉ đoạn 4 bit sau đó cộng với địa chỉ lệch. 105
  103. Các thanh ghi đoạn ◼ + CS (Code Segment): Thanh ghi đoạn mã lệnh, kết hợp với IP tạo thành cặp CS:IP xác định địa chỉ mã lệnh trong bộ nhớ. ◼ Ví dụ: CS:IP = 1000 : 0100 là địa chỉ của đoạn CS=1000h, IP là địa chỉ lệch (Offset) có giá tại ô thứ 0100h trong đoạn CS đó. Như vậy địa chỉ vật lý của ô nhớ ở trên là 10100h. 106
  104. ◼ + DS (Data): Là thanh ghi đoạn dữ liệu kết hợp với SI, DI để xác định địa chỉ cho dữ liệu. ◼ + ES (Extra): Là thanh ghi đoạn dữ liệu mở rộng, tương tự DS. ◼ + SS (Stack): Thanh ghi đoạn ngăn xếp, thường kết hợp với SP để xác định địa chỉ đỉnh của Stack. 107
  105. Các thanh ghi con trỏ, chỉ mục + IP (Instruction Pointer): Thanh ghi con trỏ lệnh, luôn trỏ vào lệnh kế tiếp sẽ được thực hiện, kết hợp với CS. + BP (Base Pointer): Thanh ghi con trỏ cơ sở, thường kết hợp với SS. + SI (Source Index): Thanh ghi chỉ mục nguồn, kết hợp với DS. + DI (Destination Index): Thanh ghi chỉ mục đích, kết hợp với DS. 108
  106. Các chế độ địa chỉ của 8086 109
  107. Định vị thanh ghi ◼ Toán tử toàn là thanh ghi, các lệnh này thực hiện nhanh vì không cần truy cập bộ nhớ. ◼ Ví dụ: Mov ax,bx 110
  108. Định vị tức thì ◼ Dữ liệu được lưu ngay trong phần địa chỉ, không cần thiết phải thâm nhập vào bộ nhớ ◼ Ví dụ: Mov ax,50h 111
  109. Định vị trực tiếp ◼ Chuyển trực tiếp nội dung giữa thanh ghi và ô nhớ ◼ Ví dụ: Mov ah,[1234h]; chuyển nội dung ô nhớ có địa chỉ DS:[1234h] vào thanh ghi ah. 112
  110. Định vị gián tiếp thanh ghi ◼ Cũng chuyển trực tiếp nội dung giữa thanh ghi và ô nhớ, nhưng địa chỉ ô nhớ được chứa trong 1 thanh ghi nào đó. ◼ Ví dụ: mov ah,[bx]; chuyển nội dung ô nhớ có địa chỉ DS:[bx] vào thanh ghi ah. 113
  111. Định vị tương đối cơ sở ◼ Dùng những thanh ghi cơ sở BX và BP và giá trị dịch chuyển. ◼ Ví dụ: Mov ah, [bx] + 2; Chuyển nội dung DS:[bx + 2] vào ah ◼ Mov ah, [bx + 2] ; cùng kết quả. 114
  112. ◼ Định vị tương đối chỉ số: Giống định vị tương đối cơ sở những dùng những thanh ghi chỉ số DI, SI thay cho thanh ghi cơ sở. ◼ Ví dụ: Mov ah, [DI] + 2; Chuyển nội dung DS:[DI + 2] vào ah ◼ Mov ah,[DI + 2] ; cùng kết quả. ◼ Định vị tương đối chỉ số cơ sở: Kết hợp 2 kiểu định vị tương đối cơ sở và định vị tương đối chỉ số. ◼ Ví dụ: Mov ah, [bx][DI] + 2; Chuyển nội dung DS:[bx+ DI + 2] vào ah ◼ Mov ah, [bx+di+ 2] ; cùng kết quả. ◼ Khi dùng thanh ghi chỉ số, thanh ghi cơ sở, thanh ghi con trỏ thì các cặp địa chỉ Segment:offset sau là mặc định: CS:IP, DS: SI, DS:DI, DX:BX, ES:DI, SS:SP, SS:BP. 115