Bài giảng Kiến trúc máy tính và hợp ngữ (GV Phạm Tuấn Sơn) Bài 7

40 25 0
Bài giảng Kiến trúc máy tính và hợp ngữ (GV Phạm Tuấn Sơn) Bài 7

Đ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

Bài 07: Thiết kế xử lý Phạm Tuấn Sơn ptson@fit.hcmus.edu.vn Quan điểm cấu tạo CPU • William Stallings – Registers – ALU – CU – Internal bus Mục tiêu: hiểu cấu tạo hoạt động CPU • Patterson & Hennessy – Datapath – Control Mục tiêu: thiết kế CPU Các bước thiết kế CPU Phân tích kiến trúc lệnh (ISA) ⇒ yêu cầu datapath – – – Trình bày lệnh dạng register transfers language (RTL) để thấy rõ ý nghĩa các lệnh datapath phải có thành phần lưu trữ (bộ nhớ / cache) cho ghi kiến trúc lệnh datapath phải hỗ trợ thực thi tất lệnh Lựa chọn khối mạch cần thiết để xây dựng datapath – – Khối mạch tổ hợp Khối mạch Lắp ráp khối mạch đáp ứng yêu cầu lệnh Phân tích lệnh để xác định tín hiệu điều khiển cần thiết Thiết kế mạch cho tín hiệu điều khiển Vấn đề thiết kế datapath • Vấn đề: xây dựng khối datapath phức tạp để xử lý lệnh (nạp lệnh thực thi lệnh …) khó khăn khơng hiệu • Giải pháp: chia nhỏ trình xử lý lệnh thành công đoạn nhỏ (stages), xây dựng khối xử lý cho công đoạn lắp ráp thành datapath – Các công đoạn nhỏ dễ thiết kế – Dễ thay đổi, tối ưu cơng đoạn mà ảnh hưởng tới công đoạn khác Thiết kế xử lý MIPS thu gọn • Bộ xử lý MIPS thu gọn gồm lệnh – – – – – – – – – add sub and or lw sw beq slt j $1, $2, $3 $1, $2, $3 $1, $2, $3 $1, $2, $3 $1, 0($2) $1, 0($2) $1, $2, NHAN $1, $2, $3 NHAN • Tại lệnh ? Nhắc lại: Các cấu trúc lệnh MIPS • Tất lệnh MIPS dài 32 bit Có cấu trúc – R-type – I-type – J-type 31 26 op bits 31 21 rs bits 26 op bits 31 16 rt bits 21 rs bits 11 rd bits shamt bits funct bits 16 rt bits address/immediate 16 bits 26 op bits target address 26 bits • Các trường – op (“opcode”): mã thao tác lệnh, xác định lệnh làm – funct: kết hợp với op (nếu cần) để xác định lệnh làm – rs, rt, rd: địa ghi nguồn đích – shamt: số bit dịch – address / immediate: địa số tính tốn – target address: địa cần nhảy tới Cấu trúc lệnh CPU MIPS thu gọn • add, sub, and, or, slt – – – – – add sub and or slt rd,rs,rt rd,rs,rt rd,rs,rt rd,rs,rt rd,rs,rt 31 op bits 31 • lw, sw, beq – lw rt,imm16(rs) – sw rt,imm16(rs) – beq rs,rt,imm16 • j 26 – j addr26 rs bits 26 op bits 31 21 21 rs bits 16 rt bits 11 rd bits shamt bits 16 rt bits 26 op bits funct bits immediate 16 bits target address 26 bits Các cơng đoạn lệnh (1/3) • Cơng đoạn 1: Nạp lệnh (Instruction Fetch) – Nạp lệnh 32 bit từ nhớ địa ghi PC vào ghi lệnh Công đoạn cho tất lệnh – Sau đó, tăng PC để chuẩn bị nạp lệnh sau xử lý xong lệnh (PC = PC + 4) • Cơng đoạn 2: Giải mã lệnh (Instruction Decode) – Phân tích trường lệnh • Xác định opcode để biết loại lệnh vị trí trường khác • Sau đó, đọc ghi nguồn để chuẩn bị thực cơng đoạn Ví dụ – Lệnh add, đọc ghi nguồn – Lệnh lw, đọc ghi nguồn Các cơng đoạn lệnh (2/3) • Cơng đoạn 3: Tính tốn (ALU – Arithmetic-Logic Unit) – Cơng việc hầu hết lệnh thực cơng đoạn này: tính tốn số học (+, -), luận lý (&, |), so sánh (beq,slt) – Lệnh beq tính vị trí cần nhảy tới – Cịn lệnh lw sw làm cơng đoạn ? • lw $t0, 40($t1) • Địa vùng nhớ cần truy xuất = giá trị $t1 CỘNG 40 • Do đó, thực phép cộng cơng đoạn Các cơng đoạn lệnh (3/3) • Cơng đoạn 4: Truy xuất nhớ (Memory Access) – Thực có lệnh lw sw thực công đoạn lệnh – Do công việc truy xuất nhớ thời gian tương đối nhiều nên cần cơng đoạn riêng • Công đoạn 5: Ghi kết vào ghi (Register Write) – Hầu hết lệnh ghi kết tính tốn vào ghi tính tốn số học, luận lý, lw, slt – Còn lệnh sw, lệnh nhảy ? • Khơng ghi kết vào ghi • Do đó, lệnh khơng làm cơng đoạn lệnh Sơ đồ datapath tổng quát 26 Bước 4+5: Thiết kế đơn vị điều khiển 27 Thiết kế đơn vị điều khiển (1/2) 28 Thiết kế đơn vị điều khiển (2/2) 29 Thiết kế đơn vị điều khiển ALU (1/2) 30 Thiết kế đơn vị điều khiển ALU (2/2) 31 Sơ đồ xử lý lệnh R-Format 32 Sơ đồ xử lý lệnh lw 33 Sơ đồ xử lý lệnh beq 34 Bổ sung lệnh j 35 Hạn chế kỹ thuật thiết kế CPU chu kỳ • Kỹ thuật thiết kế CPU chu kỳ khơng cịn sử dụng khơng hiệu – Tất công đoạn lệnh phải xử lý chu kỳ theo tín hiệu đồng nên thành phần mạch có khả dùng chung tách riêng, làm cho sơ đồ mạch phức tạp • Thành phần tính tốn: ALU, Adder • Thành phần lưu trữ: Instruction memory, Data memory – Một chu kỳ đồng hồ phải đủ lâu để xử lý lệnh phức tạp Trong MIPS, lệnh lw xử lý phức tạp (5 công đoạn), tất lệnh khác (beq) (R-Format, …) cơng đoạn – Với chương trình có IC (instruction count) lệnh xử lý 800×IC (ps) Kỹ thuật thiết kế CPU nhiều chu kỳ • Thiết kế CPU nhiều chu kỳ: Mỗi công đoạn lệnh thực chu kỳ – Mỗi chu kỳ đồng hồ phải đủ lâu để thực công đoạn lệnh Instruction Fetch Decode/ Execute Register Read Memory Reg Write – Với chương trình có IC (instruction count) lệnh xử lý (0.25×5 + 0.1×4 + 0.52×4 + 0.11×3 + 0.02×3) × 200 × IC = 824×IC (ps) !!! 37 Sơ đồ khối CPU nhiều chu kỳ • Do cơng đoạn thực thi chu kỳ riêng, nên ghép thành phần mạch dùng chung (ALU + Adder, Imem + DMem) mà không xảy đụng độ • Cần thêm ghi để lưu giữ kết trung gian công đoạn lệnh (A, B, ALUOut,…) 38 … • Thiết kế chi tiết datapath control xử lý theo kỹ thuật nhiều chu kỳ môn KTMT nâng cao 39 Tham khảo • Phần 5.5, P&H 40 ... riêng • Cơng đoạn 5: Ghi kết vào ghi (Register Write) – Hầu hết lệnh ghi kết tính tốn vào ghi tính tốn số học, luận lý, lw, slt – Còn lệnh sw, lệnh nhảy ? • Khơng ghi kết vào ghi • Do đó, lệnh khơng... funct: kết hợp với op (nếu cần) để xác định lệnh làm – rs, rt, rd: địa ghi nguồn đích – shamt: số bit dịch – address / immediate: địa số tính tốn – target address: địa cần nhảy tới Cấu trúc lệnh... (2/3) • Cơng đoạn 3: Tính tốn (ALU – Arithmetic-Logic Unit) – Cơng việc hầu hết lệnh thực cơng đoạn này: tính tốn số học (+, -), luận lý (&, |), so sánh (beq,slt) – Lệnh beq tính vị trí cần nhảy

Ngày đăng: 29/10/2021, 16:20

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

Tài liệu liên quan