Giáo trình Kiến trúc máy tính - Chương 4: Các thiết bị vào/ra

pdf 68 trang huongle 2740
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Kiến trúc máy tính - Chương 4: Các thiết bị vào/ra", để 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:

  • pdfgiao_trinh_kien_truc_may_tinh_chuong_4_cac_thiet_bi_vaora.pdf

Nội dung text: Giáo trình Kiến trúc máy tính - Chương 4: Các thiết bị vào/ra

  1. Nội dung 1. Các hệ thống vào/ra 2. Thi ếtb ị lư utrữ ph ụ 4/24/2008 2
  2. 1.Các hệ thống vào/ra 1. Tổng quan 2. Các thiế tbị vào/ra 3. Giao di ệnvào/ra ứng dụng 4. D ịch vụ vào/ra 5. Chuy ển đổ iyêucầu vào/ra sang các thao tác phầncứ ng 6. Các lu ồng (stream) 7. Hi ệună ng 4/24/2008 3
  3. 1.1. Tổng quan „ Quảnlýthiếtbị: thành phầncơ bảncủaHDH „ Nhiềuloạithiếtbị ‰ Æ nhiềuphương pháp quảnlýthiếtbị ‰ Các hệ thống con vào/ra (I/O subsystems) tách biệtsự phứctạpcủacáchệ vào/ra với các thành phần khác của nhân „ Hai xu hướng phát triển ‰ Chuẩn hóa ‰ Đadạng loạithiếtbị „ Kếthợphaixuhướng bằng cách ‰ Các thành phầnphầncứng cơ bản: cổng, bus, Bộđiều khiểnthiếtbị ‰ Các trình điềukhiểnthiếtbị 4/24/2008 4
  4. 1.2. Các thiếtbị vào/ra „ Các loạithiếtbị vào/ra: phong phú, đadạng „ Mộtsố khái niệmcơ bản ‰ Port ‰ Bus (daisy chain) ‰ Controller (host adapter) „ Gửidữ liệu thông qua các lệnh vào/ra „ Gửidữ liệu thông qua phương pháp ánh xạ bộ nhớ (memory – mapped) 4/24/2008 5
  5. CấutrúcBus điểnhìnhchoPC 4/24/2008 6
  6. Địachỉ củamộtsố cổng vào/ra trên PC (partial) 4/24/2008 7
  7. Thanh ghi củathiếtbị vào ra „ Thông thường, mộtcổng Vào/Ra bao gồm 4 thanh ghi „ Thanh ghi trạng thái: hoàn thành, số byte sẵnsàng „ Thanh ghi điềukhiển: thiếtlậpbởi (host) và đọcbởi bộđiềukhiển ‰ Xác định công việcbộđiềukhiểnphảilàm „ Thanh ghi dữ liệuvào: bộđiềukhiểnghi, host đọc „ Thanh ghi dữ liệura: host ghi và bộđiềukhiển đưa ra thiếtbị 4/24/2008 8
  8. Các giao thứcVào/Ra „ Thămdò (Polling) –Host kiểmtrađều đặn để xem liệuthiếtbị có sẵn sàng „ Điềukhi ể nbởingắt (Interrupt-driven) –Bộđiềukhiểnngắthost khinósẵn sàng „ Truy cậpbộ nhớ trựctiếp-Direct Memory Access (DMA) –Host thiếtlậpmộtkhốichuyển(large transfer), bộđiềukhiểnngắt khi nó hoàn thành 4/24/2008 9
  9. ThựcthiThămdò „ Cần các bit bắt tay (handshaking bits) „ Bộđiềukhiểnthiếtlập BUSY bit – BUSY==0 sẵnsàngnhậnlệnh mới – BUSY==1 đang bận „ Host thiếtlập CMD-RDY bit – CMD-RDY==0 không có việcchoBộđiềukhiển làm – CMD-RDY==1 có việcchoBộđiềukhiểnlàm 4/24/2008 10
  10. ThựcthiThămdò 4/24/2008 11
  11. Thămdò „ Nếuthiếtbị quá chậm, Bên chủ sẽ tốnnhiều thời gian để kiểmtraBUSY bit để xem nó có thể làm việc „ Nếuthiếtbị quá nhanh, Bộđiềukhiểncóthể tràn bộđệm DATA_IN trướckhiBênchủ có cơ hộikiểmtravàlấydữ liệu „ Giải pháp: Vào/Ra được điềukhiểnbởingắt (interrupt-driven I/O) 4/24/2008 12
  12. Vào/Ra điềukhiểnbởingắt 4/24/2008 13
  13. Bảng vector sự kiệncủa Intel Pentium 4/24/2008 14
  14. Vào/Ra được điềukhiểnbởingắt „ Bus có mộtdâyyêucầungắt (interrupt request-IRQ) „ CPU lưu ý các dây IRQ sau mỗilệnh „ NếuIRQ được đưara: –Trạng thái củachương trình đang chạy đượclưu lại –Nhẩytớidịch vụ xử lý ngắt(ISR) –Dịch vụ ngắtxử lý ng ắt –Dịch vụ ng ắt ISR hoàn thành –Trạng thái củach ương trình bị ngắt đượcphụchồi 4/24/2008 15
  15. Điều khiểnbởingắt „ Khái niệmngắt đượcsử dụng cho: –Cácthiếtbị vào ra – Các ngoạilệ (chia 0, ) –Lỗ i trang trong h ệ thố ng bộ nhớảo –Lờigọ ihệ th ống 4/24/2008 16
  16. Khuyết điểmcủa Vào/Ra điều khiểnbởi ngắtvàth ămdò „ Vào: ‰ CPU yêu cầudữ liệu ‰ CPU chuyểndữ liệutừ thiếtbị vào bộ nhớ „ Ra: ‰ CPU chuyểndữ liệutừ bộ nhớ tớithiếtbị ‰ CPU thămdòviệc hoàn thành hoặcchờ ngắt hoàn thành Vì sao cầnsử dụng CPU để chuyểndữ liệugiữabộ nhớ và các thiế tbị?? Không cầ nn ếus ử dụng DMA! 4/24/2008 17
  17. Truy cậpbộ nhớ trựctiếp Direct Memory Access (DMA) „ Đượcsử dụng để tránh dùng CPU trong khi chuyểndữ liệulớn „ Yêu cầucóbộđiểukhiển DMA „ Việcchuyểndữ liệutrựctiếpgiữathiếtbị Vào/Ra và bộ nhớ, không cần thông qua CPU 4/24/2008 18
  18. 6 bướcthựchiện trong chuyển theo DMA 4/24/2008 19
  19. 1.3. Giao diệnvào/raứng dụng „ Các lờigọihệ thống đóng gói hoạt động thiếtbị trong các lớptổng quát „ Trình điềukhiểnthiếtbị che dấusự khác biệtgiữa các bộđiềukhiềnthiếtbị (nhân HDH không thấy đượcsự khác biệt đó) „ Mộtsố loạithiếtbị ‰ Character-stream hay block ‰ Sequential hay random-access ‰ Sharable hay dedicated ‰ Speed of operation ‰ read-write, read only, or write only 4/24/2008 20
  20. Cấu trúc vào/ra trong nhân 4/24/2008 21
  21. Đặc điểmcủacácthiếtbị vào/ra 4/24/2008 22
  22. Các thiếtbị vào/ra theo kí tự hoặc theo khối „ Các thiếtbị vào/ra theo khốinhư các đĩa cứng ‰ Các lệnh vào/ra gồm read, write hay seek ‰ Truy nhập theo dạng lệnh vào/ra ‰ Truy nhậpfile ánhxạ bộ nhớ „ Các thiếtbị vào/ra theo kí tự ‰ Các câu lệnh bao gồm put, get ‰ Các thư việnhỗ trợ dịch vụ lưubộđệmvàchếđộ chỉnh sửa(vídụ: nhập backspace Æ xóa mộtkí tự khỏiluồng dữ liệu vào) 4/24/2008 23
  23. Các đồng hồ và thờigian „ Cho biếtthời gian hiệntại, bộđếmthời gian „ Bộđếmlậptrìnhđượcsử dụng cho đánh giá thời gian, ngắt định kì „ ioctl (on UNIX) thựchiện đồng hồ hoặcbộ đếmthời gian 4/24/2008 24
  24. Vào/ra phong tỏa và không phong tỏa „ Phong tỏa –tiếntrìnhbị treo cho đến khi hoàn tấtvàora ‰ Dễ hiểuvàsử dụng ‰ Không hiệuquả vớimộtsố nhu cầungười dùng „ Không phong tỏa ‰ Thựchiện thông qua đaluồng ‰ Trả về nhanh với tham số trả về là số bytes đọchoặc đãghi „ Không đồng bộ -Tiếntrìnhthựchiện khi I/O đang thựchiện ‰ Khó dùng ‰ Các hệ thống con vào/ra thông báo vớitiếntrìnhkhithựchiện vào/ra xong 4/24/2008 25
  25. Hai phương pháp vào/ra 4/24/2008 26
  26. 1.4. Hệ thống con vào/ra „ Lậplịch ‰ Sắpxếpthứ tự vào ra thông qua hàng đợithiếtbị ‰ Cố gắng sắpxếpphụ vụ các yêu cầuvào/ramột cách công bằng „ Lưutrữ bộđệm–lưudữ liệu trong bộ nhớ trong khi đang chuyểndữ liệugiữacácthiết bị trong hệ thống, nhằm ‰ Khắcphụcsự khác biệtvề tốc độ ‰ Khắckhụcsự khác biệtvế cách thứctruyềnfile 4/24/2008 27
  27. Bảng trạng thái thiếtbị 4/24/2008 28
  28. Hệ thống Sun Enterprise 6000 – Tốc độ truyền 4/24/2008 29
  29. Hệ thống con vào/ra (tt) „ Caching ‰ Lưulặptạithiếtbị lưutrữ nhanh hơnnhằmtăng hiệunăng truy cậpdư liệu „ Spooling ‰ Bộđệmlưutrữ output cho thiếtbị, không cho phép interleaved „ Ví dụ: máy in, 4/24/2008 30
  30. Các cấutrúcdữ liệumức nhân „ Nhân lưugiữ thông tin trạng thái cho các thành phần vào/ra ‰ Bảng file mở, các kếtnốimạng, trạng thái thiếtbị vào/ra theo kí tự „ Nhiềucấutrúcdữ liệuphứctạp để lưuvếtcácbộ đệm, phân phốibộ nhớ, các khối“dirty”(đang sửa đổi) „ Các phương pháp hướng đốitượng và truyền thông báo để cài đặt vào/ra 4/24/2008 31
  31. Cấutrúcvào/ramức nhân trong UNIX I/O 4/24/2008 32
  32. 1.5. Chuyển đổiyêucầu vào/ra sang các thao tác phầnc ứng „ Xem xét việc đọcmột file từđĩa(củamộttiến trình nào đó): ‰ Xác định thiếtbị lưutrữ file ‰ Dịch tên sang dạng biểudiễntrênthiếtbị ‰ Đọcdữ liệutừđĩavàobộđệm ‰ Đánh dấudữ liệusẵnsàngđốivớitiếntrình ‰ Chuyển điềukhiển đếntiếntrình 4/24/2008 33
  33. Chu kì củamộtyêucầuvào/ra 4/24/2008 34
  34. 1.6. Các luồng „ STREAM (luồng) – kênh giao tiếp full-duplex giữamộttiếntrình mứcngười dùng và mộtthiếtbị trong hệ thống Unix „ MộtLUỒNG bao gồm: - Giao diệnluồng ởđầutiến trình người dùng - Các giao diện đầuthiếtbị - Không hay nhiều modules luồng giữa chúng. „ Mỗi module bao gồmmột hàng đợi đọcvàmột hàng đợighi „ Sử dụng truyền thông báo để giao tiếpgiữa các hàng đợi 4/24/2008 35
  35. Cấu trúc các luồng (streams) 4/24/2008 36
  36. 1.7. Hiệunăng „ Vào/ra là nhân tố quan trọng ảnh hưởng đến hiệunăng củahệ thống: ‰ Đòi hỏi CPU thựcthitrìnhđiềukhiểnthiếtbị, các đoạnmãthực thi vào/ra trong nhân ‰ Chuyển đổingữ cảnh do ngắt ‰ Sao chép dữ liệu ‰ Tắcnghẽntrênmạng đốivới các giao tiếptrên mạng 4/24/2008 37
  37. Các giao tiếp computer-computer 4/24/2008 38
  38. Tăng hiệunăng „ Giảmsố lượng chuyển đổingữ cảnh „ Giảm dung lượng sao chép „ Giảmngắtbằng cách truyền theo các khối lớn, các bộđiềukhiển thông minh „ Sử dụng DMA „ Cân bằng giữaCPU, bộ nhớ, bus và hiệu năng vào ra để cho thông lượng lớnnhất 4/24/2008 39
  39. Device-Functionality Progression 4/24/2008 40
  40. 2. Thiếtbị lưutrữ phụ „ Thiếtbị lưutrữ „ Lậplịchvàoravới đĩa „ Lưutrữ tin cậy 4/24/2008 41
  41. Đĩatừ (Magnetic disks) „ Được dùng để cung cấplưutrữ thứ 2 cho các máy tính hiện đại „ Tốc độ truyền (Transfer rate) là tốc độ truyềndữ liệugiữa thiếtbị và máy tính „ Thờigianxácđịnh vị trí Positioning time (random- access time) là thờigianđể di chuyển disk arm tới cylinder yêu cầu(seek time) và thờigianđể sector yêu cầu quay tới đầu đọcgọilà(rotational latency) „ Host controller trong máy tính sử dụng đường bus để giao tiếpvới disk controller đượcthiếtlập trong thiếtbị 4/24/2008 42
  42. Dịch chuyển đầu đĩa 4/24/2008 43
  43. Đĩatừ „ Các đĩacóthể di dời được (removable) „ Đĩagắnvới máy tính thông qua bus Vào/Ra (I/O bus) ‰ Ví dụ: EIDE, ATA, SATA, USB, Fibre Channel, SCSI 4/24/2008 44
  44. Băng từ (Magnetic tape) ‰ Là môi trường lưutrữ thường dùng trước đây ‰ Có thể dùng tương đối lâu dài, và lưutrữ lượng lớn thông tin ‰ Thờigiantruycậpchậm ‰ Chậnhơnkhoảng 1000 lầnso với đĩa ‰ Đượcsử dụng chủ yếuchosaolưuvàlưudữ liệu không đượcsử dụng thường xuyên 4/24/2008 45
  45. Cấutrúcđĩa „ Ổđĩa đượccoinhư mộtmảng lớn 1 chiều chứacáckhối logic (logical blocks). Khối logic là đơnvị truyềnnhỏ nhất „ Mảng 1 chiều này được ánh xạ vào các sector của đĩatuầntự ‰ Sector 0 là sector đầutiêncủa track đầutiêntrên cylinder ngoài cùng. ‰ Ánh xạ tiếptục theo track đó, sau đó là các track còn lạicủa cylinder đó, và sau đó là các cylinder còn lạitừ ngoài vào trong. 4/24/2008 46
  46. Ví dụ: gắn đĩa 4/24/2008 47
  47. SCSI „ SCSI sử dụng phổ biếncho đĩacứng, nhưng có thể nốitớicácthiếtbị khác như scanners, printers „ SCSI sử dụng phổ biến trong các trạmlàm việchiệunăng cao, servers, „ Desktop computers notebooks thường sử dụng ATA/IDE 4/24/2008 48
  48. Gắn đĩa (Disk Attachment) „ SCSI bản thân cũng là 1 bus. Có thể tới 16 thiếtbị trên cùng 1 cap „ FC là kiếntrúctuầntự (serial) tốc độ cao ‰ Có thể là bộ chuyểnmạch tốc độ cao với 24-bit không gian địachỉ –làcơ bảncủamạng lưutrữ (storage area networks-SANs) ởđó nhiều đơn vị chủ gắnvới nhiều đơnvị lưutrữ 4/24/2008 49
  49. SCSI 4/24/2008 50
  50. Lưutrữ gắnvớimạng (Network-Attached Storage-NAS) „ Lưutrữ gắnvớimạng (NAS) đượctruycập thông qua mạng thay vì kếtnốicụcbộ (ví dụ bus) „ Các giao thứcphổ biến: NFS, CIFS và iSCSI. Được cài đặt thông qua RPC giữa client và thiếtbị 4/24/2008 51
  51. Mạng lưutrữ (SAN) „ Sử dụng phổ biếntrongmôitrường lưutrữ lớn(đang trở nên phổ biến) 4/24/2008 52
  52. Lậplịch cho đĩa (Disk Scheduling) „ HĐH có trách nhiệmsử dụng phầncứng hiệu quả „ Thời gian truy cậpgồm 2 thành phần: ‰ Thờigiantìmkiếm (Seek time) là thờigianđể đĩa di chuyểncácđầu đĩatới cylinder chứasector yêu cầu ‰ Độ trễ quay (Rotational latency) là thờigianthêm để đợi đĩa quay tớisector yêucầutới đầu đĩa „ Tốithiểuthời gian tìm kiếm „ Thời gian tìm kiếm ≈ khoảng cách (distance) 4/24/2008 53
  53. Lậplịch cho đĩa „ Tồntạivàithuật toán để lậplịch cho các yêu cầu Vào/Ra với đĩa „ Sử dụng ví dụ sau để đánh giá các thuật toán: ‰ Hàng đợiyêucầu: 98, 183, 37, 122, 14, 124, 65, 67 ‰ Đầu đọc: 53 4/24/2008 54
  54. FCFS Tổng số di chuyển đầu đọc: 640 cylinder 4/24/2008 55
  55. SSTF „ Chọnyêucầuvớikhoảng cách tốithiểuvớivị trí đầu đọchiệntại „ Có thể bắtmộtsố yêu cầuphảichờđợi quá lâu (giống như lậplịch SJF) „ Minh họacầntổng số di chuyển đầu đọc: 236 cylinders. 4/24/2008 56
  56. SSTF 4/24/2008 57
  57. SCAN „ Tay đĩabắt đầutạimột điểmkết thúc của đĩa và di chuyểnhướng tới điểmkết thúc kia. Khi đến điểmkết thúc, đầu đọcdichuyểnngược lại „ Còn gọilàthuật toán thanh máy (elevator algorithm) „ Minh họacầntổng số di chuyển đầu đọc208 cylinder. 4/24/2008 58
  58. SCAN (Cont.) 4/24/2008 59
  59. C-SCAN „ Đầu đọccũng di chuyểntừ một điểmkết thúc tới điểmkianhưng khi tới điểmkết thúc kia, nó lậptứcdichuyểnvềđiểmbắt đầumà không phụcvụ bấtcứ yêu cầu nào trên đường quay về „ Cung cấpthời gian chờ giống nhau hơnso vớiSCAN 4/24/2008 60
  60. C-SCAN (Cont.) 4/24/2008 61
  61. C-LOOK „ Là phiên bảncủaC-SCAN „ Tay đĩachỉ di chuyểntớiyêucầucuối cùng trên mỗihướng sau đó quay lại ngay, mà không đitới điểmcuốicủa đĩa 4/24/2008 62
  62. C-LOOK 4/24/2008 63
  63. Lựachọnthuậttoán „ SSTF là phổ biếnvớiyêucầutự nhiên „ SCAN và C-SCAN tốthơn cho những hệ thống có tảilớntrênđĩa „ Thuậttoánlậplịch nên đượcviếtnhư một module riêng rẽ của HĐH, cho phép nó thay thế các thuậttoánkhácnếucầnthiết 4/24/2008 64
  64. CấutrúcRAID (redundant array of independent disks) „ Cảitiến trong kỹ thuậtsử dụng đĩa liên quan đếnsử dụng nhiều đĩa làm việccộng tác „ Sử dụng một nhóm các đĩanhư là một đơnvị lưutrữ duy nhất. Một file ghi được phân bố trên nhiều đĩa. Cảitiếntốc độ „ RAID cảitiếnsự tin cậycủahệ thống bằng cách lưutrữ dữ liệudư thừa „ RAID hầuhếtsử dụng đĩacứng SCSI 4/24/2008 65
  65. RAID (0 + 1) và (1 + 0) 4/24/2008 66
  66. Lưutrữổn định (Stable-Storage Implementation) „ Tạobản sao thông tin (Replicate information) trên nhiềuhơn 1 thiếtbị lưutrữđộclập „ Cậpnhật thông tin đượcquảnlýđể đảmbảo rằng có thể phụchồidữ liệuvững chắcsau bấtkỳ thấtbại trong chuyểndữ liệu 4/24/2008 67
  67. Thiếtbị lưutrữ thứ 3 „ Giá rẻ là đặctínhcủathiếtbị lưutrữ „ Lưutrữđaphương tiệncóthể dời được Ví dụ phổ biến là: CD-ROM, DVD và các loại khác 4/24/2008 68