single mips

29
Nguyễn Văn Cường Đặng Ngọc Hoàng Lê Hữu Việt ĐỒ ÁN CẤU TRÚC MÁY TÍNH LAB 3: A MIPS 32-BIT SINGLE - CYCLE CPU TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG KHOA ĐIỆN TỬ - VIỄN THÔNG Nhóm 28:

Upload: nguyen-quoc-doan

Post on 12-Apr-2015

84 views

Category:

Documents


0 download

DESCRIPTION

Đồ án cấu trúc máy tính

TRANSCRIPT

Page 1: Single MIPS

Nguyễn Văn Cường

Đặng Ngọc Hoàng

Lê Hữu Việt

ĐỒ ÁN CẤU TRÚC MÁY TÍNH

LAB 3: A MIPS 32-BIT SINGLE - CYCLE CPU

TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG

KHOA ĐIỆN TỬ - VIỄN THÔNG

Nhóm 28:

Page 2: Single MIPS

MỤC LỤC

I. GiỚI THIỆU

II.XÂY DỰNG CPU

III.MÔ PHỎNG

ĐỒ ÁN CẤU TRÚC MÁY TÍNH Nhóm 28

Page 3: Single MIPS

I. GiỚI THIỆU:

ĐỒ ÁN CẤU TRÚC MÁY TÍNH Nhóm 28

Thiết kế bộ xử lý trung tâm MIPS chu kì đơn 32-bit thực hiện các lệnh:

ADD, SUB, SLT, JR, LW, SW, BNE, XORI, JCác cổng logic không có quá 4 ngõ vào, với delay 50ps.Các khối điều khiển logic có thể dùng cấu trúc lệnh behavioral.

Page 4: Single MIPS

Các câu lệnh: Lệnh loại R: 

ADD rd, rs, rt: Reg[rd] = Reg[rs] + Reg[rt].

JR rs: PC = Reg[rs].

SLT rd, rs, rt: If (Reg[rs] < Reg[rt]) Reg[rd] = 00000001(16) else Reg[rd] = 0000000016.

SUB rd, rs, rt: Reg[rd] = Reg[rs] – Reg[rt].

ĐỒ ÁN CẤU TRÚC MÁY TÍNH Nhóm 28

Page 5: Single MIPS

Lệnh loại I:

BNE rs, rt, imm16: if (Reg[rs] != Reg[rt]) PC = PC + 4 + Sign_ext(Imm16)<<2 else PC = PC + 4.

LW rt, imm16(rs): Reg[rt] = Mem[Reg[rs] + Sign_ext(Imm16)].

SW rt, imm16(rs): Mem[Reg[rs] + Sign_ext(Imm16)] = Reg[rt].

XORI rt, rs, imm16: Reg[rt] = Reg[rs] XOR Zero_ext(Imm16)

Các câu lệnh:

ĐỒ ÁN CẤU TRÚC MÁY TÍNH Nhóm 28

Page 6: Single MIPS

Lệnh loại Jump:

J target: PC = { PC[31:28], target, 00 }

Các câu lệnh:

ĐỒ ÁN CẤU TRÚC MÁY TÍNH Nhóm 28

Page 7: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNH

1. Các khối cơ bản:

a. Khối tìm và lấy lệnh.

+ Bộ nhớ lệnh (Instruction memory)

+ Thanh ghi PC (Program Counter)

II. XÂY DƯNG CPU:

Nhóm 28

Page 8: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNH

1. Các khối cơ bản:a. Khối tìm và lấy lệnh.

II. XÂY DƯNG CPU:

Nhóm 28

Page 9: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNHĐỒ ÁN CẤU TRÚC MÁY TÍNH

1. Các khối cơ bản:b. File thanh ghi 32 bit (RegFile)

II. XÂY DƯNG CPU:

Nhóm 28

Page 10: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNHĐỒ ÁN CẤU TRÚC MÁY TÍNH

1. Các khối cơ bản:

c. Bộ ALU

II. XÂY DƯNG CPU:

Nhóm 28

Page 11: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNHĐỒ ÁN CẤU TRÚC MÁY TÍNH

1. Các khối cơ bản:d. Bộ nhớ dữ liệu

II. XÂY DƯNG CPU:

Nhóm 28

Page 12: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNH

2. Bổ sung Datapath

Lệnh loại R:

Lấy dữ liệu từ 2 thanh ghi Rs và Rt của RegFile, Đưa vào khối tính toán ALUĐưa kết quả tính toán vào thanh ghi Rd của RegFile

Riêng lệnh JR thì chỉ cần lấy dữ liệu từ RegFile để thay đổi thanh ghi PC

Nhóm 28

Page 13: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNHĐỒ ÁN CẤU TRÚC MÁY TÍNH

2. Bổ sung Datapath

ĐỒ ÁN CẤU TRÚC MÁY TÍNH

Lệnh loại R:

Nhóm 28

Page 14: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNH

2. Bổ sung Datapath

Lệnh loại I:

Lấy dữ liệu từ thanh ghi Rs của RegFile

Mở rộng dấu cho 16bit immediate

Đưa vào khối tính toán ALU

Kết quả tính toán đưa về thanh ghi Rd của RegFile hoặc làm địa chỉ truy cập vào bộ nhớ dữ liệu ( lw và sw)

Nhóm 28

Page 15: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNH

2. Bổ sung Datapath

Lệnh loại I:

Bổ sung:

Bộ Mux chọn thanh ghi đích Rd hoặc RtBộ mở rộng dấuBộ Mux chọn ngõ vào thứ 2 cho bộ ALUBộ Mux chọn giá trị ghi về thanh ghi RtBộ dịch trái 2 bit ( phép nhân với 4)

Nhóm 28

Page 16: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNH

2. Bổ sung Datapath

Nhóm 28

Page 17: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNH

2. Bổ sung Datapath

Lệnh nhảy:

• Nhảy có điều kiện: BNE• Nhảy không điều kiện: J, JR

Bổ sung:Các bộ Mux chọn địa chỉ cho lệnh tiếp theo.Các bộ cộng

Nhóm 28

Page 18: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNH

PC = PC + 4

2. Bổ sung Datapath

Nhóm 28

Page 19: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNH

Lệnh BNE (Brand if not equal)

2. Bổ sung Datapath

Nhóm 28

Page 20: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNH

Lệnh JUMP

2. Bổ sung Datapath

Nhóm 28

Page 21: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNH

Lệnh JR

2. Bổ sung Datapath

Nhóm 28

Page 22: Single MIPS

- RegWrite

- RegDst

- ALUSrc

- ALUOp

- MemRead

- MemWrite

- MemtoReg

- Branch

- Jump

- SignZero

ĐỒ ÁN CẤU TRÚC MÁY TÍNH

3. Các khối điều khiển:

a. Khối điều khiển trung tâm (ControlUnit):Tạo ra các tín hiệu điều khiển:

II. XÂY DƯNG CPU:

Nhóm 28

Page 23: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNH

Bảng giải mã khối điều khiển trung tâm:

Nhóm 28

Page 24: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNH

Bảng giá trị điều khiển của khối ALU Control

ĐỒ ÁN CẤU TRÚC MÁY TÍNH

3. Các khối điều khiển:b. Khối điều khiển ALU (ALU_ControlUnit): Tạo ra tín hiệu điều khiển bộ tính toán ALU:

II. XÂY DƯNG CPU:

Nhóm 28

Page 25: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNHĐỒ ÁN CẤU TRÚC MÁY TÍNHĐỒ ÁN CẤU TRÚC MÁY TÍNH

3. Các khối điều khiển:

c. Khối điều khiển lệnh JR (JR_ControlUnit) - Nếu ALUOp = 10 (R-type) và Function = 001000 => JRControl = 1. Ngược lại JRControl = 0

d. Tín hiệu điều khiển lệnh BNE (Bne_Control) - Nếu Branch = 1 và ZeroFlag = 0

=> Bne_Control = 1 Ngược lại Bne_Control = 0

II. XÂY DƯNG CPU:

Nhóm 28

Page 26: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNH

Sơ đồ khối tổng quát

II. XÂY DƯNG CPU:

Nhóm 28

Page 27: Single MIPS

ĐỒ ÁN CẤU TRÚC MÁY TÍNH Nhóm 28

III. MÔ PHỎNG

Page 28: Single MIPS

Nhóm 28

III. MÔ PHỎNG

Địa chỉ( thập phân)

Lệnh Mã máy

0 Xori $1, $0, 0x0010 001110 00000 00001 00000000 00010000

4 Xori $2, $0, 0x001F 001110 00000 00010 00000000 00011111

8 Sw  $1, 0x00($0) 101011 00000 00001 00000000 00000000

12 Sw  $2, 0x04($0) 101011 00000 00010 00000000 00000100

16 Add $3, $1, $2 000000 00001 00010 00011 00000 100000

20 Bne $1,$2, 0x01 000101 00001 00010 00000000 00000001

24 Add $7, $3, $2 000000 00011 00010 00111 00000 100000

28 Sub $4, $1, $2 000000 00001 00010 00100 00000 100010

32 J     0x0A 000010 00 00000000 00000000 00001010

36 Lw  $12,0x00($0) 100011 00000 01100 00000 00000000000

40 Lw  $5 , 0x00($0) 100011 00000 00101 00000000 00000000

44 Lw  $6 , 0x04($0) 100011 00000 00110 00000000 00000100

48 Slt $7, $1, $2 000000 00001 00010 00111 00000 101010

52 Jr  $0 000000 00000 00000 00000 00000 001000

56 .............  

Page 29: Single MIPS

TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG

KHOA ĐIỆN TỬ - VIỄN THÔNG