Ôn tập cuối kỳ môn kiến trúc máy tính

21 239 0
Ôn tập cuối kỳ môn kiến trúc máy tính

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH Ơn tập cuối kỳ Mơn: Kiến Trúc Máy Tính - 504002 TP HCM 11/2013 Nội dung I Single clock processor I.1 Single clock processor .3 I.2 Bài tập .6 I.3 Đáp án/Gợi ý II Pipeline processor .9 II.1 Pipeline processor II.2 Bài tập 11 II.3 Đáp án/gợi ý 12 III Memory .14 III.1 Memory 14 III.2 Bài tập: 19 III.3 Đáp án/Gợi ý 20 Thực hành kiến trúc máy tính Ơn tập ktmt CS 2013 Các yếu tố ảnh hưởng đến hiệu xuất hệ thống - Độ dài chương trình (instruction count) Số chu kỳ lệnh (CPI) Thời gian chu kỳ (clock cycle time) Các kiểu format tập lệnh MIPS - I Op: opcode lệnh Rs, Rt, Rd: ghi Sa: dùng lệnh shift Immediate: đại diện cho số Funct: bit function Single clock processor I.1 Single clock processor - Ưa điểm: clock chu kỳ Nhược điểm: chu kỳ tốn nhiều thời gian, lệnh dù nhanh hay chậm thực thi chu kỳ Kiến trúc single cycle o Thanh PC trỏ đến lệnh thực thi o Instruction memory: chứa code thực thi, khối cho phép đọc o Registers file chứa 32 ghi, cần bit để xác định ghi (25=32)  Để xác định chi tiết ghi ta tham khảo bảng ghi o Bộ mở rộng dấu: mục đích mở rộng dấu từ số 16bit  32bits o Bộ chọn (MUX): dùng để chọn ngõ vào trường hợp có nhiều ngõ vào ngõ ra, hoăc chọn ngõ trường hợp có ngõ vào nhiều ngõ Tín hiệu select định lựa chọn o ALU: thực tính tốn o Data memory: vùng nhớ để chứa liệu phần data Chỉ có lệnh LOAD STORE truy xuất vào khối Hình 1: Kiến trúc single cycle processor - Bảng ghi: - Bảng giá trị ALUop Input output Op[6bit]funct[6bit]ALUCtrl R-type Add ADD 4bit encoding 0000 R-type R-type R-type R-type R-type Addi Slti Andi Ori Xori Lw Sw Beq Bne J - Sub And Or Xor Slt X X X X X X X X X X SUB AND OR XOR SLT ADD SLT AND OR XOR ADD ADD SUB SUB x 0010 0100 0101 0110 1010 0000 1010 0100 0101 0110 0000 0000 0010 0010 X Ý nghĩa tín hiệu điều khiển Ta mặc định hiểu tín hiệu tích cực 1, tín hiệu khơng tích cực Tín hiệu RegDest RegWrite ExtOp ALUSrc Memwrite MemRead MemtoReg Beq, Bne J PCSrc ALUop Ý nghĩa Chọn ghi đích Cho phép ghi kết ngược vào ghi Dùng cho phần mở rộng dấu dùng số Chọn kiểu thực thi dựa vào kiểu lệnh hình xxx Cho phép ghi vào vùng data memory (dùng cho lệnh store) Cho phép đọc từ vùng data memory (dùng cho lệnh load) Dùng để chọn đường từ data memory đến ghi (lệnh load) Giá trị = Rd làm ghi đích Cho phép Giá trị = Rt làm ghi đích Khơng cho phép Mở rộng dấu Thanh ghi với số Không quan tâm, output khối zero Thanh ghi với ghi Cho phép ghi Không cho phép ghi Cho phép đọc Không cho phép đọc Chọn đường từ data Chọn đường từ kết memory đến ALU đến ghi ghi(lệnh load) (dùng cho lệnh tính tốn xong kết lưa kết vào ghi) Dùng cho lệnh nhảy có điều Nếu điều kiện nhảy thỏa Khi điều kiện không thỏa, kiện mãn, PC dời đoạn PC = PC + ( thực thi đến nhãn lệnh Dùng cho lệnh nhảy khơng có Nhảy đến nhãn cần PC đến lệnh điều kiện Chọn nguồn cho PC Khi lệnh nhảy xảy Khi lệnh nhảy ko xảy Chọn thành phần tính X X ALU (trong ALU có nhiều bộ, cộng, nhân, OR, AND …) Vì có nhiều nên cần dùng nhiều bit Tham khảo bảng Chú ý: - Mình khơng quan tâm đến RegDest,Memread, MemtoReg tín hiệu RegWrite = Khi ALUSrc = ta khơng quan tâm đến Extop Tham khảo thêm tính hiệu lệnh cụ thể slide “Main Control Signal Values” silde 45 Bảng liệt kê đường có độ trễ lâu lệnh (bỏ qua độ trễ mở rộng dấu, MUX, ADDER, dây, PC) Kiểu lệnh ALU Load Store Branch Jump Data path Instruction Fetch Instruction Fetch Instruction Fetch Instruction Fetch Instruction Fetch Decode Reg Read Decode Reg Read Decode Reg Read Reg Read Br Target Decode PC Write ALU Compute Address Compute Address Compare & PC Write Reg Write Memory Read Reg Write Memory Write I.2 Bài tập 1) Dùng lại kiến trúc miêu tả hình để giải câu sau: Cho bảng delay khối sau: I-Mem Adder Mux ALU Regs D-Mem Control 200ps 100ps 30ps 180ps 150ps 200ps 100ps a) Xác định đường có độ trễ lâu lệnh AND, LOAD, tính độ trễ đó? b) Xác định tín hiệu khối control unit (main Unit) thực thi lệnh BEQ $1, $2, ABC Với $1 = 0x00FF, $2 = 0x00FE c) Thành phần phần cứng không sử dụng ta thực thi lệnh SLTI, lệnh J 2) Bỏ qua delay khối add, mux, control a) Xác định data path thời gian kiểu lệnh a ALU b LOAD c STORE d BRANCH e JUMP b) Xác định thời gian, single cycle multi-cycle c) Giả sử có chương trình gồm 40% ALU, 20% Loads, 10% stores, 20% branches, & 10% jumps a Tính CPI trường hợp single cycle , multi cylce b Tính speed up I.3 Đáp án/Gợi ý 1a) - lệnh ADD : I-MEM (200)  REGs(150)  MUX(30)  ALU(180)  MUX(30)  REGs(150) = 740 lệnh LOAD : I-MEM (200)  REGs(150)  MUX(30)  ALU(180) D-MEM(200)  MUX(30)  REGs(150) = 940 1b) - Xét lệnh BEQ $1, $2, ABC Với $1 = 0x00FF, $2 = 0x00FE , lệnh có ý nghĩa ghi $1 mà ghi $2 nhảy đến nhãn ABC Mà ta thấy nội dung ghi $1 $2 khác nên lệnh BEQ khơng thực nhảy đến nhãn ABC từ ta đưa tín hiệu cho lệnh sau: Tín hiệu RegDest RegWrite ExtOp ALUSrc Memwrite MemRead MemtoReg Beq Bne J Giá trị X X 0 X X 0 Giải thích Khơng quan tâm Khơng ghi kết vào ghi Không quan tâm Thanh ghi với ghi Không truy xuất vào vùng data Không quan tâm Không quan tâm Lệnh BEQ Không phải lệnh BNE Lệnh branch lệnh jump PCSrc ALUop 0010 Điều kiện nhảy không xảy Tham khảo bảng xxx 1c) - lệnh SLTI dùng để set giá trị ghi đích lên ghi đem so sánh nhỏ số cho trước, ngược lại reset giá trị ghi đích xuống nếu ghi đem so sánh lớn số cho trước Ví dụ SLTI $1, $2, 100 ghi $1 = $2 < 100, ngược lại $1 = $2 >= 100 từ ta xét đường lệnh sau: Qua I-MEM (lệnh qua I-MEN) -> qua control unit, reg files, không dùng mở rộng dấu, không dùng công cho PC, dùng mux  qua ALU  không dùng D-MEM  qua MUX , Reg files 2a) Instruction class ALU Load Store Branch Jump Instruction memory 200 200 200 200 200 Register read 150 150 150 150 150 ALU Operation 180 180 180 180 Data Register memory Write 150 200 150 200 Total 680ps 880ps 730ps 530ps 350ps 2b) - Tính thời gian single cycle = max tất lệnh , cụ thể trường hợp mày lệnh LOAD có giá trị lớn ( thời gian thực thi lâu nhất)  single cycle = 880ps - Tính thời gian multi cycle = max bước(IF- INSTRUCTION MEMORY, ID – REG FILES, EXE- ALU, MEM – DATA MEMORY, WRITE BACK – REG FILES) lệnh, cụ thể trường hợp bước Instruction memory tốn nhiều thơi gian  multi cycle = 200ps 2c) - - CPI số chu kỳ lệnh o CPI single cycle = o CPI multi cycle = 0.4×4 + 0.2×5 + 0.1×4+ 0.2×3 + 0.1×2 = 3.8 Speed up = thời gian chạy single cycle / thời gian chạy multi cycle = (1 * 880) / ( 3.8 * 200) = 880/760 = 1.16 Thời gian chạy chương trình = CPI * thời gian cycle II Pipeline processor II.1 Pipeline processor - - Pipe line chia lệnh thực thi thành bước, bước thực thi trong chu kỳ o IF: lấy lệnh từ I-MEM lên o ID: giải mã lệnh lệnh gì, đọc giá trị ghi, biết địa cho lệnh nhảy, rẻ nhánh o EX: thực thi lệnh tính tốn địa cho lệnh load/store o MEM: truy xuất data lệnh load/store o WB: ghi ngược kết lại ghi Hiệu suất pipe line với single cycle Ta chia lệnh thành k bước o Thời gian thực thi n lệnh single cycle = n * single cycle o Thời gian thực thi n lệnh pipe line = (k + n -1) * pipeline clock cycle Ta giả sử single cycle = k* pipeline clock cycle o Khi speedup = (n* k* pipeline clock cycle)/ ((k + n -1) * pipeline clock cycle ) Khi n lớn speedup tiến đến k (tức pipeline nhanh tối đa gấp k lần single cycle) Chú ý: - - Pipeline không rút ngắn thời gian thực thi lệnh, mà tăng hiệu xuất lên cách tăng thông máy Khi mà bước lệnh có thời gian thực thi khác làm giảm speed up Thời gian fill drain đồng thời làm giảm speed up Để thực pipeline người ta dùng ghi để lưa kết lại bước Tín hiệu từ khối control unit ( main control) o Tất tín hiệu điều khiển sinh bước ID Mỗi bước dùng số tín hiệu điều kiển o RegDst dùng bước ID o ExtOp, ALUSrc, ALUCtrl ,J, Beq, Bne, zero dùng bước EXE o MemRead, MemWrite, MemtoReg dùng bước MEM o RegWrite dùng bước WB Khi thực pipe line sinh số trường hợp hazard, tức trường hợp mà ta thực thi theo nguyên tắc pipe line gây sai chương trinh, có loại hazard o Structural hazards: xảy có tranh chấp tài nguyên phân cứng, lệnh dùng chung phần cứng chy kỳ o Data hazards: xảy có phụ thuộc liệu o Control hazards: xảy lệnh nhảy có điều kiện Khi hazard xảy mà ta khơng xử lý xử lý khơng tạo delay làm giảm hiệu xuất tính tốn a) Structural hazards: Ví dụ: Giải o Đưa tất bước WB qua chu kỳ thứ lệnh o Hoặc thêm phần cứng cho WB ( thêm cổng đọc/ghi cho register file) b) Data Hazards Sự phụ thuộc lệnh: tượng xảy lệnh sau lấy kết lệnh phía trước trước lệnh phía trước đưa kết - Read After Write – RAW Hazard I: add $s1, $s2, $s3 #thanh ghi $s1 ghi J: sub $s4, $s1, $s3 #thanh ghi $s1 đọc Khi data hazard xuất lệnh J đọc $s1 mà lệnh I lại chưa tính xong kết $1 Phương pháp giải quết data hazard o Chèn stall vào để đảm bảo lệnh trước trả kết mà lệnh sau đọc kết chu kỳ kế tiếp( phương pháp khơng tốn tài nguyên phần cứng, tạo delay cho chương trình  giảm hiệu xuất) o Dùng kỹ thuật forward (phương pháp cần thêm tài nguyên phần cứng để thực) + chèn stall cần thiết Khi xảy hazard lệnh load cho dù ta có dùng kỹ thuật forward phải tốn stall để giải chúng Để thực forward người ta thêm mux cho việc lựa chọn input cho ALU Các lệnh khác (khác lệnh load) kết cho bước ALU (EXE) nên ta dùng kỹ thuật forward khơng cịn stall Giả sử có phụ thuộc lệnh sau o Lệnh phụ thuộc 1, o Lệnh phụ thuộc 1, o Lệnh phụ thuộc Khi dùng kỹ thuật forward cho lệnh o lệnh tao forward từ EXE  EXE (cách lệnh) o lệnh tao forward từ MEM  EXE (cách lệnh) o lệnh tao forward từ WB EXE (cách lệnh) - Write After Read: Name Dependence I: sub $t4, $t1, $t3 # $t1 đọc trước J: add $t1, $t2, $t3 # $t1 ghi sau Rõ ràng ta thấy khơng có phụ thuộc liệu đây, có phụ thuộc tên biến Để loai bỏ phụ thuộc tên biến ta đổi tên ghi I: sub $t4, $t1, $t3 J: add $t5, $t2, $t3 - Write After write: Name Dependence I: sub $t1, $t4, $t3 # $t1 ghi J: add $t1, $t2, $t3 # $t1 ghi lại lần Rõ ràng ta thấy khơng có phụ thuộc liệu đây, có phụ thuộc tên biến kết phụ thuộc vào lệnh J sau Để loai bỏ phụ thuộc tên biến ta đổi tên ghi I: sub $t1, $t4, $t3 J: add $t5, $t2, $t3 - Read After Read: không gây phụ thuộc II.2 Bài tập: 1) Cho sơ đồ thông số xử lý “single clock” hình bên Thời gian delay khối cho hình bên I-Mem ALU Regs D-Mem 200ps 150ps 200ps 200ps a) Bỏ qua độ trễ khối ADD, MUX, Control Tính single cycle, pipeline clock? b) Tính thời gian thực thi chương trình gồm 150 line code single cycle pipeline Từ tính speed up để so sánh single cycle pipeline ( stall) c) Giả sử chương trình khơng có stall thống kê có ALU 50% Beq 25% lw 15% sw10% Tính speed up multi cycle pipeline 2) Cho đoạn code sau: a) b) c) d) ADDI $1, $zero, 100 ADDI $2, $zero, 100 ADD $3, $1, $2 LW $4, L_4 LW $5, L_5 AND $6, $4, $5 SW $6, L_KQ Xác định phụ thuật lệnh ghi gây phụ thuộc Chèn stall để giải hazard trên, cần stall? Sắp xếp lại thứ tự lệnh cho chạy đoạn code stall mà tính logic chương trình khơng đổi Dùng kỹ thuật forward để giải hazard chạy có stall II.3 Đáp án/gợi ý 1a) - Single cycle = thời gian gian thực thi lệnh dài (lệnh load) = I-Mem  Regs  ALU  D-Mem  Regs = 200 + 200 + 150 + 200 + 200 = 950ps Pipeline clock = max (I-Mem, Regs, ALU, D-Mem, Regs) = 200 - Thời gian thực thi 150 single cycle = 150 * 950 = 142500 ps Thời gian thực thi 150 pipeline = (5 + 150 - 1)* 200 =30800 ps Speed up = 142500/30800 = 4.62 - 1b) 1c) 2a) - CPI multi cycle = (50%* + 25%*3 + 15%*5 + 10%*4) = 3.9 CPI pipeline khơng có stall = Thời gian thực thi = CPI * số lệnh * thời gian chu kỳ Speed up = thời gian mutli cycle /thời gian pipeline = (3.9 * số lệnh * 200)/( *số lệnh * 200) ADDI $1, $zero, 100 ADDI $2, $zero, 100 ADD $3, $1, $2 LW $4, L_4 LW $5, L_5 AND $6, $4, $5 SW $6, L_KQ Lệnh mà tốn hạng tơ màu đậm thể phụ thuộc qua ghi 2b) - stall, lúc chèn stall vào đảm báo chổ cần đọc giá trị ghi (ID) phải sau chu kỳ ghi kết ghi 2c) Một cách xếp làm giảm stall LW $4, L_4 LW $5, L_5 ADDI $1, $zero, 100 ADDI $2, $zero, 100 AND $6, $4, $5 ADD $3, $1, $2 SW $6, L_KQ Còn lại stall 2d) stall Sinh viên vẽ hình để hiểu rõ Hình ảnh so sánh single cycle, multi cycle, pipe line single cycle load Multi cycle add jump store bran load IF ID EXE MEM WB Pipe line IF ID EXE MEM WB IF ID EXE MEM IF ID EXE IF ID IF III add IF ID EXE jump store branch WB ID IF ID IF EXE MEM ID IF ALU WB MEM WB EXE MEM WB ID EXE MEM WB Memory III.1 Memory Gồm bus sau - Address:n bit dùng để xác định địa ram, không gian địa 2n Data: m bits dùng để xuất/ nhập liệu, độ rộng ram mbits OE: output enable , tín hiệu tích cực tương ứng với việc đọc liệu từ RAM WE: write enable , tín hiệu tích cực tương ứng với việc ghi liệu vào RAM Các điểm khác SRAM DRAM SRAM - Cấu tạo transistor o Đắt, nhanh - Tĩnh, không cần refesh giá trị - Đánh địa theo hàng … DRAM - transistor + tụ o Rẻ, chậm - Động, tụ điện rò rỉ điện theo thời gian nên cần phải refesh giá trị theo chu kỳ - Đánh địa theo ma trận - … SRAM DRAM - - - Cache o Do tốc độ phát triển ALU nhanh so với Memory nên tạo khoảng cách xa ALU MEM, cần có cache để làm đệm ALU MEM o Thường làm SRAM o Mục đích làm giảm thời gian truy xuất memory Tốc độ thời gian truy xuất memory xếp theo thứ tự sau ( mang tính chất tham khảo) Registers (size < KB), o Access time < 0.5 ns Level Cache (size – 64 KB) o Access time: ns L2 Cache (512KB – 8MB) o Access time: – 10 ns Main Memory (4 – 16 GB) o Access time: 50 – 100 ns Disk Storage (> 200 GB) o Access time: – 10 ms Temporal Locality (thời gian) biến, thực thể truy xuất truy xuất lần thường xuất vòng lặp, hay gọi hàm/thủ tục nhiều lần - - - Đối với truy xuất theo thời gian xu hướng thường giữ block cache Nhằm truy xuất lần sau Spatial Locality (không gian) lệnh/ data vùng nhớ truy xuất lệnh/data gần truy xuất thường xuất khai báo mãng, thực thi tuần tự… Đối với truy xuất theo khơng gian xu hướng thường chuẩn bị trước block Block placement ( phương pháp đặt block vào cache) o Direct mapped  Mỗi block xác định vị trí đặt  n số block cache block thứ m nhớ (RAM) đặt vào vị trí m%n cache o Full associative  Mỗi block đặc vào vị trí mà cịn trống cache o Set associative  Mỗi block xác định set set có k lựa chọn, đặt block vào k chổ trống  n số set cache block thứ m nhớ (RAM) đặt vào vị trí m%n cache ví dụ: Trong K- way Set associative k block gộp thành set, ví dụ k = - Block identification (xác định block) Để xác định địa người ta chia địa làm phần (Tag, Index, block offset) 31 Tag Index Block offset o Block offset   - - - - Xxác định thành phần block truy xuất để xác định bock offset có bit ta xác định block có bao nhiều phần tử Xác định số phần tử cách lấy (size of block)/(size of đơn vị truy xuất) o Index:  xác định số block cache trường hợp Direct mapped,  Xác định số block cách lấy (size of cache)/(size of block)  Xác định số set cache trường hợp k-way set associative  Xác định số set cách xác định số block sau lấy số block chia cho k  Bằng trường hợp full associative o Tag  Để xác định block nằm cache  Tag bit = 32 – index bits – block offset bits ( kiến trúc 32 bits) Block replacement (thay block): Khi block vào mà khơng cịn chổ trống để đặt vào cần phải thay block cũ block o Trong trường hợp direct mapped, block có chổ đặt nên ta không nhắc đến o FIFO ( đặt vào trước lấy trước) o Ramdom o LRU ( dùng thay trước) Write strategy (chiến lược ghi ngược lại cache, memory) o Write Back: updata cache, có yêu cầu hay cần thay update giá trị sau xuống memory  Cần bit valid (để xác định block có valid hay khơng) bit modified (để xác định block có update chưa)  Khó hện thực  Ít tốn lưa lượng băng thông hệ thống o Write Through: updata cache memory  Cần bit valid (để xác định block có valid hay khơng)  Đơn giản dễ thực  Tốn lưa lượng băng thơng hệ thống phải update nhiều Miss/hit o Miss: cần truy xuất mà tìm khơng thấy cache Do phải  Đưa block chứa ta muốn truy xuất vào cache sau truy xuất o Hit: cần truy xuất tìm thấy muốn truy xuất cache Miss penaly: số chu kỳ để xử lý cache miss Hit rate = hit/(hit + miss) - - - - Miss rate = miss /(hit + miss) = – hit rate I-Cache Miss Rate = Miss rate lúc truy xuất I-MEM D-Cache Miss Rate = Miss rate lúc truy xuất D-MEM Ví dụ: chương trình có 1000 lệnh có 25% load/store Biết lúc đọc I-MEM bị miss 150, D-MEM bị miss 50 Tìm I-Cache Miss Rate, D-Cache Miss Rate o I-Cache Miss Rate = số lần miss / số lần truy xuất I-MEM = 150/1000 = 15% o I-Cache Miss Rate = số lần miss / số lần truy xuất D-MEM = 50/(1000*25%) =50/250 = 20% Khi cache miss gây stall để xác định stall ta tìm thơng số sau o Memory stall cycles = Combined Misses * Miss Penalty  Miss Penalty: clock cycles to process a cache miss  Combined Misses = I-Cache Misses + D-Cache Misses  I-Cache Misses = I-Count × I-Cache Miss Rate  D-Cache Misses = LS-Count × D-Cache Miss Rate o LS-Count (Load & Store) = I-Count × LS Frequency o Memory Stall Cycles Per Instruction = Combined Misses Per Instruction × Miss Penalty  Combined Misses Per Instruction = I-Cache Miss Rate + LS Frequency × D-Cache Miss Rate Memory Stall Cycles Per Instruction = I-Cache Miss Rate × Miss Penalty + LS Frequency × D-Cache Miss Rate × Miss Penalty Ví dụ: Instruction count (I-Count) = 106 lệnh, 30% lệnh loads/stores, D-cache miss rate 5% I-cache miss rate 1%, cho Miss penalty 100 chu kỳ, tính combined misses per instruction and memory stall cycles  1% + 30% * 5% = 0.025 combined misses lệnh tương đương 25 misses per 1000 instructions  Memory stall cycles = 0.025 * 100 (miss penalty) = 2.5 stall cycles per instruction  Total memory stall cycles = 106 * 2.5 = 2,500,000 CPI CPIMemoryStalls = CPIPerfectCache + Mem Stalls per Instruction Ví dụ: cho CPI = 1.5 khơng có stall, Cache miss rate 2% instruction 5% data Lệnh loads stores chiếm 20% Cho trước miss penalty 100 chu kỳ I-cache D-cache Tính CPI hệ thống? Mem stalls cho lệnh = 0.02*100 + 20%*0.05*100 =3 CPIMemoryStalls = 1.5 + = 4.5 cycles Average Memory Access Time (AMAT) thời gian truy xuất nhớ trung bình o AMAT = Hit time + Miss rate * Miss penalty Do để giảm thời gian truy xuất  Ta giảm Hit time: cách dùng nhớ cache nhỏ, đơn giản  Giảm Miss Rate: cách dùng nhớ cache lớn, block size lớn kway set associativity với k lớn  Giảm Miss Penalty cách thiết kêt nhiều cache nhiều mức Ví dụ: tìm AMAT biết Cache access time (Hit time) of cycle = ns, Miss penalty = 20 clock cycles, miss rate of 0.05 per access AMAT = + 0.05 × 20 = cycles = ns o Khi khơng có cache tra truy xuất trực tiếp xuống memory nên tốn 20 chu kỳ (miss penalty) III.2 Bài tập: 1) Cho nhớ cache có dung lượng 256KB, block size 4word, lần truy xuất 1byte Xác định số bit trườn tag, index, block offset trường hợp a) Direct mapped b) Full associcative c) way set associcative 2) Cho nhớ cache có dung lượng 1MB, block size 256B, lần truy xuất word Xác định số bit trườn tag, index, block offset trường hợp a) Direct mapped b) Full associcative c) way set associcative 3) Trong cache có block, block 4word Xác định số lần miss/ hit hệ thống truy xuất vào địa theo tứ tự sau 0x0001002A 0x00010020 0x0002006A 0x00020066 0x00020022 0x0001002B Trong trường hợp a) Direct mapped b) Full associcative c) way set associcative 4) Các tập miss rate , cpi coi ví dụ làm tập slide III.3 Đáp án/Gợi ý 1) - Số phần tử block = (size of block)/(size of phần tử truy xuất) = word /1 byte = 4*4 bytes/ byte = 16 Số khối block cache = size of cache / size of block = 256KB / word = 28*210/4*4 = 214 blocks 1a) Direct mapped: block offset bits, index = 14 bits, tag = 32 – -14 = 14 bits 1b) Full associcative: block offset bits, index = bits, tag = 32 – = 28 bits 1c) Ways set associative: block tạo thành set mà có 214 block nên có 213 sets Block offset bits, index = 13 bits, tag = 32 – -13 = 15 bits 2) - Số phần tử block = (size of block)/(size of phần tử truy xuất) = 256B / bytes = 28 bytes/ 22 byte = 26 - Số khối block cache = size of cache / size of block = 1MB / 256B = 210*210/28 = 212 blocks 2a) direct mapped: block offset bits, index = 12 bits, tag = 32 – -12 = 14 bits 2b) full associcative: block offset bits, index = 14 bits, tag = 32 – = 28 bits 2c) ways set associative: block tạo thành set mà có 212 block nên có 210 sets Block offset bits, index = 13 bits, tag = 32 – -10 = 16 bits 3) 3a) Dựa vào đề tài ta tính có bits block offset, bit index Do ta phân tích địa bên address Tag Index Block Miss Giải thích offset /hit 0x0001002A 0000 0000 0000 0001 0000 0000 010 1010 M First access 0x00010020 0000 0000 0000 0001 0000 0000 010 0000 H 0x0002006A 0000 0000 0000 0010 0000 0000 110 1010 M First access 0x00020066 0000 0000 0000 0010 0000 0000 110 0110 H 0x00020022 0000 0000 0000 0010 0000 0000 010 0010 M Khác tag 0x0001002B 0000 0000 0000 0001 0000 0000 010 1011 M Khác tag 3b) Full associative address Tag Block offset 1010 0000 1010 0110 0010 1011 Miss /hit M H M H M H Giải thích Index Block offset 10 1010 10 0000 10 1010 10 0110 10 0010 10 1011 Miss /hit M H M H M M Giải thích 0x0001002A 0000 0000 0000 0001 0000 0000 0010 0x00010020 0000 0000 0000 0001 0000 0000 0010 0x0002006A 0000 0000 0000 0010 0000 0000 0110 0x00020066 0000 0000 0000 0010 0000 0000 0110 0x00020022 0000 0000 0000 0010 0000 0000 0010 0x0001002B 0000 0000 0000 0001 0000 0000 0010 3c) ways set associative, cần bit index address Tag 0x0001002A 0x00010020 0x0002006A 0x00020066 0x00020022 0x0001002B 0000 0000 0000 0001 0000 0000 00 0000 0000 0000 0001 0000 0000 00 0000 0000 0000 0010 0000 0000 01 0000 0000 0000 0010 0000 0000 01 0000 0000 0000 0010 0000 0000 00 0000 0000 0000 0001 0000 0000 00 First access First access First access First access First access Khác tag Khác tag ... .14 III.1 Memory 14 III.2 Bài tập: 19 III.3 Đáp án/Gợi ý 20 Thực hành kiến trúc máy tính Ơn tập ktmt CS 2013 Các yếu tố ảnh hưởng đến hiệu xuất... vào ghi Không quan tâm Thanh ghi với ghi Không truy xuất vào vùng data Không quan tâm Không quan tâm Lệnh BEQ Không phải lệnh BNE Lệnh branch lệnh jump PCSrc ALUop 0010 Điều kiện nhảy không xảy... processor I.1 Single clock processor - Ưa điểm: clock chu kỳ Nhược điểm: chu kỳ tốn nhiều thời gian, lệnh dù nhanh hay chậm thực thi chu kỳ Kiến trúc single cycle o Thanh PC trỏ đến lệnh thực thi o

Ngày đăng: 07/08/2021, 07:23

Từ khóa liên quan

Mục lục

  • I. Single clock processor

    • I.1 Single clock processor

      • Input output 4bit encoding

      • I.2 Bài tập

      • I.3 Đáp án/Gợi ý

      • II. Pipeline processor

        • II.1 Pipeline processor

        • II.2 Bài tập:

        • II.3 Đáp án/gợi ý

        • III. Memory

          • III.1 Memory

          • III.2 Bài tập:

          • III.3 Đáp án/Gợi ý

          • 1)

Tài liệu cùng người dùng

Tài liệu liên quan