Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 314 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
314
Dung lượng
22,89 MB
Nội dung
Kiến trúc máy tính Computer architecture To improve is to change; to be perfect is to change often Winston Churchill 10/31/21 SET - HUST Nội dung mơn học • • • • • • 10/31/21 Chương 1: Giới thiệu Chương 2: Kiến trúc tập lệnh MIPS – 32 bits Chương 3: Bộ xử lý MIPS – 32 bits Chương 4: Xử lý đường ống Chương 5: Bộ nhớ máy tính Chương 6: Tổ chức Vào/ra SET - HUST Tài liệu tham khảo • • • http://www-inst.eecs.berkeley.edu/~cs61c/fa16/ http://inst.eecs.berkeley.edu/~cs61c/sp15/ Computer Organization and Design, 5th Edition : The Hardware/Software Interface 10/31/21 SET - HUST Lịch sử phát triển máy tính ENIAC ENIAC (1946) (1946) Cơ Cơ • Blaise Blaise Pascal Pascal (1642) (1642) • 1642 1642 1945 1945 18.000 18.000 bóng bóng đèn đèn Transistor Transistor (1958) (1958) IC(Integrated IC(Integrated Circuit) Circuit) • Burroughs Burroughs 6500 6500 • NCR, NCR, CDC CDC 6600 6600 • LSI LSI –– VLSI VLSI • Xử Xử lý lý song song song song 1500 1500 rơle rơle 30 30 tấn 140 140 kw kw 1970s to mid 1980s: 2000s: 1950s : Máy tính số học Có thiết kế tập lệnh trình biên dịch 1960s: Có hệ điều hành, quản lý nhớ mức thấp Bộ nhớ chia sẻ đa xử lý 1990s: CPU, nhớ , I/O system, Multi-processors, kết nối mạng, Thiết kế mức VLSI 10/31/21 SET - HUST Kiến trúc đặc trưng, có khả cấu hình lại, di động, tiêu thụ lượng, xử lý song song Máy tính đại Personal Mobile Devices Máy tính đại Máy tính đại Quan niệm truyền thống cấu trúc máy tính Phần Phần mềm mềm hệ hệ thống thống Phần Phần mềm mềm ứng ứng dụng dụng Phần Phân loại Chức Máy tính chuyên dụng Cấu trúc xử lý Máy tính nhúng RISC Cấu tạo CISC ARM, SuperH, MIPS, SPARC, DEC Alpha, PA-RISC-V, PIC, PowerPC IBM 10/31/21 cứng SET - HUST Von newmann Harvard PDP-11, VAX, Motorola 68k, x86 intel intel Quan niệm truyền thống cấu trúc máy tính Application (ex: browser) Operating Compiler Software System (Mac OSX) Assembler Instruction Set Hardware Processor Memory I/O system Architecture Datapath & Control Digital Design Circuit Design transistors Cấu trúc máy tính Graphical Interface Application Application Programming Libraries Operating System System Programming Programming Language Assembler Language Instruction Set Architecture - “Machine Language” Processor IO System Firmware Computer Design Microprogramming Datapath and Control Digital Design Logic Design Circuit Design Fabrication Circuits and devices Semiconductors Materials 10/31/21 SET - HUST 10 Xử lý trượt đệm (Khối kích thước từ) • • Đọc trượt (I$ D$): thời gian read_miss_penalty – dừng đường ống, nạp khối từ nhớ mức kế tiếp, đưa vào đệm gửi từ yêu cầu tới xử lý, tiếp tục đường ống Ghi trượt (D$) thời gian write_miss_penalty write_buffer_stalls – Cấp phát ghi – Đầu tiên đọc khối từ nhớ ghi từ vào khối or – Không cấp phát ghi– bỏ qua việc ghi vào đệm; ghi từ vào đệm ghi (tức ghi vào nhớ mức kết tiếp), không cần dừng đệm ghi không đầy SET-HUST, 22/03/2011 Chương Bộ nhớ - Phân cấp nhớ 323 Đo hiệu đệm • Giả sử thời gian truy cập nhớ trúng đệm bao gồm chu thông thường CPU thì: Tcpu = I × CPI × Tc = I × (CPIideal + MemStallC ) × Tc CPIstall Số chu kỳ MemStallC tổn thất trượt tổng read-stalls write-stalls Read-stall cycles = reads/program × read miss rate × read miss penalty Write-stall cycles = (writes/program × write miss rate × write miss penalty) + write buffer stalls Với đệm ghi xuyên, ta có cơng thức đơn giản Memory-stall cycles = accesses/program × miss rate × miss penalty 324 Ảnh hưởng hiệu đệm • Tổn thất tương đối đệm tăng hiệu xử lý tăng (tăng tốc độ đồng hồ và/hoặc giảm CPI) – Tốc độ nhớ không cải thiện nhanh tốc độ xử lý Tổn thất trượt dùng để tính CPIstall đo theo số chu kỳ xử lý cần thiết để xử lý trượt – CPIideal thấp ảnh hưởng dừng trượt lớn • Bộ xử lý với CPIideal = 2, tổn thất trượt 100, 36% lệnh load/store, tỉ lệ trượt nhớ I$ 2% nhớ D$ 4% • • • Nếu CPIideal giảm xuống 1? 0.5? 0.25? Nếu tỉ lệ trượt nhớ D$ tăng lên 1%? 2%? Nếu tốc độ đồng hồ CPU tăng gấp (tổn hao trượt tăng gấp 2)? SET-HUST, 22/03/2011 Chương Bộ nhớ - Phân cấp nhớ 325 • Ảnh hưởng hiệu đệm Tổn thất tương đối đệm tăng hiệu xử lý tăng (tăng tốc độ đồng hồ và/hoặc giảm CPI) – Tốc độ nhớ không cải thiện nhanh tốc độ xử lý Tổn thất trượt dùng để tính CPIstall đo theo số chu kỳ xử lý cần thiết để xử lý trượt • – CPIideal thấp ảnh hưởng dừng trượt lớn Bộ xử lý với CPIideal = 2, tổn thất trượt 100, 36% lệnh load/store, tỉ lệ trượt nhớ I$ 2% nhớ D$ 4% MemStallC = 2% × 100 + 36% × 4% × 100 = 3.44 CPIstalls = + 3.44 = 5.44 gấp lần CPIideal ! • • • Nếu CPIideal giảm xuống 1? 0.5? 0.25? Nếu tỉ lệ trượt nhớ D$ tăng lên 1%? 2%? Nếu tốc độ đồng hồ CPU tăng gấp (tổn hao trượt tăng gấp 2)? SET-HUST, 22/03/2011 Chương Bộ nhớ - Phân cấp nhớ 326 Nguyên nhân trượt đệm • Khơng tránh được: – Lần đầu truy cập khối – Giải pháp: tăng kích thước khối (làm tăng tổn thất trượt, khối lớn làm tăng tỉ lệ trượt) • Dung lượng: • Xung đột: – Bộ đệm khơng thể chứa tồn khối truy cập chương trình – Giải pháp: tăng kích thước đệm (có thể làm tăng thời gian truy cập) – Nhiều vị trí nhớ ánh xạ vào vị trí đệm – Giải pháp 1: tăng kích thước đệm – Giải pháp 2: tăng độ kết hợp đệm (có thể tăng thời gian truy cập) SET-HUST, 22/03/2011 Chương Bộ nhớ - Phân cấp nhớ 327 Tỷ số trượt đệm Miss ratio = % of cache misses = (# cache misses / # memory accesses) Tỷ lệ trượt (%) = (số lần trượt/số lần truy nhập) Q: Hiệu thay đổi tỷ số trượt đệm giảm từ 10.5% đến 3.5%? Slower Stays the same Faster A: Faster Các ứng dụng chạy nhanh hơn, biết nhanh ơn Tỷ lệ Trúng cache lớn nhiều so với trượt Average Memory Access Time (AMAT -Thời gian truy cập nhớ trung bình ) • Số chu kỳ trung bình cho truy cập nhớ = (hit time) + (miss %)*(miss time + miss penalty) Miss Miss Penalty Penalty là thời thời gian gian sau sau khi tìm tìm kiếm kiếm trong cache cache Hit time = Hit (1cycle) Miss time = Miss (1 cycle) Miss penalty = Penalty % miss = 2/6 = 33% AMAT = (1) + (33%)*(1 + 3) = 2.3 cycles per access Ví dụ: AMAT Machine – 100 truy nhập DRAM – chu kỳ truy nhập cache (hit or miss) • Tính AMAT cho lbm? – cache có dung lượng 256kB ? • 6% miss ratio • (1) + (6%)*(1+100) = 7.06 cycles per memory access – cache có dung lượng 8MB ? • 3% miss ratio • (1) + (3%)*(1+100) = 4.03 cycles per memory access Machine – 100 cycles to DRAM A: Slower cache – cycle cache access time (hit or miss) Cache cycles cho Machine chu • Tính AMAT cho bzip2? kỳ cho Machine Diều làm ảnh hưởng đến – 256kB cache? AMAT.Ứng dụng khác thấy 8MB cache có • 1.5% miss ratio Q: Tại bzip2’s AMAT với 256kB cache gần 3% miss ratio lbm bzip2 có 1.5% • (2) + (1.5%)*(2+100) = 3.53 giống với lbm’s với 8MB? miss ratio với cache 256kB Slower cache Different miss ratios Different applications Performance impacts of memory access time • Ảnh thưởng cace đến hiệu nào(CPI)? – 100 chu kỳ trừng phạt trượt đệm – 3% tỷ lệ trượt – 1.33 lần truy nhập nhớ lệnh (1 for instruction 33% for data) – CPI = 1.0 thực thi thơng thường (lý tưởng) • Hiệu thay đổi nào? – CPI = CPIExecution + Memory stall cycles per instruction = 1.0 + 1.33*0.03*100 = 4.99 – Phân cấp nhớ làm xử lý chạy chậm lần! • Caches quan trọng! Caches quan trọng để tăng hiệu How much does cache matter? Phân tách lệnh liệu nhớ đệm • Cần nạp lệnh(IF) liệu (MEM) thời điểm • Cần loại cache: – Instruction cache (just instructions) – Data cache (just data) • AMAT phân chia cache: – AMAT: (% lệnh truy cập)*(hit time + (tỷ lệ trượt đệm lệnh)*(miss time + miss penalty)) + (% liệu truy cập)*(hit time + (tỷ lệ trượt đệm liệu)*(miss time + miss penalty)) • Ví dụ: – Thời gian truy nhập cache cycle (hit or miss) thời gian truy nhập nhớ 100 cycle – I‐cache: 1% miss ratio, D ‐cache: 5% miss ratio – 33% lệnh loads/stores → 25% truy cập liệu / 75% truy cập lệnh – (75%)*(1 + (1%)*(1+100)) + (25%)*(1 + (5%)*(1+100)) = 1.5 + 1.5 = 3.0 AMD/Intel caches Heterogeneous processor caches Memory hierarchy • We want big and fast – Build a hierarchy where we keep the most important data in fast memory – Other data goes in slow memory – If we move the data correctly we provide the illusion of fast and big • Registers accesses/cycle 32 ‐64 • Cache 1‐10 cycles 8kB‐256kB • Cache 40 cycles 4‐20MB • DRAM 200 cycles 4‐16GB • Flash 1000+ cycles 64‐512GB • Hard Disk 1M+ cycles ‐4TB Summary: how to make the memory hierarchy work • different cache types – Fully‐associative : Have to search all blocks, but very flexible – Direct‐mapped: Only one place for each block, no flexibility – Set‐associative: Only have to search one set for each block, flexible • We can adjust the block (line) size to reduce the overhead of tags • We figure out where data goes in a cache by looking at the address – Last bits are the byte in the word – Next N bits are the word in the cache block – Remaining bits are for the tag • We have different write policies – Write‐through: slow, simple – Write‐back: fast (keeps the data just in the cache), more complex • Performance effects are due to the average memory access time ... Kiến trúc đặc trưng, có khả cấu hình lại, di động, tiêu thụ lượng, xử lý song song Máy tính đại Personal Mobile Devices ? ?Máy tính đại ? ?Máy tính đại Quan niệm truyền thống cấu trúc máy tính. .. xung đồng hồ máy tính B Ví dụ • Cơng thức để tính thời gian CPU, máy tính A thực chương trình: Tcpu , A = CA fc, A • Số chu kỳ máy tính A dùng để thực chương trình: • Số chu kỳ máy tính B dùng... × I Máy tính A B triển khai kiến trúc tập lệnh Máy A có chu kỳ đồng hồ 250ps, CPI hiệu dụng cho chương trình P 2,0 Máy B có chu kỳ đồng hồ 500ps, CPI hiệu dụng cho chương trình P 1,2 Máy tính