Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 101 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
101
Dung lượng
2,8 MB
Nội dung
TRƢỜNG ĐẠI HỌC AN GIANG KHOA KỸ THUẬT – CÔNG NGHỆ – MÔI TRƢỜNG Tài liệu giảng dạy KIẾN TRÚC MÁY TÍNH ThS Nguyễn Văn Đơng An Giang, 02/2016 Tài liệu giảng dạy “Kiến trúc máy tính”, tác giả Nguyễn Văn Đông, công tác Khoa Kỹ thuật – Công nghệ – Môi trường thực Tác giả báo cáo nội dung Hội đồng Khoa học đào tạo Khoa thông qua ngày 26/2/2016, Hội đồng Khoa học Đào tạo trường Đại học An Giang thông qua ngày Tác giả biên soạn Nguyễn Văn Đông Trƣởng đơn vị Trƣởng môn Hiệu trƣởng An Giang, 02-2016 LỜI MỞ ĐẦU Trong hệ thống kiến thức trang bị cho sinh viên chuyên ngành công nghệ thông tin kỹ thuật phần mềm, tài liệu Kiến trúc máy tính góp phần cung cấp nội dung chung nguyên lý hoạt động tổ chức hệ thống máy tính Từ tiếp cận mơ hình kiến trúc đại phát triển Để phục vụ công tác giảng dạy học tập, biên soạn tài liệu Kiến trúc máy tính nhằm cung cấp tới người học kiến thức lĩnh vực Chúng xin chân thành cám ơn thầy cô Bộ môn Công nghệ thông tin Bộ môn Kỹ thuật phần mềm cho ý kiến đóng góp quý báu để tài liệu giảng dạy hoàn thiện Tài liệu giảng dạy biên soạn chia thành chương Tuy chúng tơi có nhiều cố gắng biên soạn chắn tài liệu nhiều thiếu sót, nên mong bạn đọc đồng nghiệp đóng góp ý kiến để tài liệu ngày hồn thiện, nhằm mục đích phục vụ tốt cho việc dạy học tin học ngày phát triển nước ta Mọi góp ý thắc mắc xin gửi địa email: nvdong@agu.edu.vn Ngày 15 tháng 02 năm 2016 GV biên soạn Nguyễn Văn Đông i LỜI CAM KẾT Tôi xin cam đoan tài liệu giảng dạy riêng Nội dung tài liệu giảng dạy có xuất xứ rõ ràng An Giang, ngày 15 tháng 02 năm 2016 Ngƣời biên soạn Nguyễn Văn Đông ii MỤC LỤC CHƢƠNG 1: ĐẠI CƢƠNG 1.1 TỔNG QUAN 1.2 HIỆU SUẤT 1.2.1 Dẫn nhập 1.2.2 Đo đạc hiệu suất 1.3 BIỂU DIỄN HỆ SỐ 1.4 BIỂU DIỄN SỐ NGUYÊN 1.4.1 Biểu diễn số nguyên không dấu 1.4.2 Biểu diễn số nguyên có dấu 1.5 CÁC PHÉP TÍNH TRÊN SỐ NGUYÊN 10 1.6 BIỂU DIỄN SỐ VỚI DẤU CHẤM ĐỘNG 14 1.7 BIỂU DIỄN KÍ TỰ 15 CHƢƠNG 2: TẬP LỆNH VI XỬ LÝ 19 2.1 GIỚI THIỆU 19 2.2 TOÁN TỬ 19 2.3 TOÁN HẠNG 21 2.3.1 Toán hạng ghi 21 2.3.2 Toán hạng nhớ 21 2.3.3 Toán hạng trực tiếp 22 2.3.4 Định dạng lệnh 23 2.3.5 Lệnh luận lý 26 2.3.6 Các lệnh rẽ nhánh 27 2.4 GIẢI MÃ NGÔN NGỮ MÁY 28 CHƢƠNG 3: TỔ CHỨC BỘ XỬ LÝ 31 3.1 GIỚI THIỆU 31 3.2 ĐƯỜNG DẪN DỮ LIỆU 31 3.3 TỔ CHỨC BỘ TÍNH TỐN VÀ LUẬN LÝ 33 3.4 BỘ ĐIỀU KHIỂN CHÍNH 34 3.5 KỸ THUẬT ỐNG DẪN 41 3.5.1 Tổng quan 41 iii 3.5.2 Đường liệu kỹ thuật ống dẫn 43 3.5.3 Điều khiển kỹ thuật ống dẫn 54 CHƢƠNG 4: BỘ NHỚ 64 4.1 GIỚI THIỆU 64 4.2 BỘ NHỚ CACHE 65 4.2.1 Tổng quan 65 4.2.2 Truy cập nhớ Cache 67 4.2.3 Xử lý thất bại cache 68 4.2.4 Xử lý ghi 69 4.2.5 Thiết kế nhớ hỗ trợ cache 69 4.3 ĐO LƯỜNG VÀ CẢI TIẾN HIỆU SUẤT CACHE 71 4.3.1 Thay khối 73 4.3.2 Xác định khối cache 76 4.3.3 Thay khối 77 4.3.4 Cache nhiều mức 78 CHƢƠNG 5: HỆ THỐNG LƢU TRỮ VÀ NHẬP - XUẤT 81 5.1 GIỚI THIỆU 81 5.2 ĐĨA TỪ 81 5.3 BỘ NHỚ FLASH 82 5.4 KẾT NỐI GIỮA BỘ XỬ LÝ, BỘ NHỚ VÀ THIẾT BỊ NHẬP/XUẤT 83 5.5 GIAO TIẾP THIẾT BỊ NHẬP/XUẤT VỚI BỘ XỬ LÝ, BỘ NHỚ VÀ HỆ ĐIỀU HÀNH 84 5.5.1 Ra lệnh cho thiết bị nhập xuất 85 5.5.2 Giao tiếp với xử lý 85 5.5.3 Độ ưu tiên ngắt 86 5.5.4 Truyền liệu thiết bị nhớ 87 5.5.5 Truy cập nhớ trực tiếp DMA hệ thống nhớ 88 iv DANH SÁCH HÌNH Hình 1.1: Giải thuật Booth 12 Hình 1.2: Giải thuật thực phép chia 13 Hình 2.1: Địa nhớ liệu tương ứng 21 Hình 3.1: Sơ đồ tổ chức tổng quát MIPS 31 Hình 3.2: Đường dẫn liệu ba loại lệnh 33 Hình 3.3: Ba định dạng lệnh R-type, load store, branch 35 Hình 3.4: Các tín hiệu điều khiển hệ thống 36 Hình 3.5: Các tín hiệu điều khiển dạng lệnh 37 Hình 3.6: Đường liệu dạng lệnh R-format 38 Hình 3.7: Đường liệu lệnh load 39 Hình 3.8: Đường liệu lệnh beq 40 Hình 3.9: đường liệu lệnh jump 41 Hình 3.10: Thực so với kỹ thuật ống dẫn 42 Hình 3.11: Các giai đoạn thực thi lệnh 43 Hình 3.12: Ba lệnh thực thi kỹ thuật ống dẫn 44 Hình 3.13: Các ghi ống dẫn 45 Hình 3.14: Giai đoạn duyệt lệnh lệnh lw 46 Hình 3.15: Giai đoạn giải mã lệnh lệnh lw 47 Hình 3.16: Giai đoạn thực thi lệnh lw 48 Hình 3.17: Giai đoạn truy cập nhớ lệnh lw 49 Hình 3.18: Giai đoạn ghi liệu vào ghi 50 Hình 3.19: Kết hợp giai đoạn lệnh lw 51 Hình 3.20: Giản đồ ống dẫn biểu diễn đa chu kỳ 52 Hình 3.21: Giản đồ ống dẫn đơn chu kỳ tương ứng với chu kỳ hình 3.20 53 Hình 3.22: Các tín hiệu điều khiển kỹ thuật ống dẫn 54 Hình 3.23: Các tín hiệu điều khiển ba giai đoạn ống dẫn sau 57 Hình 3.24: Các tín hiệu điều khiển nối vào phần tương ứng 57 Hình 4.1: Cấu trúc cấp bậc nhớ 64 Hình 4.2: Bộ nhớ Cache trước sau CPU tham khảo từ Xn 65 Hình 4.3: Ánh xạ trực tiếp từ nhớ sang cache có khối 66 Hình 4.4: Bộ nhớ cache với địa truy cập 68 Hình 4.5: Ba cách tổ chức nhớ khác 70 Hình 4.6: Khối 12 đặt vào cache tương ứng với ba mơ hình 73 Hình 4.7: Cache khối chia thành tập hợp có 1,2,4,8 phần tử 74 Hình 4.8: Mơ hình kết hợp theo tập hợp với tập hợp có bốn phần tử 77 Hình 5.1: Hệ thống nhập/xuất điển hình 81 Hình 5.2: Thanh ghi trạng thái ghi nguyên nhân 87 v DANH SÁCH BẢNG Bảng 1.1: Số nhị phân, thập phân thập lục phân Bảng 1.2: Phép cộng số biểu diễn phương pháp bù 11 Bảng 1.3: Phép trừ số (M−S) biểu diễn bù 11 Bảng 2.1: Các ghi địa nhớ MIPS 20 Bảng 2.2: Tập lệnh vi xử lý MIPS 20 Bảng 2.3: Định dạng lệnh MIPS 26 Bảng 2.4: mã lệnh op lệnh MIPS 28 Bảng 2.5: giá trị trường funct với R-format 29 Bảng 3.1: Thiết lập bit điều khiển ALU dựa vào ALUOp trường funct 34 Bảng 3.2: Tổng thời gian thực lệnh 42 Bảng 3.3: Thiết lập bit ALU control 55 Bảng 3.4: Các tín hiệu điều khiển tương ứng theo giai đoạn sau 56 Bảng 4.1: So sánh ba kỹ thuật cấp bậc nhớ 65 Bảng 4.2: CPU truy cập địa nhớ 67 vi DANH MỤC TỪ VIẾT TẮT Từ viết tắt Tiếng Anh Tiếng Việt ALU Algorithm logic unit Đơn vị luận lý số học AMAT Average memory access time Thời gian truy cập nhớ trung bình CISC Tập lệnh máy tính phức tạp CPI Complex Instruction Computer Clock Set cycle per instruction Số chu kỳ xung nhịp thực thi lệnh CPU Central processing unit Bộ xử lý CU Control unit Đơn vị điều khiển DM Data memory Vùng nhớ liệu DMA Direct memory access Truy cập nhớ trực tiếp DRAM Dynamic random access memory Bộ nhớ truy cập ngẫu nhiên động EX Execution Thực thi ID Instruction decode Giải mã lệnh IM Instruction memory Vùng nhớ lệnh IF Instruction fetch Duyệt lệnh I/O Input/Output Thiết bị nhập/xuất LRU Least recently used Ít sử dụng gần MEM Memory Truy cập nhớ MIPS Million instructions per second Triệu lệnh giây MIPS Mux Microprocessor without Interlocked Pipeline Stages Multiplexor Bộ xử lý không đông kỹ thuật ống dẫn Bộ điều hợp PC Personal computer Máy tính cá nhân Reg Register Thanh ghi RISC Tập lệnh máy tính rút gọn SRAM Reduced Instruction Set Computer Static random access memory Bộ nhớ truy cập ngẫu nhiên tĩnh V Valid bit Bit hợp lý WB Write-back Ghi kết trở lại vii NỘI DUNG CHƢƠNG 1: ĐẠI CƢƠNG Giới thiệu lịch sử máy tính, cách phân loại máy tính, hiệu suất máy tính Biểu diễn số nguyên số với dấu chấm động CHƢƠNG 2: TẬP LỆNH VI XỬ LÝ Giới thiệu tập lệnh vi xử lý MIPS: loại toán hạng lệnh, định dạng lệnh, dạng lệnh khác cách giải mã ngôn ngữ máy CHƢƠNG 3: TỔ CHỨC BỘ XỬ LÝ Giới thiệu khái niệm đường dẫn liệu, cách tổ chức tính tốn luận lý, hoạt động điều khiển Nguyên lý hoạt động kỹ thuật ống dẫn CHƢƠNG 4: BỘ NHỚ Trình bày tổng quan nguyên lý hoạt động nhớ cache: truy cập nhớ, xử lý thất bại, xử lý ghi Cách thức đo lường phương pháp cải tiến hiệu suất nhớ cache CHƢƠNG 5: HỆ THỐNG LƢU TRỮ VÀ NHẬP – XUẤT Giới thiệu hệ thống lưu trữ nhập xuất Cấu tạo nguyên lý hoạt động đĩa từ, nhớ flash Kết nối xử lý, nhớ thiết bị nhập – xuất Giao tiếp thiết bị nhập – xuất với xử lý, nhớ hệ điều hành viii Trong trường hợp ta có bốn thất bại cache thành công cache, giảm thất bại cache so với mơ hình ánh xạ trực tiếp − Trường hợp cache tổ chức theo mơ hình kết hợp đầy đủ: tập hợp đơn có bốn phần tử (khối), đặt vào vị trí bốn vị trí khối Trong trường hợp cache có hiệu suất tốt với có ba thất bại cache hai thành công cache Nội dung khối cache sau tham khảo Địa nhớ khối truy cập Thành công / Thất bại Thất bại Memory[0] Thất bại Memory[0] Memory[8] Thành công Memory[0] Memory[8] Thất bại Memory[0] Memory[8] Memory[6] Thành công Memory[0] Memory[8] Memory[6] Khối Khối Khối Khối 4.3.2 Xác định khối cache Để xác định khối cache, ta dựa vào mơ hình thực nhớ cache: − Kết hợp theo tập hợp: khối cache theo mô hình bao gồm ba thành phần: thẻ (tag), số (index) độ dời khối (block offset) Chỉ số dùng để lựa chọn tập hợp xác định, thẻ so sánh với khối tập hợp xác định Độ dời khối địa liệu cần truy cập khối Khi CPU đưa địa khối cần truy cập địa phân tích thành ba thành phần trên, dựa vào số để xác định tập hợp xác định có chứa khối cần truy cập Sau thẻ khối tập hợp so sánh để xác định khối cần truy cập Sự so sánh thực song song để đảm bảo tốc độ Thẻ Chỉ số Độ dời khối − Ánh xạ trực tiếp: giống kiểu kết hợp theo tập hợp, khối nhớ cache bao gồm ba phần: thẻ, số độ dời khối Khi CPU đưa địa khối để truy cập dựa vào số để xác định tập hợp, tập hợp có phần tử Do có so sánh đơn thẻ thực Thẻ Chỉ số Độ dời khối − Kết hợp đầy đủ: trường hợp có tập hợp khơng có phần số Do khối cache có hai thành phần: thẻ độ dời khối Khi CPU đưa địa khối để truy cập tất thẻ khối phải so sánh song song để xác định khối cần truy cập có cache hay khơng Thẻ 76 Độ dời khối Để hiểu rõ cách xác định khối nhớ cache, xét ví dụ nhớ cache theo mơ hình kết hợp theo tập hợp, tập hợp có bốn phần tử hình 4.8 Tập hợp xác định dựa vào số Sau có bốn so sánh thẻ thực song song kết hợp với điều hợp (4-to-1 multiplexor) để chọn bốn khối tập hợp xác định Hình 4.8: Mơ hình kết hợp theo tập hợp với tập hợp có bốn phần tử 4.3.3 Thay khối Khi thất bại cache xảy phải tìm khối nhớ sau thực thay khối vào nhớ cache Đối với mơ hình ánh xạ trực tiếp có lựa chọn ứng với khối có số xác định thay Trong mơ hình kết hợp đầy đủ lựa chọn tất khối để thay Còn mơ hình kết hợp theo tập hợp lựa chọn khối tập hợp tương ứng với số để thay Chiến thuật thay thường sử dụng thay khối sử dụng gần (least recently used – LRU) Theo LRU khối thay khối không sử dụng thời gian dài Chiến thuật LRU cài đặt cách theo dõi lần tham khảo đến phần tử tập hợp Như với tập hợp có hai phần tử dùng bit để theo dõi tham khảo đến phần tử tập hợp Bit thiết lập để xác định có tham khảo đến phần tử Khi số phần tử tập hợp tăng lên cài đặt LRU phức tạp 77 Xét ví dụ sau: giả sử nhớ cache gồm có 4K khối, khối từ địa có kích thước 32 bit Hãy tìm tổng số tập hợp tổng số bit thẻ (tags) nhớ cache với mơ hình ánh xạ trực tiếp, kết hợp theo tập hợp có có phần tử kết hợp đầy đủ Do khối có từ nên khối có 16 (=24) byte, địa offet có bit Cịn lại 32 – = 28 bit dùng cho thẻ (tag) số (index) Bộ nhớ cache theo mô hình ánh xạ trực tiếp có số tập hợp số khối nên trường số dùng 12 bit (log2(4K) = 12) Tổng số bit thẻ (28 – 12) × 4K = 16 × 4K = 64Kbit Khi tăng số phần tử tập hợp lên gấp đơi trường số giảm bit đồng thời tăng trường thẻ lên bit Do đó, kết hợp theo tập hợp có phần tử có 2K tập hợp tổng số bit thẻ (28 – 11) × × 2K = 34 × 2K = 68Kbit Nếu kết hợp theo tập hợp có phần tử có 1K tập hợp tổng số bit thẻ (28 – 10) × × 1K = 72 × 1K = 72Kbit Đối với mơ hình kết hợp đầy đủ có tập hợp với 4K khối, trường thẻ 28 bit tổng số bit thẻ 28 × 4K × = 112Kbit Như tăng số phần tử tập hợp làm tăng số lượng phép toán so sánh tăng dung lượng để lưu trữ thẻ 4.3.4 Cache nhiều mức (Multilevel Caches) Để giảm trừng phạt thất bại khuynh hướng sử dụng dùng nhiều mức cache Hầu hết xử lý bổ sung thêm cache mức (còn gọi cache thứ cấp – secondary cache) Cache mức nằm xử lý truy cập thất bại xảy cache mức (còn gọi cache sơ cấp - primary cache) Nếu cache mức có chứa khối liệu cần truy cập trừng phạt thất bại cache mức thời gian truy cập cache mức Thời gian nhỏ thời gian truy cập vào nhớ Nếu hai cache mức cache mức không chứa khối liệu cần truy cập trừng phạt thất bại thời gian truy cập vào nhớ Trừng phạt thất bại trường hợp lớn so với trừng phạt thất bại hai mức cache Để hiểu rõ hiệu việc sử dụng thêm cache mức 2, xét ví dụ sau: Giả sử có xử lý với CPI sở (base CPI) 1.0, giả sử tất truy cập thành cơng cache sơ cấp có tỷ lệ xung nhịp (clock rate) 4GHz Giả sử thời gian truy cập nhớ 100 ns, bao gồm tất xử lý thất bại Giả sử tỷ lệ thất bại lệnh cache sơ cấp 2% Hỏi xử lý nhanh lần bổ sung thêm cache mức có thời gian truy cập ns cho trường hợp thành công thất bại cache đủ lớn để giảm tỷ lệ thất bại nhớ 0.5%? Ta có trừng phạt thất bại nhớ là: Tổng CPI (total CPI) trường hợp có mức cache là: Tổng CPI = CPI sở + số chu kỳ trì hỗn nhớ lệnh 78 hay: Tổng CPI = 1.0 + 2% × 400 = Trong trường hợp có hai mức cache, thất bại cache mức 1(cache sơ cấp) tìm khối cache mức (cache thứ cấp) nhớ Trừng phạt thất bại truy cập cache mức là: Nếu thất bại tìm thấy cache mức tổng trừng phạt thất bại trừng phạt thất bại cache mức Nếu thất bại phải cần tìm đến nhớ tổng trừng phạt thất bại tổng thời gian truy cập cache mức thời gian truy cập nhớ Do đó, trường hợp có hai mức cache tổng CPI tổng số chu kỳ trì hỗn (stall cycles) hai mức cache CPI sở: Tổng CPI = + số chu kỳ trì hỗn sơ cấp + số chu kỳ trì hỗn thứ cấp = + 2% × 20 + 0.5% × 400 = + 0.4 + 2.0 = 3.4 Vì thế, CPU với cache thứ cấp nhanh hơn: Như với cấu trúc tổ chức cache hai mức cache mức sơ cấp có tác dụng làm tối thiểu hóa thời gian truy cập thành cơng cache thứ cấp tập trung đến tỷ lệ thất bại để giảm trừng phạt thời gian truy cập nhớ lâu 4.4 TÓM TẮT Chương giới thiệu nguyên tắc thời gian nguyên tắc không gian truy cập nhớ Trình bày đặc điểm cấp bậc nhớ Sau giới thiệu tổng quan nhớ cache, truy cập liệu nhớ cache, trường hợp để xử lý thất bại cache Thao tác ghi liệu vào nhớ cache: ghi đồng thời, ghi đệm, ghi lại Thiết kế nhớ để vận hành cache tốt Giới thiệu ba mơ hình để thay khối: ánh xạ trực tiếp, kết hợp hoàn toàn kết hợp theo tập hợp Cách để xác định khối nhớ cache dựa vào mơ hình thực cache Cuối trình bày cache nhiều mức: cache mức (cache sơ cấp) cache mức (cache thứ cấp) để đảm bảo hiệu suất vận hành cache tốt 79 CÂU HỎI VÀ BÀI TẬP CHƢƠNG 4 Nguyên tắc thời gian gì? Ngun tắc khơng gian gì? Các cấp nhớ hiểu nào? Mơ hình ánh xạ trực tiếp gì? Mơ hình kết hợp theo tập hợp gì? Cách xác định khối nhớ Cache? Chiến thuật LRU gì? Cho nhớ cache có khối (mỗi khối từ) theo kiểu ánh xạ trực tiếp Hãy cho biết nội dụng nhớ cache số lần thành công thất bại truy cập địa 0, 15, 6, 0, 6, 20 với giả sử nhớ cache khởi tạo ban đầu rỗng (không chứa nội dung nào) Cho nhớ cache có khối (mỗi khối từ) theo kiểu kết hợp theo tập hợp (mỗi tập hợp có hai phần tử) với chiến lược thay khối sử dụng gần (least recently used – LRU) Hãy cho biết nội dụng nhớ cache số lần thành công thất bại truy cập địa 2, 5, 12, 2, 8, với giả sử nhớ cache khởi tạo ban đầu rỗng (không chứa nội dung nào) Cho nhớ cache có khối (mỗi khối từ) theo kết hợp đầy đủ Hãy cho biết nội dụng nhớ cache số lần thành công thất bại truy cập địa 0, 5, 8, 5, 6, với giả sử nhớ cache khởi tạo ban đầu rỗng (không chứa nội dung nào) 10 Xét ví dụ sau: giả sử nhớ cache gồm có 512 khối, khối từ địa có kích thước 32 bit Hãy tìm tổng số tập hợp tổng số bit thẻ (tags) nhớ cache với mơ hình ánh xạ trực tiếp 11 Xét ví dụ sau: giả sử nhớ cache gồm có 2K khối, khối từ địa có kích thước 32 bit Hãy tìm tổng số tập hợp tổng số bit thẻ (tags) nhớ cache với mơ hình kết hợp theo tập hợp có phần tử 12 Xét ví dụ sau: giả sử nhớ cache gồm có 4K khối, khối từ địa có kích thước 32 bit Hãy tìm tổng số tập hợp tổng số bit thẻ (tags) nhớ cache với mơ hình kết hợp đầy đủ 80 CHƢƠNG HỆ THỐNG LƢU TRỮ VÀ NHẬP – XUẤT Mục đích: Giới thiệu tổng quan hệ thống lưu trữ nhập – xuất máy tính Cấu tạo nguyên lý hoạt động đĩa từ nhớ flash Cách kết nối xử lý, nhớ thiết bị nhập – xuất Giao tiếp thiết bị nhập – xuất với xử lý, nhớ hệ điều hành 5.1 GIỚI THIỆU Một hệ thống nhập xuất điển hình thể hình 5.1 Đường kết nối thiết bị nhập/xuất (I/O), xử lý nhớ gọi bus Kết nối thiết bị nhập/xuất thông qua đường kết nối ngắt (interrupts) đường kết nối bên (interconnect) Các tiêu chí độ tin khả mở rộng quan tâm thiết kế hệ thống nhập/xuất Hình 5.1: Hệ thống nhập/xuất điển hình 5.2 ĐĨA TỪ Đĩa từ bao gồm nhiều đĩa (1 – 4) đầu đọc/ghi di chuyển để truy cập đĩa Mỗi đĩa có hai mặt dùng để ghi liệu Tốc độ quay đĩa từ 5400 đến 15000 rpm có đường kính từ inch đến 3.5 inch Mỗi bề mặt đĩa chia thành hình trịn đồng tâm, gọi rãnh (track) Có khoảng 10000 đến 50000 rãnh bề mặt Mỗi rãnh chia thành cung (sector) dùng để lưu liệu Mỗi rãnh chứa từ 100 đến 500 cung Thơng thường cung có kích thước 512 byte Tập hợp rãnh có kích thước gọi cylinder 81 Để truy cập liệu, phải di chuyển đầu đọc/ghi đến rãnh có chứa cung mong muốn Thao tác gọi tìm kiếm (seek), thời gian để đầu đọc/ghi di chuyển đến rãnh đọc gọi thời gian tìm kiếm (seek time) Thông thường thời gian khoảng từ 3ms đến 13ms Sau di chuyển đến rãnh thích hợp, đầu đọc/ghi phải đợi đĩa quay đến cung chứa liệu cần truy suất Thời gian gọi độ trễ quay (rotational delay hay rotational latency) Giá trị trung bình nửa vịng quay đĩa Tức tốc độ quay đĩa từ 5400 rpm đến 15000 rpm thì: Thời gian để truy cập đĩa, thời gian truyền (transfer time) Đây thời gian dùng để truyền liệu Thời gian phụ thuộc vào kích thước cung, tốc độ quay mật độ ghi liệu rãnh Tốc độ truyền khoảng từ 70 đến 125 MB/s Ngày này, trình điều khiển đĩa có xây dựng sẳn nhớ đệm (cache) để lưu tạm thời cung Do tốc độ truyền từ nhớ đệm tăng lên đến 375 MB/s Ngồi ra, trình điều khiển đĩa (disk controller) xử lý điều khiển chi tiết đĩa truyền liệu đĩa nhớ Thời gian gọi thời gian điều khiển (controller time) Đây thành phần cuối thời gian truy cập đĩa Như vậy, thời gian truy cập đĩa bao gồm thời gian tìm kiếm, độ trễ quay, thời gian truyền thời gian điều khiển Ví dụ: tính thời gian truy cập đĩa để đọc ghi cung (512 byte) đĩa có tốc độ quay 15000 rpm Cho biết thời gian tìm kiếm ms, tốc độ truyền 100 MB/s thời gian điều khiển 0.2 ms Ta có: thời gian truy cập = thời gian tìm kiếm + độ trễ quay + thời gian truyền + thời gian điều khiển Như vậy, giá trị bằng: 5.3 BỘ NHỚ FLASH Bộ nhớ flash loại nhớ bán dẫn giống đĩa từ có độ trễ (latency) nhanh 100 đến 1000 lần so với đĩa Đây nhớ nhỏ gọn, tiêu thụ lượng có sức chống va chạm cao Bộ nhớ sử dụng phổ biến điện thoại, thiết bị số, máy quay phim,…Về giá thành gigabyte cao từ đến 40 lần so với đĩa cứng thấp đến 10 lần so với DRAM 82 Bộ nhớ flash có nguyên lý hoạt động dựa EEPROM phân thành hai loại: NOR flash có nhớ dùng cổng NOR tương tự NAND flash NOR flash dùng để chứa chương trình khởi động thiết bị NAND flash dùng thẻ nhớ usb có giá thành rẽ NOR flash Với phát triển nhanh dung lượng giá thành ngày thấp làm cho nhớ flash ngày sử dụng rộng rãi nhiều loại thiết bị ngày 5.4 KẾT NỐI GIỮA BỘ XỬ LÝ, BỘ NHỚ VÀ THIẾT BỊ NHẬP/XUẤT Trong hệ thống máy tính, thiết bị xử lý nhớ cần kết nối với xử lý thiết bị nhập/xuất Bộ phận đảm nhận vai trị bus Bus bao gồm tập hợp sợi dây để kết nối hệ thống bên Có hai thuận lợi bus tính linh hoạt có chi phí thấp Với đường kết nối đơn thiết bị gắn thêm vào Các thiết bị ngoại vi dễ dàng gắn vào máy tính hay máy tính khác có loại bus Điểm bất lợi bus tạo tượng thất cổ chai (bottleneck) Vấn đề làm hạn chế lưu lượng nhập/xuất Khi lưu lượng nhập/xuất truyền bus, băng thông bus giới hạn mức độ tối đa lưu lượng nhập/xuất Thiết kế hệ thống bus đáp ứng nhu cầu xử lý khả kết nối với nhiều loại thiết bị nhập/xuất vấn đề khó khăn nhà thiết kế máy tính Bus chia thành hai loại: loại thứ bus hệ thống dùng để kết nối xử lý nhớ, bus thường ngắn có tốc độ cao Loại thứ hai bus nhập/xuất, loại thường dài kết nối với nhiều loại thiết bị thông thường băng thông liệu (data bandwidth) với thiết bị gắn vào bus Hơn nữa, tốc độ bus ngoại vi bị giới hạn yếu tố vật lý: chiều dài bus số thiết bị gắn vào Một giao dịch nhập/xuất (I/O transaction) bao gồm có hai phần: gửi địa nhận gửi liệu Thao tác thực dựa nhớ, tức thao tác nhập (input) nhập liệu từ thiết bị nhập/xuất vào nhớ (bộ xử lý đọc liệu này) Trong thao tác xuất (output) xuất liệu tới thiết bị nhập/xuất từ nhớ (bộ xử lý ghi liệu này) Để thống nhà sản xuất máy tính nhà sản xuất thiết bị ngoại vi, ngành công nghiệp máy tính đưa tiêu chuẩn Một tiêu chuẩn đưa đặc tả để thiết bị ngoại vi nhà sản xuất khác gắn vào máy tính theo chuẩn Một số tiêu chuẩn thiết bị nhập/xuất phổ biến như: USB, PCI Express (PCIe), Serial ATA (SATA), SCSI,… Bus đồng (synchronous) tức bus gồm có tín hiệu xung nhịp (clock) đường điều khiển giao thức (protocol) cố định để giao tiếp dựa tín hiệu xung nhịp Ví dụ để thực thao tác đọc từ nhớ, có nghi thức để truyền địa lệnh đọc chu kỳ Dùng đường điều khiển để định loại yêu cầu Sau đó, nhớ đáp ứng yêu cầu môt từ (word) liệu chu kỳ thứ Loại giao thức thực thi máy trạng thái hữu hạn (finitestate machine) nhỏ Tuy nhiên, bus đồng có hai bất lợi Thứ nhất, thiết bị bus phải chạy tần số xung nhịp (clock rate) Thứ hai, vấn đề lệch xung 83 nhịp, bus đồng dài bus có tốc độ nhanh Do bất lợi nên dẫn đến hình thành bus khơng đồng (asynchronous) Loại bus khơng có tín hiệu xung nhịp Điều thích hợp để kết nối với nhiều loại thiết bị khác bus dài mà không lo lắng vấn đề lệnh xung nhịp đồng Để thực việc truyền liệu, bus không đồng dùng giao thức bắt tay (handshaking protocol) Giao thức bao gồm tập hợp nhiều bước để bên gửi bên nhận xử lý bước hai bên đồng ý với Các đường điều khiển bổ sung giao thức 5.5 GIAO TIẾP THIẾT BỊ NHẬP/XUẤT VỚI BỘ XỬ LÝ, BỘ NHỚ VÀ HỆ ĐIỀU HÀNH Hệ điều hành đóng vai trị quan trọng xử lý yêu cầu nhập/xuất, giao diện phần cứng chương trình u cầu nhập/xuất Vai trị hệ điều hành liên quan đến đặc điểm hệ thống nhập/xuất: Nhiều chương trình dùng xử lý để chia sẻ hệ thống nhập/xuất Hệ thống nhập/xuất thường dùng ngắt (interrupt) để giao tiếp thông tin thao tác nhập/xuất Ngắt truyền tới nhân (kernel) xử lý hệ điều hành Điều khiển cấp thấp thiết bị nhập/xuất phức tạp, phải quản lý tập hợp kiện đồng thời yều cầu cần thực xác thường chi tiết Dựa vào đặc điểm trên, hệ điều hành cung cấp số chức sau: Hệ điều hành phải đảm bảo chương trình người dùng phép truy cập vào phần thiết bị nhập/xuất mà người dùng phép Ví dụ hệ điều hành khơng cho phép chương trình đọc ghi tập tin đĩa chương trình khơng phép để truy cập tập tin Hệ điều hành cung cấp hàm (routine) để xử lý thao tác cấp thấp thiết bị nhập/xuất Hệ điều hành phải xử lý ngắt tạo thiết bị nhập/xuất, xử lý ngoại lệ (exception) tạo chương trình Đối với tài nguyên nhập/xuất chia sẻ, hệ điều hành cần cung cấp quyền truy cập như lập thời biểu truy cập để đảm bảo nâng cao thông lượng (throughput) hệ thống Để thực chức này, hệ điều hành phải giao tiếp với thiết bị nhập/xuất ngăn chương trình người dùng giao tiếp trực tiếp với thiết bị nhập/xuất Có ba loại giao tiếp: Hệ điều hành lệnh cho thiết bị ngoại vi Những lệnh không thao tác đọc ghi mà thao tác khác thực thiết bị thao tác dịch chuyển đầu đọc/ghi đến vị trí thích hợp (seek) đĩa Thiết bị nhập/xuất thông báo cho hệ điều hành thực xong thao tác có lỗi xảy Dữ liệu truyền nhớ thiết bị nhập/xuất 84 Trong phần tiếp theo, tìm hiểu kỹ giao tiếp với thiết bị nhập/xuất 5.5.1 Ra lệnh cho thiết bị nhập xuất Để điều khiển thiết bị nhập/xuất, xử lý phải xác định địa thiết bị đưa nhiều từ lệnh Hai phương pháp dùng để xác định địa chỉ: thiết bị nhập/xuất ánh xạ vào nhớ (memory-mapped I/O) tập lệnh nhập/xuất riêng (special I/O instructions) Thiết bị nhập/xuất ánh xạ vào nhớ: vùng không gian địa gắn cho thiết bị nhập/xuất Đọc ghi vào vùng địa tương ứng với giao tiếp với thiết bị nhập/xuất Ví dụ thao tác ghi liệu vào thiết bị nhập/xuất, xử lý đặt địa liệu vào bus Hệ thống nhớ bỏ qua thao tác địa chỉ định phần không gian nhớ dành cho thiết bị nhập/xuất trình điều khiển thiết bị thực thao tác cách truyền liệu tới thiết bị nhập/xuất xem lệnh Đọc ghi liệu chương trình thường yêu cầu vài thao tác nhập/xuất riêng biệt Hơn nữa, xử lý phải tham dò trạng thái thiết bị để xem lệnh đưa có thực xong hay chưa Ví dụ, máy in đơn giản có hai ghi nhập/xuất: ghi trạng thái lưu trạng thái thiết bị ghi liệu lưu liệu in Thanh ghi trạng thái chứa bit thực (done bit) thiết lập máy in thực in xong ký tự bit lỗi (error bit) Bit lỗi xác định máy in kẹt giấy hết giấy Mỗi byte liệu cần in đặt vào ghi liệu Bộ xử lý phải đợi máy in thiết lập bit thực đưa ký tự để in Bộ xử lý cần kiểm tra bit lỗi để xem lỗi xảy hay không Tập lệnh nhập/xuất riêng: lệnh nhập/xuất xác định số thiết bị từ lệnh Bộ xử lý giao tiếp với thiết bị thông qua sợi dây bus nhập/xuất Lệnh truyền đường liệu bus Điển hình máy tính theo kiểu Intel ×86 IBM 370 5.5.2 Giao tiếp với xử lý Thiết bị nhập/xuất ghi thông tin vào ghi trạng thái (status register) Bộ xử lý định kỳ kiểm tra thông tin ghi trạng thái để biết thiết bị có sẳn sàng hay khơng Q trình gọi thăm dị (polling) Q trình có điểm bất lợi tiêu tốn nhiều thời gian xử lý phải thường xuyên thăm dò trạng thái thiết bị Hơn nữa, tốc độ xử lý nhanh nhiều so với thiết bị nhập/xuất Do hạn chế q trình thăm dị nên người ta sử dụng ngắt (interrupt) để thiết bị nhập/xuất thông báo với xử lý Một ngắt nhập/xuất (I/O interrupt) giống ngoại lệ (exception) với hai khác biệt quan trọng: Ngắt nhập/xuất khơng đồng với thực thi lệnh Nghĩa là, ngắt không kết hợp với lệnh không cản trở thực thi hoàn thành lệnh Điều khác với ngoại lệ lỗi trang (page fault exception) hay ngoại lệ tràn số 85 học (arithmetic overflow) Đơn vị điều khiển kiểm tra ngắt nhập/xuất chưa giải lúc bắt đầu lệnh Khi ngắt xảy ra, thích truyền thơng tin Như định danh (identity) thiết bị tạo ngắt Hơn nữa, ngắt thiết bị nhập/xuất có độ ưu tiên khác Do mức độ khẩn cấp kết hợp với ngắt thiết bị khác Để giao tiếp thông tin với xử lý, định danh thiết bị, hệ thống dụng vector ngắt (vectored interrupt) ghi nguyên nhân (Cause register) Khi xử lý nhận ngắt, thiết bị nhập/xuất gửi địa vector trường trạng thái (status field) đặt vào ghi nguyên nhân Hệ điều hành biết định danh thiết bị gây ngắt xem xét tức đến thiết bị Mơ hình ngắt loại bỏ u cầu xử lý để thăm dò thiết bị thay vào xử lý tập trung để thực thi chương trình 5.5.3 Độ ƣu tiên ngắt Để giải với độ ưu tiên khác thiết bị nhập/xuất, mơ hình ngắt đưa nhiều mức ưu tiên Thí dụ, hệ điều hành UNIX dùng từ đến mức ưu tiên ngắt Bộ xử lý xử lý ngắt dựa theo thứ tự độ ưu tiên ngắt Các ngoại lệ tạo bên ngắt nhập/xuất có độ ưu tiên Các ngoại lệ có độ ưu tiên cao ngắt nhập/xuất bên ngoại Đối với độ ưu tiên ngắt nhập/xuất có nhiều độ ưu tiên, thiết bị có tốc độ cao thường kết hợp với độ ưu tiên cao Thanh ghi trạng thái xác định tác nhân gây ngắt máy tính (hình 5.2) Nếu bit ngắt gắn giá trị ngắt khơng cho phép Mỗi bit mặt nạ ngắt (interrupt mask) tương ứng với bit của trường ngắt chờ xử lý (pending interrupt) ghi nguyên nhân Để thiết lập ngắt, phải gắn giá trị vị trí bit tương ứng mặt nạ ngắt Hệ điều hành đọc trường mã ngoại lệ (exception code) ghi trạng thái: tương ứng với ngắt xảy ra, với giá trị khác cho trường hợp ngoại lệ Các bước để xử lý ngắt: Thực phép toán AND mặt nạ ngắt trường ngắt chờ xử lý để xác định tác nhân gây ngắt Lựa chọn ngắt có độ ưu tiên cao Theo quy ước bên trái có độ ưu tiên cao Lưu mặt nạ ngắt ghi trạng thái Thay đổi mặt nạ ngắt để vơ hiệu hóa tất ngắt có độ ưu tiên nhỏ Lưu lại trạng thái xử lý cần thiết để xử lý ngắt Để cho phép ngắt có độ ưu tiên cao hơn, thiết lập bit ngắt ghi nguyên nhân Gọi hàm xử lý ngắt tương ứng Trước khôi phục lại trạng thái, thiết lập bit ngắt ghi nguyên nhân Điều cho phép khơi phục lại mặt nạ ngắt 86 Hình 5.2: Thanh ghi trạng thái ghi nguyên nhân 5.5.4 Truyền liệu thiết bị nhớ Chúng ta có hai phương pháp khác để thiết bị nhập/xuất giao tiếp với xử lý Đó phương pháp thăm dò ngắt nhập/xuất Cả hai phương pháp thích hợp với thiết bị nhập/xuất có băng thơng thấp Các thiết bị thường có giá rẻ với trình điều khiển thiết bị giao tiếp đơn giản so với thiết bị nhập/xuất có băng thông cao Trong hai phương pháp, xử lý có vai trị quan trọng để quản lý việc truyền liệu Cơ chế luân phiên sử dụng phương pháp dùng ngắt nhập/xuất Trong trường hợp hệ điều hành truyền liệu nhỏ (số byte ít) từ thiết bị đến thiết bị Do thao tác nhập/xuất sử dụng ngắt nên hệ điều hành thực công việc khác liệu đọc từ thiết bị ghi vào thiết bị Khi hệ điều hành nhận ngắt từ thiết bị, hệ điều hành đọc trạng thái để kiểm tra lỗi Nếu khơng có lỗi hệ điều hành tiếp tục truyền liệu Khi byte cuối yêu cầu nhập/xuất truyền thao tác nhập xuất hoàn thành, hệ điều hành thơng báo chương trình Bộ xử lý hệ điều hành làm tất công việc trình này: truy cập nhớ thiết bị liệu truyền Ngắt nhập/xuất làm giảm thời gian xử lý chờ đợi kiện nhập/xuất, dùng phương pháp để truyền liệu với đĩa cứng đầu đọc đĩa cứng khơng thể chấp nhận dùng phần lớn thời gian xử lý đĩa truyền Đối với thiết bị băng thông lớn đĩa cứng, trình truyền bao gồm khối liệu lớn (hàng trăm đến hàng ngàn byte) Vì vậy, nhà thiết kế máy tính phát triển mơ hình để giảm tải cho xử lý dùng trình điều khiển thiết bị để truyền liệu trực tiếp với nhớ mà khơng có tham gia xử lý Mơ hình gọi truy cập nhớ trực tiếp (DMA - direct memory access) 87 Mơ hình ngắt sử dụng để thiết bị giao tiếp với xử lý q trình truyền nhập/xuất hồn thành có lỗi xảy DMA thực trình điều khiển đặc biệt để truyền liệu thiết bị nhập/xuất nhớ mà không cần đến xử lý Trình điều khiển DMA trở thành chủ nhân bus (master – đơn vị chiếm giữ bus để thực thao tác truyền liệu) để điều khiển thao tác đọc ghi thiết bị nhớ Một trình truyền liệu với DMA bao gồm ba bước: Bộ xử lý thiết lập DMA cách cung cấp định danh (identity) thiết bị, thao tác thực với thiết bị, địa nhớ để truyền liệu số byte liệu cần truyền DMA bắt đầu thực thao tác thiết bị điều khiển hệ thống bus Khi liệu sẳn sàng (từ thiết bị nhớ), thao tác truyền liệu thực DMA cung cấp địa nhớ để đọc ghi liệu Nếu yêu cầu nhiều trình truyền liệu, DMA cung cấp địa nhớ khởi tạo trình truyền Như vậy, theo mơ hình DMA thực tồn q trình truyền liệu (dung lượng hàng ngàn byte) mà khơng có tham gia xử lý Khi trình truyền liệu DMA hồn thành, trình điều khiển DMA gửi tín hiệu ngắt tới xử lý Sau đó, xử lý kiểm tra trình điều khiển DMA nhớ để xem tồn thao tác có thực thành cơng hay khơng Một hệ thống có nhiều thiết bị DMA Xem hệ thống có bus nhớ - xử lý nhiều bus nhập/xuất Mỗi trình điều khiển bus nhập/xuất thường bao gồm vi xử lý DMA để điều khiển trình truyền liệu nhớ thiết bị bus nhập/xuất Khơng giống phương pháp thăm dị hay phương pháp ngắt nhập/xuất, DMA giao tiếp với nhớ mà không dùng thời gian xử lý thực thao tác truyền liệu bus nhập/xuất Bộ xử lý trì hỗn muốn truy cập nhớ nhớ thực thao tác DMA Do xử lý sử dụng nhớ cache nên truy cập vào nhớ Vì vậy, băng thơng nhớ giải phóng để thực thao tác truyền liệu với thiết bị nhập/xuất 5.5.5 Truy cập nhớ trực tiếp DMA hệ thống nhớ Khi DMA kết hợp vào hệ thống nhập/xuất, mối quan hệ hệ thống nhớ xử lý thay đổi Khi khơng có DMA, tất truy cập vào nhớ đến từ xử lý xử lý thông qua chế dịch địa truy cập nhớ cache Khi có DMA, truy cập vào nhớ không thông qua chế dịch địa cấp bậc nhớ cache Điều gây khó khăn cho hệ thống nhớ ảo hệ thống nhớ với cache Vấn đề giải kết hợp kỹ thuật phần cứng hỗ trợ phần mềm Kỹ thuật DMA gây khó khăn cho hệ thống nhớ ảo trang có địa vật lý địa ảo Kỹ thuật tạo khó khăn cho hệ thống với nhớ cache có hai thành phần liệu: cache nhớ Bởi vì, DMA yêu cầu truy cập trực tiếp nhớ mà không thông qua nhớ 88 cache xử lý nên nội dung nhớ thấy DMA xử lý khác Xem thao tác đọc đĩa mà DMA lưu trực tiếp vào nhớ Nếu số vị trí nhớ DMA ghi vào mà vị trí cache, xử lý nhận giá trị cũ thực thao tác đọc Tương tự, thao tác ghi lại nhớ cache DMA đọc giá trị cũ trực tiếp từ nhớ giá trị cache chưa ghi lại 5.6 TÓM TẮT Trong chương giới thiệu tổng quan hệ thống lưu trữ nhập/xuất máy tính Cấu tạo đĩa từ bao gồm nhiều đĩa, đại lượng đặc trưng đĩa từ tốc độ quay, thời gian truy cập Bộ nhớ flash có nguyên lý hoạt động dựa EEPROM Ưu điểm nhỏ gọn, tiêu thụ điện năng… nên sử dụng ngày phổ biến Hệ thống bus dùng để kết nối thành phần bên máy tính Có hai loại bus: bus hệ thống bus nhập/xuất Hệ điều hành đóng vai trị quan trọng việc xử lý yêu cầu nhập/xuất như: lệnh cho thiết bị nhập/xuất, giao tiếp với xử lý, độ ưu tiên ngắt thiết bị nhập/xuất điều khiển truyền liệu thiết bị nhập/xuất nhớ kỹ thuật DMA 89 CÂU HỎI ÔN TẬP CHƢƠNG Cấu tạo nguyên lý hoạt động đĩa từ? Cấu tạo nguyên lý hoạt động nhớ flash? Bus chia thành loại? Đặc điểm bus đồng bộ? Đặc điểm bus khơng đồng bộ? Mơ hình thiết bị nhập/xuất ánh xạ vào nhớ gì? Mơ hình dùng tập lệnh nhập/xuất riêng gì? Kỹ thuật thăm dò hoạt động nào? Các bước để xử lý ngắt? 10 Kỹ thuật DMA hoạt động nào? TÀI LIỆU THAM KHẢO David A.Patterson., & John L.Hennessy (2007) Computer Architecture: A Quantitative Approach (fourth edition) San Francisco: Morgan Kaufmann David A.Patterson., & John L.Hennessy (2012) Computer organization and Design: The hardware/software interface (fourth edition) Waltham: Morgan Kaufmann Miles Murdocca., & Vincent Heuring (k.n.) Principles of Computer Architecture Retrieved from http://iiusaedu.com Võ Văn Chín., Nguyễn Hồng Vân., & Phạm Hữu Tài (2003) Giáo trình Kiến trúc máy tính Cần Thơ: Đại học Cần Thơ William Stallings (2010) Computer organization and Architecture: Designing for Performance (eighth edition) New Jersey: Prentice Hall 90