Bài tập kiến trúc máy tính chương 6 năm 2024

Kiến trúc máy tính cũng là một trong các môn cơ sở ngành quan trọng, môn học đề cập tới cơ sở về kiến trúc tập lệnh và tổ chức của máy tính, các vấn đề cơ bản trong thiết kế máy tính. Ngoài ra các bạn còn được học cơ bản về ngôn ngữ lập trình gần gũi nhất với máy tính đó là Assembly ( cụ thể là MIPS).

Bài tập kiến trúc máy tính chương 6 năm 2024

Học môn này cũng có khá nhiều lý thuyết nhưng khi đi thi chủ yếu là thi bài tập nên nếu học để thi các bạn có thể chú trọng hơn vào các bài tập được các thầy cho ở trên lớp. Giữa kì mỗi thầy sẽ có cách thi riêng, lớp thầy Tiến sẽ thi trắc nghiệm, lớp thầy Trung thì thi tự luận,...

Mình chia sẻ tới mọi người một số tài liệu, đề thi để mọi người xem và ôn tập môn kiến trúc máy tính.

Tài liệu môn Kiến trúc máy tính :

  • Slide bài giảng Kiến trúc máy tính - thầy Khánh : TẢI VỀ SLIDE
  • Sách tham khảo về kiến trúc máy tính : TẢI VỀ SÁCH THAM KHẢO
  • Tổng hợp bài tập môn kiến trúc máy tính : TẢI VỀ BÀI TẬP
  • Tổng hợp đề thi môn kiến trúc máy tính : TẢI VỀ ĐỀ THI TẢI VỀ ĐỀ CƯƠNG ÔN TẬP
  • Bảng MIPS_GREEN_SHEET : TẢI VỀ BẢNG MIPS MIPS32
  • Hướng dẫn sử dụng trình mô phỏng hợp ngữ MARS : TẢI VỀ HƯỚNG DẪN

Ví dụ thuật toán Booth :

` nhân X với số Y là 2 số 8 bit có dấu X = 1010 1100 Y = 1110 0111 0000 0000 0000 0000 +0000 0101 0110 0000 -0001 0101 1000 0000 -0000 0000 1010 1100 = -2^7 + 2^6 + 2^5 + 2^2 + 2^1 + 2^0 = -2^5 + 2^3 - 2^0

         A         Q      Q-1
      --------- --------- ---
AQ(Q-1) = 0000 0000 1110 0111 0 10 --> trừ

  • 1010 1100
          0101 0100 1110 0111 0      Dich phai so hoc
          0010 1010 0111 0011 1         11 > dich phai so hoc
          0001 0101 0011 1001 1      11 > dich phai so hoc
          0000 1010 1001 1100 1      01 --> cong M
  • 1010 1100 1011 0110 1001 1100 1 dich phai so hoc 1101 1011 0100 1110 0 00 > dich phai so hoc 1110 1101 1010 0111 0 10 > tru
  • 1010 1100 0100 0001 1010 0111 0 dich phai so hoc 0010 0000 1101 0011 1 11 > dich phai 0001 0000 0110 1001 1 11 > dich phai 0000 1000 0011 0100 1 --> thuat toan dung vi dich phai du 8 lan Ket qua: 0001 0000 0011 0100 = 2100

    X = 1010 1100 = -84 Y = 1110 0111 = -25

    `

Trong quá trình học tập có thể bạn sẽ được yêu cầu sử dụng các phần mềm như Logisim để thiết kế mạc mô phỏng hay MARS để mô phỏng hợp ngữ, nếu không tải được các bạn có thể làm theo hướng dẫn trong video sau :

Các bạn có thể tải phần mềm mô phỏng hợp ngữ tại đây : TẢI MARS 4.4.7

Chắc chắn sẽ có người thắc mắc là sao bây giờ vẫn còn đi học những cái này đúng không? Mình giải thích luôn thể vậy, chúng ta là những người kỹ sư, chúng ta không thể chỉ biết code, chúng ta không phải là những thợ code. Nhiệm vụ của người kỹ sư là phải đưa ra được giải pháp để giải quyết vấn đề, vì thế mặc dù rất ít dùng nhưng chúng ta vẫn phải học, phải biết những thứ cơ bản thiết yếu nhất. Chúng ta phải hiểu là những dòng lệnh chúng ta code sẽ được máy thực thi thế nào thì mới có thể đưa ra các giải pháp tối ưu cho những vấn đề cần giải quyết được... Chúc các bạn dành được A+ môn học này.

  • 1. 1 Kiến trúc máy tính Chương 6 HỆ THỐNG VÀO/RA
  • 2. 2 Nội dung chương 6  Tổng quan về hệ thống vào/ra  Các phương pháp địa chỉ hóa cổng vào/ra  Các phương pháp điều khiển vào/ra  Nối ghép thiết bị ngoại vi.
  • 3. 3 Tổng quan về Hệ thống vào/ra  Chức năng của hệ thống vào/ra: 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 • Mạch nối ghép vào/ra (Modul vào/ra)
  • 4. 4 Tổng quan về Hệ thống vào/ra Cache Bus chính BXL Bộ nhớ chính Mạch ĐK vào/ra Mạch ĐK vào/ra Mạch ĐK vào/ra Đĩa Đĩa Đồ họa Mạng Các ngắt
  • 5. 5 Tại sao cần Modul vào/ra?  Không thể nối trực tiếp các thiết bị ngoại với bus hệ thống, vì: • BXL không thể điều khiển được tất cả TBNV • Tốc độ trao đổi dữ liệu khác nhau • Khuôn dạng dữ liệu khác nhau • Tất cả có tốc độ chậm hơn BXL và RAM  Chức năng của Modul vào/ra: • Nối ghép với BXL và hệ thống nhớ • Nối ghép với một hoặc nhiều TBNV
  • 6. 6 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  Phân loại: • TBNV giao tiếp người-máy: màn hình, bàn phím, máy in, ... • TBNV giao tiếp máy-máy: các thiết bị theo dõi và kiểm tra • TBNV truyền thông: modem, card giao tiếp mạng (NIC)
  • 7. 7 Một số TBNV thông dụng
  • 8. 8 Sơ đồ khối của TBNV TÝn hiÖu §K tõ Modul vµo/ra TÝn hiÖu TT ®Õn Modul vµo/ra D÷ liÖu ®Õn vµ tõ Modul vµo/ra D÷ liÖu ®Õn vµ tõ m«i tr−êng bªn ngoµi Logic §K Bé ®Öm Bé chuyÓn ®æi tÝn hiÖu
  • 9. 9 Các thành phần cơ bản của TBNV  Bộ chuyển đổi tín hiệu (transducer): chuyển đổi dữ liệu từ dạng tín hiệu điện thành dạng năng lượng khác và ngược lại  Logic điều khiển (control logic): điều khiển hoạt động của TBNV đáp ứng theo yêu cầu từ Modul vào/ra  Bộ đệm (buffer): chứa dữ liệu tạm thời khi trao đổi dữ liệu giữa Modul vào/ra và TBNV
  • 10. 10 Modul vào/ra  Chức năng: • Điều khiển và định thời gian • Trao đổi thông tin với BXL • Trao đổi thông tin với TBNV • Bộ đệm dữ liệu • Phát hiện lỗi
  • 11. 11 Sơ đồ khối của Modul vào/ra C¸c ®−êng d÷ liÖu Nèi ghÐp víi TBNV C¸c ®−êng ®Þa chØ C¸c ®−êng ®iÒu khiÓn Thanh ghi d÷ liÖu Thanh ghi §K/tr¹ng th¸i Logic vµo/ra Logic giao diÖn víi TBNV Logic giao diÖn víi TBNV D÷ liÖu §iÒu khiÓn Tr¹ng th¸i D÷ liÖu §iÒu khiÓn Tr¹ng th¸i Nèi ghÐp víi bus hÖ thèng
  • 12. 12 Thành phần cơ bản của Modul vào/ra  Thanh ghi dữ liệu: đệm dữ liệu trong quá trình trao đổi  Các cổng vào/ra: kết nối với TBNV, mỗi cổng có một địa chỉ xác định  Thanh ghi điều khiển/trạng thái: lưu giữ thông tin điều khiển, trạng thái cho các cổng vào/ra  Logic điều khiển: điều khiển Modul vào/ra
  • 13. 13 Các PP địa chỉ hóa cổng vào/ra  Vào/ra tách biệt (isolated IO)  Vào/ra theo bản đồ bộ nhớ (memory mapped IO)
  • 14. 14 Vào/ra cách biệt  Đặc điểm: • Không gian địa chỉ cổng vào/ra nằm ngoài không gian địa chỉ bộ nhớ  Cách truy nhập: • Cần có tín hiệu phân biệt truy nhập cổng vào/ra hay truy nhập bộ nhớ • Sử dụng lệnh vào/ra chuyên dụng: IN, OUT.
  • 15. 15 Ví dụ đối với BXL 8088 BỘ NHỚ THIẾT BỊ VÀO THIẾT BỊ RA Lệnh: MOV IN OUT T/h ĐK: IO/M = 0 IO/M = 1 IO/M = 1 1 MB 00000H FFFFFH 64 KB 0000H FFFFH 64 KB 0000H FFFFH
  • 16. 16 Vào/ra theo bản đồ bộ nhớ  Đặc điểm: • Không gian địa chỉ cổng vào/ra nằm trong không gian địa chỉ bộ nhớ  Cách truy nhập: • Dùng chung tín hiệu như truy nhập bộ nhớ • Dùng chung lệnh trao đổi dữ liệu với bộ nhớ
  • 17. 17 Ví dụ đối với BXL 8088  Lệnh và tín hiệu điều khiển chung cho cả hai: MOV IO/M = 0 00000H FFFFFH VÀO/RA BỘ NHỚ
  • 18. 18 Các phương pháp điều khiển vào/ra  Vào/ra bằng chương trình (Programmed IO)  Vào/ra bằng ngắt (Interrupt Driven IO)  Vào/ra bằng DMA (Direct Memory Access)
  • 19. 19 Vào/ra bằng chương trình  Nguyên tắc chung: • Sử dụng lệnh vào/ra trong chương trình để trao đổi dữ liệu với cổng vào/ra • Khi BXL thực hiện chương trình, gặp lệnh vào/ra thì BXL điều khiển trao đổi dữ liệu với thiết bị ngoại vi
  • 20. 20 Hoạt động vào/ra bằng chương trình  BXL yêu cầu thao tác vào/ra  Modul vào/ra thực hiện thao tác  Modul vào/ra thiết lập các bit trạng thái  BXL kiểm tra các bit trạng thái: • Nếu chưa sẵn sàng thì quay lại kiểm tra • Nếu đã sẵn sàng thì tiến hành trao đổi dữ liệu với modul vào ra
  • 21. 21 Lưu đồ hoạt động Đọc trạng thái của TBNV TBNV sẵn sàng? Trao đổi DL với TBNV Sai Đúng
  • 22. 22 Các lệnh vào/ra  BXL phát ra địa chỉ • Xác định Modul vào/ra (và thiết bị nếu một Modul chứa nhiều hơn 1 thiết bị)  BXL phát ra lệnh: • Điều khiển: yêu cầu Modul làm việc gì  VD: điều khiển quay đĩa • Kiểm tra: kiểm tra trạng thái  VD: nguồn? lỗi? • Đọc/ghi  Modul truyền DL qua bộ đệm từ/tới thiết bị
  • 23. 23 Đặc điểm  BXL trực tiếp điều khiển vào/ra • Nhận biết thông tin trạng thái từ TBNV • Phát tín hiệu điều khiển Read/Write • Trao đổi dữ liệu  BXL chờ đến khi Modul vào/ra hoàn thành thao tác  Tốn thời gian của BXL
  • 24. 24 Phân loại ngắt  Ngắt cứng (Hard Interrupt): yêu cầu ngắt do mạch phần cứng bên ngoài gửi đến • Ngắt cứng NMI (None Maskable Interrupt): có yêu cầu ngắt thì bắt buộc phải ngắt  Ví dụ: Có sự cố nguồn; lỗi bộ nhớ • Ngắt cứng MI (Maskable Interrupt): có yêu cầu ngắt thì có hai khả năng xẩy ra:  Được ngắt nếu ngắt đó ở trạng thái cho phép  Không được ngắt nếu ngắt đó ở trạng thái bị cấm Ngắt cứng MI dùng để trao đổi dữ liệu với TBNV
  • 25. 25 Phân loại ngắt  Ngắt mềm (Soft Interrupt): Yêu cầu ngắt do lệnh gọi ngắt nằm trong chương trình sinh ra  Ngắt ngoại lệ (Exception Interrupt): là các ngắt sinh ra do lỗi xuất hiện trong quá trình thực hiện chương trình • Ví dụ:  Gặp lệnh chia cho 0  Lệnh sai cú pháp  tràn số  Nhảy đến các điều kiện không tồn tại
  • 26. 26 Nguyên tắc hoạt động  BXL không mất thời gian chờ đợi  BXL không phải kiểm tra trạng thái sẵn sàng của TBNV  Modul vào/ra ngắt BXL khi nó ở trạng thái sẵn sàng
  • 27. 27 Hoạt động Mạch điều khiển thiết bị phát ra ngắt BXL thực hiện xong lệnh hiện tại BXL phát tín hiệu chấp nhận ngắt BXL cất nội dung Thanh ghi cờ và Bộ đếm CT vào Stack BXL nạp vào Bộ đếm CT giá trị địa chỉ mới lấy từ ngắt vào BXL cất các thông tin còn lại của trạng thái xử lý Thực hiện ngắt Khôi phục thông tin trạng thái Khôi phục Thanh ghi cờ và Bộ đếm CT Phầncứng Phầnmềm
  • 28. 28 Đặc điểm  Có sự kết hợp giữa phần cứng và phần mềm • Phần cứng: yêu cầu ngắt BXL • Phần mềm: trao đổi dữ liệu  BXL trực tiếp điều khiển vào/ra  BXL không phải đợi Modul vào/ra  hiệu quả BXL sử dụng tốt hơn
  • 29. 29 Các PP xác định modul ngắt  Nhiều đường yêu cầu ngắt (Different line for each module)  Kiểm tra vòng bằng phần mềm (Software poll)  Kiểm tra vòng bằng phần cứng (Daisy Chain or Hardware poll)  Chiếm bus (Bus Master)
  • 30. 30 PP1: Nhiều đường yêu cầu ngắt  BXL phải có các đường yêu cầu ngắt khác nhau cho mỗi modul vào/ra  Hạn chế số lượng thiết bị Modul vào ra Modul vào ra Modul vào ra Modul vào ra BXL Thanhghingắt INTR 0 INTR 1 INTR 2 INTR 3
  • 31. 31 PP2: Kiểm tra vòng bằng phần mềm  BXL thực hiện phần mềm kiểm tra từng Modul  Tốc độ chậm Modul vào ra Modul vào ra Modul vào ra Modul vào ra BXL Cờ yêu cầu ngắt INTR
  • 32. 32 PP3: Kiểm tra vòng bằng phần cứng  BXL phát tín hiệu chấp nhận ngắt đến chuỗi các Modul vào/ra  Modul sẽ đáp ứng bằng cách đặt vectơ ngắt lên bus dữ liệu  BXL sử dụng vectơ để xác định CTC điều khiển ngắt Modul vào ra Modul vào ra Modul vào ra Modul vào ra BXL Cờ yêu cầu ngắt INTR Bus dữ liệu INTA
  • 33. 33 PP4: Chiếm bus  Modul vào/ra cần chiếm bus trước khi nó phát tín hiệu yêu cầu ngắt  Ví dụ: • PCI • SCSI
  • 34. 34 Xử lý với nhiều ngắt  Các ngắt bị cấm • BXL sẽ bỏ qua các ngắt khác trong khi đang thực hiện một ngắt • Các ngắt phải chờ và được kiểm tra sau khi ngắt đang phục vụ được xử lý xong • Các ngắt được thực hiện tuần tự  Định nghĩa ưu tiên ngắt: • Ngắt có mức ưu tiên thấp hơn thì có thể bị ngắt bởi ngắt có ưu tiên cao hơn • Khi ngắt có mức ưu tiên cao hơn được xử lý xong thì BXL quay về ngắt trước đó
  • 35. 35 Ngắt tuần tự
  • 36. 36 Ngắt lồng nhau
  • 37. 37 Nhiều ngắt xảy ra đồng thời  Nếu có nhiều yêu cầu ngắt cùng một lúc gửi đến BXL thì BXL giải quyết thế nào?  Nhờ sự can thiệp của Mạch điều khiển ngắt lập trình được (PIC - Programmable Interrupt Controller)
  • 38. 38 PIC  PIC có nhiều đường vào yêu cầu ngắt  PIC chọn ngắt có ưu tiên cao nhất (không bị cấm) gửi tới BXL Modul vào ra Modul vào ra Modul vào ra Modul vào ra PIC INTR 0 INTR 1 INTR 2 INTR 3 BXL Bus DL INTR INTA
  • 39. 39 Ví dụ: PIC 8259A
  • 40. 40 Vào/ra bằng DMA  Vào ra bằng chương trình và vào/ra bằng ngắt do BXL điều khiển • Tốc độ truyền bị hạn chế • Chiếm thời gian của BXL  Để khắc phục, dùng DMA • Thêm modul phần cứng trên bus: DMAC (DMA Controller) • DMAC điều khiển vào/ra không qua BXL
  • 41. 41 Sơ đồ cấu trúc của DMAC
  • 42. 42 Các thành phần của DMAC  Thanh ghi dữ liệu: chứa dữ liệu cần trao đổi  Thanh ghi địa chỉ: chứa địa chỉ ngăn nhớ dữ liệu  Bộ đếm dữ liệu: chứa số từ dữ liệu cần trao đổi  Logic điều khiển: điều khiển hoạt động của DMAC
  • 43. 43 Sơ đồ DMACBXL Bộ nhớ TBNV HRQ DACK DREQ HLDA Bus địa chỉ Bus dữ liệu Bus điều khiển
  • 44. 44 Quá trình hoạt động  B1: TBNV gửi tín hiệu DREQ (Dma REQuest) tới DMAC  B2: DMAC gửi tín hiệu HRQ (Hold ReQuest) để xin dùng các đường bus  B3: BXL sẽ thực hiện xong chu kỳ bus hiện tại và trả lời đồng ý bằng việc gửi tín hiệu HLDA (HoLD Acknowledge) tới DMAC  B4: DMAC gửi tín hiệu DACK (Dma ACKnowledge) tới TBNV báo chuẩn bị truyền dữ liệu  B5: DMAC thực hiện điều khiển quá trình truyền dữ liệu giữa bộ nhớ và TBNV  B6: DMAC thực hiện xong công việc, nó bỏ kích hoạt tín hiệu HRQ. Hệ thống trở lại bình thường.
  • 45. 45 Các kiểu thực hiện DMA  DMA truyền theo khối (block-transfer DMA): DMAC sử dụng bus để truyền cả khối dữ liệu.  DMA ăn trộm chu kỳ (cycle stealing DMA): DMAC ép buộc BXL treo tạm thời từng chu kỳ để thực hiện truyền một byte dữ liệu.  DMA trong suốt (transparent DMA): DMAC nhận biết những chu kỳ nào BXL không dùng bus thì lấy bus để tranh thủ truyền một byte dữ liệu.
  • 46. 46 Cấu hình DMA: kiểu 1  Bus đơn, bộ điều khiển DMA riêng rẽ  Mỗi lần truyền, DMAC sử dụng bus 2 lần: • Từ Modul vào/ra đến DMAC • Từ DMAC đến bộ nhớ  BXL bị treo bus 2 lần
  • 47. 47 Cấu hình DMA: kiểu 2  Bus đơn, bộ điều khiển DMA tích hợp  DMAC điều khiển một hoặc vài Modul vào/ra  Mỗi lần truyền, chỉ sử dụng bus 1 lần • Từ DMAC tới bộ nhớ  BXL chỉ bị treo bus 1 lần
  • 48. 48 Cấu hình DMA: kiểu 3  Bus vào/ra tách rời, hỗ trợ tất cả các thiết bị cho phép DMA  Mỗi lần truyền chỉ dùng bus 1 lần: • Từ DMA tới bộ nhớ  BXL cũng chỉ bị treo bus 1 lần
  • 49. 49 Nối ghép thiết bị ngoại vi  Các kiểu nối ghép vào/ra: • Nối ghép song song • Nối ghép nối tiếp  Các cấu hình nối ghép: • Điểm tới điểm • Điểm tới đa điểm
  • 50. 50 Nối ghép song song  Truyền nhiều bit song song  Tốc độ nhanh  Cần nhiều đường truyền dữ liệu Modul vào/ra song song Đến bus hệ thống Đến thiết bị ngoại vi
  • 51. 51 Nối ghép nối tiếp  Truyền lần lượt từng bit  Cần có bộ chuyển đổi song song thành nối tiếp và ngược lại  Tốc dộ chậm  Cần ít đường truyền dữ liệu Modul vào/ra nối tiếp Đến bus hệ thôn g Đến thiết bị ngoạ i vi
  • 52. 52 Các cấu hình nối ghép  Điểm tới điểm (point-to-point): • Thông qua một cổng vào/ra, nối ghép với một TBNV • Ví dụ: cổng chuột, bàn phím, ...  Điểm tới đa điểm (point-to-multipoint): • Thông qua một cổng vào/ra, nối ghép được với nhiều TBNV • Ví dụ:  SCSI: 7 hoặc 15 thiết bị  USB: 127 thiết bị  IEEE 1394 FireWire: 63 thiết bị
  • 53. 53 Các cổng vào-ra thông dụng trên PC  Các cổng PS/2: nối ghép bàn phím và chuột  Cổng nối ghép màn hình  Cổng LPT (Line Printer): nối ghép với máy in, là cổng song song (Parallel Port) – 25 chân  Cổng COM (Communication): nối ghép với modem, chuột, là cổng nối tiếp (Serial Port) – 9 chân hoặc 25 chân  Cổng USB (Universal Serial Bus): Cổng nối tiếp đa năng, cho phép nối ghép tối đa 127 thiết bị, nhờ các USB Hub
  • 54. 54 Kiến trúc máy tính HẾT CHƯƠNG 6