Tải bản đầy đủ (.pdf) (59 trang)

Chapter04 1singlecycleprocessor

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.61 MB, 59 trang )

dce
2017

COMPUTER ARCHITECTURE
CSE Fall 2017

BK
TP.HCM

Faculty of Computer Science and
Engineering
Department of Computer Engineering
Vo Tan Phuong
/>

dce
2017

Chapter 4.1
Thiết kế bộ xử lý đơn chu kỳ
(Single Cycle Processor)

Computer Architecture – Chapter 4.1

© Fall 2017, CSE

2


dce
2017



Chúng ta đang ở đâu?

Computer Architecture – Chapter 4.1

© Fall 2017, CSE

3


dce
2017

Bên trong bộ xử lý

Computer Architecture – Chapter 4.1

© Fall 2017, CSE

4


dce
2017

Nội dung

 Thiết kết bộ xử lý: Các bước thực hiện

 Các thành phần của Datapath và cấp xung nhịp

 Xây dựng Datapath đầy đủ
 Điều khiển quá trình thực thi của các lệnh
 Bộ điều khiển chính và bộ điều khiển ALU
 Hạn chế của thiết kế bộ xử lý đơn chu kỳ

Computer Architecture – Chapter 4.1

© Fall 2017, CSE

5


dce
2017

Các yếu tố ảnh hưởng đến hiệu xuất

 Hiệu xuất được xác định bởi:
 Số lệnh (Instruction count)
 Số chu kỳ xung nhịp trung bình trên lệnh (CPI)
 Thời gian của một chu kỳ xung nhịp

 Thiết kế bộ xử lý ảnh hưởng;

I-Count

 CPI
 Thời gian của một chu kỳ

CPI


Cycle

 Thiết kế bộ xử xý đơn chu kỳ:
 Một lệnh thực hiện trong một chu kỳ (CPI =1)

Computer Architecture – Chapter 4.1

© Fall 2017, CSE

6


dce
2017

Thiết kế một bộ xử lý: Các bước thực hiện

 Phân tích tập lệnh =>xác định các thành phần của
datapath
 Thiết kế, lựa chọn các thành phần của datapath và
phương pháp cấp xung nhịp
 Gắn các thành phần của datapath đáp ứng yêu cầu công
việc của từng lệnh
 Xác định các giá trị của các tín hiệu điều khiển cho việc điều
khiển dòng lưu chuyển của dữ liệu

 Thiết kế và thêm vào bộ điều khiển

Computer Architecture – Chapter 4.1


© Fall 2017, CSE

7


dce

Các định dạng lệnh MIPS

2017

 Tấc cả các lệnh: độ rộng 32-bit
 Ba loại: R-type, I-type, và J-type
Op6

Rs5

Rt5

Op6

Rs5

Rt5

Op6

Rd5


sa5

funct6

immediate16
immediate26

 Op6: 6-bit opcode of the instruction
 Rs5, Rt5, Rd5: 5-bit source and destination register numbers
 sa5: 5-bit shift amount used by shift instructions
 funct6: 6-bit function field for R-type instructions
 immediate16: 16-bit immediate value or address offset
 immediate26: 26-bit target address of the jump instruction

Computer Architecture – Chapter 4.1

© Fall 2017, CSE

8


dce
2017

Tập lệnh con MIPS
 Sử dụng tập lệnh con MIPS trong quá trình thiết kế
 ALU instructions (R-type): add, sub, and, or, xor, slt
 Immediate instructions (I-type): addi, slti, andi, ori, xori
 Load and Store (I-type): lw, sw


 Branch (I-type): beq, bne
 Jump (J-type): j

 Tương đối đầy đủ để minh họa quá trình xây dựng
Bộ xử lý = datapath + control
 Quá trình xây dựng bộ xử lý MIPS tương tự việc xây
dựng các bộ xử ký khác
Computer Architecture – Chapter 4.1

© Fall 2017, CSE

9


dce

Chi tiết tập lệnh con

2017

Instruction
add
sub
and
or
xor
slt
addi
slti
andi

ori
xori
lw
sw
beq
bne
j

Meaning

rd, rs, rt
addition
rd, rs, rt
subtraction
rd, rs, rt
bitwise and
rd, rs, rt
bitwise or
rd, rs, rt
exclusive or
rd, rs, rt
set on less than
rt, rs, im16
add immediate
rt, rs, im16
slt immediate
rt, rs, im16
and immediate
rt, rs, im16
or immediate

rt, im16
xor immediate
rt, im16(rs)
load word
rt, im16(rs)
store word
rs, rt, im16
branch if equal
rs, rt, im16 branch not equal
im26
jump

Computer Architecture – Chapter 4.1

Format
op6 = 0
op6 = 0
op6 = 0
op6 = 0
op6 = 0
op6 = 0
0x08
0x0a
0x0c
0x0d
0x0e
0x23
0x2b
0x04
0x05

0x02

rs5
rs5
rs5
rs5
rs5
rs5
rs5
rs5
rs5
rs5
rs5
rs5
rs5
rs5
rs5

rt5
rt5
rt5
rt5
rt5
rt5
rt5
rt5
rt5
rt5
rt5
rt5

rt5
rt5
rt5

rd5
rd5
rd5
rd5
rd5
rd5

0
0
0
0
0
0
im16
im16
im16
im16
im16
im16
im16
im16
im16

0x20
0x22
0x24

0x25
0x26
0x2a

im26
© Fall 2017, CSE

10


dce

Register Transfer Level (RTL)

2017

 RTL mơ tả dịng dữ liệu giữa các thanh ghi
 RTL cho biết ý nghĩa (công việc chính) của lệnh
 Tấc cả các lệnh được nạp từ địa chỉ trong thanh ghi PC
Instruction

RTL Description

ADD

Reg(Rd) ← Reg(Rs) + Reg(Rt);

PC ← PC + 4

SUB


Reg(Rd) ← Reg(Rs) – Reg(Rt);

PC ← PC + 4

ORI

Reg(Rt) ← Reg(Rs) | zero_ext(Im16);

PC ← PC + 4

LW

Reg(Rt) ← MEM[Reg(Rs) + sign_ext(Im16)];

PC ← PC + 4

SW

MEM[Reg(Rs) + sign_ext(Im16)] ← Reg(Rt);

PC ← PC + 4

BEQ

if (Reg(Rs) == Reg(Rt))
PC ← PC + 4 + 4 × sign_extend(Im16)
else PC ← PC + 4

Computer Architecture – Chapter 4.1


© Fall 2017, CSE

11


dce
2017

Instructions are Executed in Steps
 R-type

Nạp lệnh:
Nạp toán hạn:
Thực hiện phép toán:
Ghi vào thanh ghi:
Chuẩn bị lệnh kế:

 I-type

Nạp lệnh :
Instruction ← MEM[PC]
Nạp toán hạn :
data1 ← Reg(Rs), data2 ← Extend(imm16)
Thực hiện phép toán : ALU_result ← op(data1, data2)
Ghi vào thanh ghi :
Reg(Rt) ← ALU_result
Chuẩn bị lệnh kế :
PC ← PC + 4


 BEQ

Nạp lệnh :
Nạp toán hạn :
Kiểm tra bằng:
Rẽ nhánh:

Computer Architecture – Chapter 4.1

Instruction ← MEM[PC]
data1 ← Reg(Rs), data2 ← Reg(Rt)
ALU_result ← func(data1, data2)
Reg(Rd) ← ALU_result
PC ← PC + 4

Instruction ← MEM[PC]
data1 ← Reg(Rs), data2 ← Reg(Rt)
zero ← subtract(data1, data2)
if (zero) PC ← PC + 4 + 4×sign_ext(imm16)
else
PC ← PC + 4

© Fall 2017, CSE

12


dce

Instruction Execution – cont’d


2017

 LW

Nạp lệnh :
Nạp thanh ghi nền:
Tính địa chỉ:
Đọc ô nhớ:
Ghi vào thanh ghi:
Chuẩn bị lệnh kế :

Instruction ← MEM[PC]
base ← Reg(Rs)
address ← base + sign_extend(imm16)
data ← MEM[address]
Reg(Rt) ← data
PC ← PC + 4

 SW

Nạp lệnh :
Nạp thanh ghi:
Tính địa chỉ:
Ghi vào ơ nhớ:
Chuẩn bị lệnh kế :

Instruction ← MEM[PC]
base ← Reg(Rs), data ← Reg(Rt)
address ← base + sign_extend(imm16)

MEM[address] ← data
PC ← PC + 4

 Jump

Nạp lệnh :
Tính địa chỉ đích:
Nhảy:

Computer Architecture – Chapter 4.1

concatenation

Instruction ← MEM[PC]
target ← PC[31:28] || Imm26 || ‘00’
PC ← target

© Fall 2017, CSE

13


dce
2017

Các thành phần yêu cầu từ tập lệnh
 Bộ nhớ
 Bộ nhớ lệnh là nơi chứa lệnh

 Bộ nhớ dữ liệu là nơi chứa dữ liệu


 Bộ thanh ghi
 31 × 32-bit thanh ghi đa dụng, R0 luôn bằng giá trị 0
 Đọc thanh ghi nguồn Rs
 Đọc thanh ghi nguồn Rt
 Ghi vào thanh ghi đích Rt hoặc Rd

 Bộ đếm chương trình (thanh ghi PC) và Bộ cộng để tăng
PC = PC + 4

 Bộ mở rộng dấu và 0 cho hằng số 16 bit
 Bộ tính tốn số học luận lý ALU thực hiện tính tốn
Computer Architecture – Chapter 4.1

© Fall 2017, CSE

14


dce
2017

Tiếp theo . . .

 Thiết kết bộ xử lý: Các bước thực hiện

 Các thành phần của Datapath và cấp xung nhịp
 Xây dựng Datapath đầy đủ
 Điều khiển quá trình thực thi của các lệnh
 Bộ điều khiển chính và bộ điều khiển ALU

 Hạn chế của thiết kế bộ xử lý đơn chu kỳ

Computer Architecture – Chapter 4.1

© Fall 2017, CSE

15


dce
2017

Các thành phần của Datapath

 Các phần tử mạch tổ hợp

32

0

 ALU, Adder

16

Extend

m
u
x


32

 Immediate extender
ExtOp

 Multiplexers

select

 Các phần tử lưu trữ

32

PC

 Instruction memory

32

32

 Xung nhịp
 Đồng bộ quá trình ghi

overflow

Data
Memory

32


32

Data_out
Data_in

clk
Registers
5

32

RA

BusA

RB

BusB

5

Mem
Read

Mem
Write

32


5

RW

BusW

clk
RegWrite

Computer Architecture – Chapter 4.1

ALU result

Address

Instruction
Memory

 PC register

 Register file

32

Address

clk

zero
32


ALU control

Instruction
32

 Data memory

32

1

A
L
U

32

© Fall 2017, CSE

16


dce

Thanh ghi

2017

 Thanh ghi

Data_In

 Tương tự D Flip-Flop

n bits

 n-bit vào và ra
 Write Enable (WE):

Write
Enable

 Cho phép/ cấm ghi vào thanh ghi
 Cấm (0): Data_Out không đổi

WE

Register

Clock

n bits
Data_Out

 Cho phép (1): Data_Out = Data_In sau cạnh lên của xung nhịp

 Xung nhịp kích cạnh lên (0 -> 1)
 Giá trị output được thay đổi tại cạnh lên của xung nhịp

Computer Architecture – Chapter 4.1


© Fall 2017, CSE

17


dce
2017

Bộ thanh ghi MIPS (Register File)
RW RA RB

 Bộ thanh ghi bao gồm 32 × 32-bit thanh ghi
 BusA và BusB: 32-bit ngõ ra cho 2 toán hạn nguồn
 BusW: 32-bit ngõ vào để ghi giá trị vào thanh ghi khi RegWrite = 1

 Lựa chọn thanh ghi:
 RA lựa chọn thanh ghi đọc cho giá trị ở BusA
 RB lựa chọn thanh ghi đọc cho giá trị ở BusB
 RW lựa chọ thanh ghi được ghi vào

 Xung nhịp
 Xung nhịp sử dụng khi GHI (cạnh lên)

5

RA

Register
File BusA


32

5

RB
5

RW

32

BusB

Clock
BusW

RegWrite

32

 Khi đọc, bộ thanh ghi như là một mạch tổ hợp
 RA, RB hợp lệ => BusA, BusB là giá trị tương ứng sau thời gian truy
xuất
Computer Architecture – Chapter 4.1

© Fall 2017, CSE

18



dce

Chi tiết bộ thanh ghi

2017

RA 5
Decoder

32

R0 is
not used

WE

Decoder

5

.
.
.
32

WE

"0"
Tri-state

buffers

R1

32

RW

"0"

RB 5
Decoder

32

R2
32

32

.
.
.

BusW

32

BusA
WE


R31
32

RegWrite
Clock

Computer Architecture – Chapter 4.1

32

BusB
© Fall 2017, CSE

19


dce

Bộ đệm 3 trạng thái

2017

 Cho phép nhiều nguồn sử dụng chung một bus

 Hai ngõ vào:

Enable

 Data_in

 Enable (to enable output)

Data_in

Data_out

 Một ngõ ra: Data_out
 If (Enable) Data_out = Data_in
else Data_out = High Impedance state (output bị ngắt)

 Bộ đệm 3 trạng thái được
sử dụng tạo thành bộ
hợp kênh (multiplexor)
Computer Architecture – Chapter 4.1

Data_0
Output
Data_1
Select
© Fall 2017, CSE

20


dce
2017

Mạch Half Adder

x

y

XOR
S

Half
adder

C

x

S

y

XOR AND
x

y

S

C

0

0

0


0

0

1

1

0

1

0

1

0

1

1

0

1

Computer Architecture – Chapter 4.1

C

AND

© Fall 2017, CSE

21


dce
2017

Mạch Full Adder
C0

x
y

S
Full
adder

S = x + y + C0
S = (x + y) + C0
Tính: S1 = x + y
Tính: S2 = S1 + C0

Computer Architecture – Chapter 4.1

C

Half adder 1


Half adder 2

© Fall 2017, CSE

22


dce
2017

Full adder (2)
C0

x

y

S

C

C0

S1

C1

C2


C

0

0

0

0

0

0

0

0

0

0

0

0

1

1


0

0

1

0

0

0

0

1

0

1

0

0

1

0

0


0

0

1

1

0

1

0

0

1

0

1

1

0

0

1


0

1

0

0

0

0

1

0

1

0

1

1

1

0

1


1

1

1

0

0

1

1

1

0

1

1

1

1

1

1


1

1

0

1

0

1

C = 1 when C1 = 1 or C2 = 1

Computer Architecture – Chapter 4.1

© Fall 2017, CSE

23


dce
2017

Full adder (3)

Half
adder

C0


x

y

Half
adder

S1

S
C2

C1

Computer Architecture – Chapter 4.1

C

© Fall 2017, CSE

24


dce
2017

0

x0


Cộng nhiều Bits

y0

Full
adder 0

S0
x3x2x1x0
+

x1

x2

y1

Full
adder 1

y2

Full
adder 2

x3
y3

Full

adder 3

Computer Architecture – Chapter 4.1

S1

y3y2y1y0

C S3S2S1S0
S2

S3

C

© Fall 2017, CSE

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×