Khoa Kỹ thuật Máy tính – Đại học Cơng Nghệ Thông Tin 2015 Bài Tập Chương -oOo Các tập chương trích dẫn dịch lại từ: Computer Organization and Design: The Hardware/Software Interface, Patterson, D A., and J L Hennessy, Morgan Kaufman, Revised Fourth Edition, 2011 -Bài Tìm từ cụm từ danh sách cho phù hợp cho câu hỏi bên (Sinh viên sử dụng số thứ tự bên cạnh từ/cụm từ để trả lời) Chỉ sử dụng 01 lựa chọn phù hợp cho câu trả lời 1.1 1.2 1.3 1.4 1.5 1.6 1.7 Máy tính dùng để giải vấn đề lớn thông thường truy cập qua mạng (5 – supercomputer) 1015 byte 250 byte (7 – petabyte) Máy tính có kết hợp hàng trăm ngàn xử lý hàng terabyte nhớ (3 server) Các ứng dụng mang tính khoa học viễn tưởng ngày có lẽ diện tương lai gần.(1 – virtual worlds) Một loại nhớ gọi nhớ truy xuất ngẫu nhiên (12 – RAM) Một phần máy tính gọi đơn vị xử lý trung tâm (13 – CPU) Hàng ngàn vi xử lý tạo thành cluster (bó, cụm) lớn (8 – datacenters) Dịch: Nguyễn Hữu Nhân & Trần Thị Như Nguyệt CuuDuongThanCong.com Page https://fb.com/tailieudientucntt Khoa Kỹ thuật Máy tính – Đại học Công Nghệ Thông Tin 1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26 2015 Một vi xử lý chứa vài xử lý chip (10 – multicore processors) Máy tính để bàn khơng có hình bàn phím thường truy cập qua mạng (4 – low-end servers) Đây lớp máy tính có số lượng lớn này, chạy ứng dụng nhóm ứng dụng liên quan (9 – Embedded Computer) Ngôn ngữ đặc biệt sử dụng để diễn tả thành phần phần cứng (11 – VHDL) Máy tính cá nhân có hiệu tốt cho người dùng đơn lẻ với giá rẻ (2 – Desktop Computer) Chương trình mà dịch từ ngơn ngữ cấp cao xuống hợp ngữ (15 – Compiler) Chương trình mà chuyển từ hợp ngữ thành lệnh nhị phân/mã máy (21 – Assembler) Ngôn ngữ cấp cao cho xử lý liệu thương mại (25 – Cobol) Ngôn ngữ nhị phân mà xử lý hiểu (19 – Machine language) Các lệnh mà xử lý hiểu (17 – Instruction) Ngơn ngữ cấp cao cho tính tốn khoa học (26 – Fortran) Ngôn ngữ mô tả lệnh nhị phân máy tính thơng qua kí hiệu biểu diễn (symbol) (18 – Assembly language) Chương trình làm nhiệm vụ giao tiếp chương trình người dùng cấp cao phần cứng, cung cấp dịch vụ khác chức giám sát (14 – Operating system) Phần mềm chương trình phát triển người dùng (24 – Application software) Số nhị phân (có giá trị 1) (16 – bit) Lớp phần mềm phần mềm ứng dụng phần cứng mà chứa hệ điều hành trình biên dịch (23 – system software) Ngôn ngữ cấp cao sử dụng để viết ứng dụng phần mềm hệ thống (20 – C) Dạng ngơn ngữ linh động (có thể chạy nhiều tảng khác nhau), kết hợp từ cơng thức đại số tốn học phải biên dịch sang hợp ngữ trước chạy máy tính (22 – high-level language) 1012 byte 240 byte (6 – Terabyte) Bài 2.1 Cho hình màu sử dụng bit để hiển thị màu (đỏ (Red), xanh (Green), xanh đậm (Blue)) pixel với độ phân giải 1280x800 pixel Hãy cho biết độ lớn nhỏ đệm để chứa khung ảnh? Trả lời: 3,072,000 byte (Khoảng Mbyte) 2.2 Nếu máy tính có nhớ 2048 Mbyte, chứa tối đa khung ảnh, giả sử nhớ khơng chứa khác? Trả lời: số lượng khung (frame) = 2048 Mbyte/ Mbyte = 683 khung ảnh Dịch: Nguyễn Hữu Nhân & Trần Thị Như Nguyệt CuuDuongThanCong.com Page https://fb.com/tailieudientucntt Khoa Kỹ thuật Máy tính – Đại học Công Nghệ Thông Tin 2015 2.3 Một máy tính kết nối với mạng Ethernet với tốc độ 1Gb cần gửi tệp (file) có dung lượng 256 KB Hãy cho biết cần thời gian để hoàn thành? Trả lời: Tốc độ mạng: Mạng gigabit ==> truyền gigabit/giây = 125 Mbyte/ giây Kích thước File: 256 Kbyte = 0.256 Mbyte Thời gian truyền 0.256 Mbyte = 0.256/125 = 2.048 ms 2.4 Tìm thời gian cần đọc tệp từ DRAM, nhớ Flash, Đĩa từ ta cần 2µs để đọc từ nhớ cache Hình bên cho biết tốc độ truy cập loại nhớ: Cache DRAM Flash Memory Magnetic Disk 5ns 50 ns μs ms (Bảng cho ta biết tốc độ đọc loại nhớ, ý nhớ cache nhanh 10 lần nhớ DRAM, nhớ DRAM nhanh 100.000 lần tốc độ đĩa từ, nhớ flash nhanh 1000 lần đĩa từ) Trả lời: µs từ nhớ cache ==> 20 µs từ DRAM 20 µs từ DRAM ==> giây từ đĩa từ 20 µs từ DRAM ==> ms từ nhớ flash Bài Cho xử lý P1, P2 P3: chạy tập lệnh với tần số/tốc độ xung clock CPI cho bảng bên Bộ xử lý P1 P2 P3 Clock Rate Ghz 1.5 Ghz Ghz CPI 1.5 1.0 2.5 3.1 Bộ xử lý có hiệu suất cao dựa theo tiêu chí số lệnh thực thi giây (IPS) số triệu lệnh thực thi giây (MIPS)? Trả lời: IPS(P1) = 2Ghz / 1.5 = 1.33 × 109 MIPS(P1) = 1.33 × 103 IPS(P2) = 1.5Ghz/1.0= 1.5 × 109 MIPS(P2) = 1.5 × 103 IPS(P3) = 3Ghz/2.5= 1.2 × 109 MIPS(P3) = 1.2 × 103 Bộ xử lý thực thi nhiều lệnh giây xử lý có hiệu suất cao P2 có hiệu suất cao Dịch: Nguyễn Hữu Nhân & Trần Thị Như Nguyệt CuuDuongThanCong.com Page https://fb.com/tailieudientucntt Khoa Kỹ thuật Máy tính – Đại học Công Nghệ Thông Tin 2015 3.2 Nếu xử lý chạy chương trình hết 10 giây, tìm tổng số chu kì tổng số lượng lệnh tương ứng Trả lời Number of cycles Execution time = Clock rate Tổng số chu kì(P1) = 10 × × 109= 20 × 109 (chu kì) Tổng số chu kì(P2) = 10 × 1.5 × 109= 15 × 109 (chu kì) Tổng số chu kì(P3) = 10 × × 109= 30 × 109 (chu kì) Number of cycle = Number of instructions x CPI Number of instructions = Number of cycles CPI Tổng số lệnh (P1) = 20 × 109/1.5 = 13.33 × 109 (lệnh) Tổng số lệnh (P2) = 15 × 109/1 = 15 × 109 (lệnh) Số lượng lệnh (P3) = 30 × 109/2.5 = 12 × 109 (lệnh) 3.3 Nếu cố giảm 30% thời gian thực thi dẫn tới việc tăng 20% CPI Nếu vậy, tốc độ/tần số xung clock xử lý tương ứng phải bao nhiêu? Lưu ý: sử dụng liệu câu 3.2 Trả lời: Ta có: (CPI mới) = (CPI cũ) x 1.2 CPI P1 = 1.5 x 1.2 = 1.8 CPI P2 = x 1.2 = 1.2 CPI P3 = 2.5 x 1.2 = Thời gian thực thi = (thời gian cũ) x 0.7 = 10 x 0.7 = (giây) Execution time = Number of intructions x CPI Clock rate è Clock rate = Number of intructions x CPI Execution time (Number of instructions lấy câu 3.2) Thay số vào ta có tốc độ xử lý: Clock rate(P1) = 13.33 x 109 x 1.8/7 = 3.43 GHz Clock rate(P2) = 15 x 109 x 1.2 / = 2.57 GHz Clock rate(P3) = 12 x 109 x / = 5.14 Ghz Dịch: Nguyễn Hữu Nhân & Trần Thị Như Nguyệt CuuDuongThanCong.com Page https://fb.com/tailieudientucntt Khoa Kỹ thuật Máy tính – Đại học Cơng Nghệ Thơng Tin Các câu bên sử dụng liệu bảng sau Processor Rate Clock No Instructions P1 GHz 20.109 P2 1.5 GHz 30.109 P3 GHz 90.109 2015 Time 7s 10s 9s 3.4 Tìm IPC (số lệnh thực chu kì – instruction per cycle) cho xử lý Trả lời: IPC = 1/CPI = Number of instructions/(Execution time × clock rate) IPC(P1) = 20.109 / (7 x 2Ghz) = 1.42 IPC(P2) = 30.109 / (10 x 1.5Ghz) = IPC(P3) = 90.109 / (9 x 3Ghz)= 3.33 3.5 Tìm tốc độ/tần số xung clock cho P2 để P2 giảm thời gian thực thi P1 Trả lời: Execution time = Number of intructions x CPI Clock rate è Clock rate = Number of intructions x CPI Execution time Clock rate (new) = Number of instructions × CPI/ Execution time (new) Clock rate (old) = Number of instructions × CPI/ Execution time (old) Clock rate (new)/ Clock rate (old) = Execution time (old)/ Execution time (new) Clock rate (new) = (Clock rate (old) x 10/7) = 1.5 Ghz x10/7 = 2.14 Ghz 3.6 Tìm số lượng lệnh cho P2 mà giảm thời gian thực thi tới P3 Trả lời: Number of instructions(new) = (clock rate x execution time(new)) / CPI Number of instructions(old) = (clock rate x execution time(old)) / CPI Number of instructions(new)/Number of instructions(old)= execution time(new)/ execution time(old) Number of instructions(new) = Number of instructions(old) x 9/10 = 30 x 109 x / 10 = 27 x 109 Bài Xét cách thiết kế thực khác kiến trúc lệnh lên hai xử lý P1 P2 Có lớp lệnh: A, B, C D Tốc độ clock CPI cách thiết kế cho bảng bên Dịch: Nguyễn Hữu Nhân & Trần Thị Như Nguyệt CuuDuongThanCong.com Page https://fb.com/tailieudientucntt Khoa Kỹ thuật Máy tính – Đại học Cơng Nghệ Thông Tin Bộ xử lý P1 P2 Clock rate 1.5 Ghz Ghz CPI Class A CPI Class B 2 CPI Class C 2015 CPI Class D 4.1 Cho chương trình với 106 lệnh chia thành lớp sau: 10% lớp A, 20% lớp B, 50% lớp C 20% lớp D Cách thiết kế thực chạy nhanh (hay xử lý chạy nhanh hơn) với chương trình này? Trả lời: Số lượng lệnh tương ứng với lớp: Class A: 105 lệnh Class B: × 105 lệnh Class C: × 105 lệnh Class D: × 105 lệnh Execution time = Number of intructions x CPI Clock rate Với xử lý P1: Thời gian lệnh thuộc nhóm A chạy = (105/1.5 x 109) = 0.66 × 10-4 Thời gian lệnh thuộc nhóm B chạy = 2.66 × 10-4 Thời gian lệnh thuộc nhóm C chạy = 10 × 10-4 Thời gian lệnh thuộc nhóm D chạy = 5.33 × 10-4 Thời gian thực thi chương trình xử lý P1 = 18.65 × 10-4 Với xử lý P2: Thời gian lệnh thuộc nhóm A chạy = 10-4 Thời gian lệnh thuộc nhóm B chạy = × 10-4 Thời gian lệnh thuộc nhóm C chạy = × 10-4 Thời gian lệnh thuộc nhóm D chạy = × 10-4 Thời gian thực thi chương trình xử lý P2 = 11 × 10-4 è P2 nhanh 4.2 Tìm CPI chung/trung bình xử lý với chương trình trên? Trả lời: CPI = Execution time x Clock rate Number of instructions CPI(P1) = 18.65 × 10-4 × 1.5 × 109/106 = 2.79 CPI(P2) = 11 × 10-4× × 109/106= 2.2 4.3 Tìm tổng số chu kì xung clock chương trình P1 P2 Trả lời: Number of clock cycles = Number of instructions x CPI Dịch: Nguyễn Hữu Nhân & Trần Thị Như Nguyệt CuuDuongThanCong.com Page https://fb.com/tailieudientucntt Khoa Kỹ thuật Máy tính – Đại học Cơng Nghệ Thơng Tin 2015 Number of clock cycles(P1) = Number of instructionsA x CPIA + Number of instructionsB x CPIB + Number of instructionsC x CPIC + Number of instructionsD x CPID = 105 × + × 105× + × 105× + × 105× = 28 × 105 Number of clock cycles (P2): tương tự 4.4 Giả sử lệnh tốn học (Arith) cần chu kì; đọc liện từ nhớ (Load) ghi liệu vào nhớ (Sw) chu kì; lệnh nhánh (Branch) chu kì Tìm thời gian thực thi chương trình chạy xử lý GHz? Biết số lệnh loại chương trình chạy bảng: Arith 500 Store 50 Load 100 Branch 50 Total 700 Trả lời: Execution time = Number of intructions x CPI Clock rate = (500 x + 50 x + 100 x + 50 x 2) / (2 x109) = 675 x 10-9 s = 675 ns 4.5 Tìm CPI cho chương trình Trả lời: CPI = Execution time x Clock rate Number of instructions CPI = 675 × 10-9 × × 109 /700 = 1.92 4.6 Nếu số lượng lệnh load giảm nửa, chương trình tăng tốc lần (speedup) CPI chương trình bao nhiêu? Trả lời: Execution time = Number of intructions x CPI Clock rate Execution Time = (500 × + 50 × + 50 × + 50 × 2) × 0.5 × 10-9 = 550 ns Speed-up = 675 ns/550 ns = 1.23 CPI = 550 × 10-9 × × 109 /700 = 1.57 Bài Xét cách thiết kế thực khác (bộ xử lý P1 P2) tập lệnh Có lớp lệnh (A, B, C, D E) tập lệnh Tốc độ/Tần số xung clock CPI lớp cho bảng Dịch: Nguyễn Hữu Nhân & Trần Thị Như Nguyệt CuuDuongThanCong.com Page https://fb.com/tailieudientucntt Câu a Câu b P1 P2 P1 P2 Clock Rate 1.0 GHz 1.5 Ghz 1.0 GHz 1.5 Ghz Khoa Kỹ thuật Máy tính – Đại học Công Nghệ Thông Tin 2015 CPI Class A CPI Class E 1 CPI Class B 2 CPI Class C 2 CPI Class D 4 5.1 Khi máy tính thực thi chuỗi lệnh nào, đạt tốc độ nhanh máy tính xem đạt hiệu suất đỉnh điểm (peak performance) Tính số lượng lệnh thực thi giây P1 P2 đạt hiệu suất đỉnh điểm Trả lời: a Hiệu suất đỉnh điểm P1 xảy P1 chạy đoạn lệnh mà tất lệnh nằm lớp lệnh A (vì A có CPI nhỏ nhất) Khi đó: Số lượng lệnh thực thi giây(P1) = number of instructions/execution time = clock rate(P1)/CPI(A) = 109/1 = 109 lệnh/giây = G lệnh/giây Tương tự, hiệu suất cao P2 xảy P2 chạy đoạn lệnh mà tất lệnh nằm lớp lệnh A lớp lệnh B lớp lệnh C, chúng có CPI nhỏ Số lượng lệnh thực thi giây(P2) = number of instructions/execution time = clock rate(P2)/CPI(A) = 0.75G lệnh/giây b Số lượng lệnh thực thi giây(P1) = 1G inst/sec Số lượng lệnh thực thi giây(P2) = 1.5G inst/sec 5.2 Nếu số lệnh cần thực thi chương trình chia cho lớp lệnh, ngoại trừ lớp lệnh A có số lệnh gấp đơi lớp lệnh khác Máy tính chạy nhanh nhanh lần? Trả lời: a Gọi I tổng số lệnh chương trình Số lệnh cho lớp lệnh B, C, D, E: I/6 = 0.167I Số lệnh cho lớp A: 0.333I số lệnh Class A B C D E Total Number of Instructions CPI Number of Instructions x CPI P1 CPI Number of Instructions x CPI P2 0.333I 0.167I 0.167I 0.167I 0.167I 0.333I 0.334I 0.501I 0.668I 0.501I 2.337I 2 4 0.666I 0.334I 0.334I 0.668I 0.668I 2.67I Dịch: Nguyễn Hữu Nhân & Trần Thị Như Nguyệt CuuDuongThanCong.com Page https://fb.com/tailieudientucntt Khoa Kỹ thuật Máy tính – Đại học Cơng Nghệ Thơng Tin 2015 Ta có: Execution time = Number of intructions x CPI Clock rate Execution time (P1) = 2.337 I / GHz = 2.337 x 10-9 x I (s) Execution time (P2) = 2.67 I / 1.5GHz = 1.78 x 10-9 x I (s) Máy P2 chạy nhanh P1 nhanh 2.337/1.78 = 1.3 lần b P1 nhanh P2 1.03 lần (SV tự tính) 5.3 Nếu số lượng lệnh cần thực thi chương trình chia cho lớp lệnh, ngoại trừ lớp E có số lệnh gấp đơi lớp lệnh khác Máy tính chạy nhanh nhanh lần? Trả lời: Giống câu 5.2 a P2 is 1.31 times faster than P1 b P1 is 1.00 times faster than P2 Bảng cho biết phân chia số lượng lệnh theo nhóm lệnh chương trình khác Sinh viên sử dụng liệu cho câu bên để tìm hiểu ảnh hưởng đến hiệu xử lý MIPS Số lệnh Compute Load Store Branch total Program 1000 400 100 50 15500 Program 1500 300 100 100 1750 5.4 Giả sử lệnh tính tốn (Compute) chu kì, lệnh đọc liệu từ nhớ (Load) ghi liệu vào nhớ (Store) 10 chu kì lệnh rẽ nhánh (Branch) chu kì Dựa vào bảng liệu tính thời gian thực thi xử lý MIPS GHz Trả lời: P1 P2 Số lệnh Số chu kỳ xung clock tương Số lệnh Số chu kỳ xung clock tương ứng Loại CPI nhóm ứng nhóm nhóm nhóm lệnh (Program 1) (Program 2) Number of instructions x Number of instructions x CPI CPI Compute Load Store Branch Tổng: 10 10 1000 400 100 50 Execution time = 1000 4000 1000 150 6150 1500 300 100 100 1500 3000 1000 300 5800 Number of cycles Clock rate Execution time (P1) = 6150/3 Ghz = 2.05 x 106s = 2.05 µs Execution time (P2) = 5800/3 Ghz = 1.93 µs Dịch: Nguyễn Hữu Nhân & Trần Thị Như Nguyệt CuuDuongThanCong.com Page https://fb.com/tailieudientucntt Khoa Kỹ thuật Máy tính – Đại học Cơng Nghệ Thơng Tin 2015 5.5 Giả sử lệnh tính tốn (Cmpute) chu kì, lệnh đọc liệu từ nhớ (Load) ghi vào nhớ (Store) chu kì lệnh rẽ nhánh (Branch) chu kì Dựa vào bảng liệu tính thời gian thực thi xử lý MIPS 3GHz Trả lời: P1 P2 Loại CPI Number of CPI x Number of CPI x lệnh instructions1 Number of instruction2 Number of instruction1 instruction2 1000 1500 Compute 1000 1500 800 600 Load 400 300 200 200 Store 100 100 150 300 Branch 50 100 2150 2600 Tổng Execution time (P1) = 2150/3 Ghz = 716 x 106s = 0.71 µs Execution time (P2) = 2600/3 Ghz = 0.86 µs Dịch: Nguyễn Hữu Nhân & Trần Thị Như Nguyệt CuuDuongThanCong.com Page 10 https://fb.com/tailieudientucntt ...Khoa Kỹ thuật Máy tính – Đại học Cơng Nghệ Thông Tin 1. 8 1. 9 1. 10 1. 11 1 .12 1. 13 1. 14 1. 15 1. 16 1. 17 1. 18 1. 19 1. 20 1. 21 1.22 1. 23 1. 24 1. 25 1. 26 2 015 Một vi xử lý chứa vài xử lý chip (10 – multicore... (MIPS)? Trả lời: IPS(P1) = 2Ghz / 1. 5 = 1. 33 × 10 9 MIPS(P1) = 1. 33 × 10 3 IPS(P2) = 1. 5Ghz /1. 0= 1. 5 × 10 9 MIPS(P2) = 1. 5 × 10 3 IPS(P3) = 3Ghz/2.5= 1. 2 × 10 9 MIPS(P3) = 1. 2 × 10 3 Bộ xử lý thực thi... CPI Compute Load Store Branch Tổng: 10 10 10 00 400 10 0 50 Execution time = 10 00 4000 10 00 15 0 615 0 15 00 300 10 0 10 0 15 00 3000 10 00 300 5800 Number of cycles Clock rate Execution time (P1) = 615 0/3