4.1 λ‹€μŒ λͺ…령어에 λŒ€ν•΄μ„œ μ•„λž˜ μ§ˆλ¬Έμ— λ‹΅ν•˜λΌ.

λͺ…λ Ήμ–΄ : AND Rd, Rn, Rm

뜻 : Reg[Rd] = Reg[Rn] AND Reg[Rm]

 

4.1.1 이 λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜κΈ° μœ„ν•΄μ„œ κ·Έλ¦Ό 4.10의 μ œμ–΄ μœ λ‹›μ΄ μƒμ„±ν•˜λŠ” μ œμ–΄μ‹ ν˜Έλ“€μ˜ 값은?

RegWrite

MemRoad

ALUMux

MemWrite

ALUop

RegMux

Branch

0

0

1(Imm)

1

ADD

X

0

ALUMuxλŠ” ALU μž…λ ₯μ—μ„œ Muxλ₯Ό μ œμ–΄ν•˜λŠ” μ œμ–΄μ‹ ν˜Έ.

0(Reg)λ©΄ λ ˆμ§€μŠ€ν„° 파일의 좜λ ₯을 선택, 1(Imm)은 λͺ…λ Ήμ–΄λ‘œλΆ€ν„° μ¦‰μ‹œ ALU에 λŒ€ν•œ λ‘λ²ˆμ§Έ μž…λ ₯을 선택.

RegMuxλŠ” λ ˆμ§€μŠ€ν„° νŒŒμΌμ— λŒ€ν•œ 데이터 μž…λ ₯μ—μ„œ Mux μ œμ–΄ν•˜λŠ” μ œμ–΄μ‹ ν˜Έ.

0(ALU)λŠ” ALU의 좜λ ₯ 선택. 1(Mem)은 λ©”λͺ¨λ¦¬μ˜ 좜λ ₯ 선택.

XλŠ” Don’t care 항이닀.

 

4.1.2 이 λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•  λ•Œ μœ μš©ν•œ κΈ°λŠ₯을 μˆ˜ν–‰ν•˜λŠ” μžμ›(블둝)은?

Branch Add unit κ³Ό Registers의 write port λ₯Ό μ œμ™Έν•œ λͺ¨λ“  μžμ›(블둝)이 μœ μš©ν•˜λ‹€.

 

4.1.3 좜λ ₯을 λ§Œλ“€κΈ°λŠ” ν•˜μ§€λ§Œ κ·Έ 좜λ ₯이 이 λͺ…λ Ήμ–΄ μ‹€ν–‰μ—λŠ” μ‚¬μš©λ˜μ§€ μ•ŠλŠ” μžμ›(블둝)은? 또 μ•„μ˜ˆ 좜λ ₯이 λ‚˜μ˜€μ§€ μ•ŠλŠ” μžμ›(블둝)은?

좜λ ₯을 λ§Œλ“€μ§€λ§Œ λͺ…λ Ήμ–΄ μ‹€ν–‰μ—λŠ” μ‚¬μš©λ˜μ§€ μ•ŠλŠ” μžμ›(블둝)은 Branch Add 와 λ ˆμ§€μŠ€ν„°μ˜ Write port 이닀.

μ•„μ˜ˆ 좜λ ₯이 λ‚˜μ˜€μ§€ μ•ŠλŠ” μžμ›(블둝)은 μ—†λ‹€. λͺ¨λ“  μž₯μΉ˜κ°€ 좜λ ₯을 ν•œλ‹€.

 

4.3 μ‹€ν–‰ λͺ…λ Ήμ–΄μ˜ 뢄포가 λ‹€μŒκ³Ό κ°™λ‹€.

R-type

I-type

LDUR

STUR

CBZ

B

24%

28%

25%

10%

11%

2%

 

4.3.1 전체 λͺ…λ Ήμ–΄μ˜ λͺ‡ %κ°€ 데이터 λ©”λͺ¨λ¦¬λ₯Ό μ‚¬μš©ν•˜λŠ”κ°€?

25% + 10% μ΄λ‹ˆ 총 35%κ°€ μ‚¬μš©λœλ‹€.

4.3.2 전체 λͺ…λ Ήμ–΄μ˜ λͺ‡ %κ°€ λͺ…λ Ήμ–΄ λ©”λͺ¨λ¦¬λ₯Ό μ‚¬μš©ν•˜λŠ”κ°€?

24% + 28% μ΄λ―€λ‘œ 총 52%κ°€ μ‚¬μš©λœλ‹€.

4.3.3 전체 λͺ…λ Ήμ–΄μ˜ λͺ‡ %κ°€ λΆ€ν˜Έν™•μž₯ μœ λ‹›μ„ μ‚¬μš©ν•˜λŠ”κ°€?

28% + 25% + 10% + 11% + 2% μ΄λ―€λ‘œ 총 76%κ°€ μ‚¬μš©λœλ‹€.

4.3.4 λΆ€ν˜Έν™•μž₯ μœ λ‹›μ˜ μž…λ ₯이 ν•„μš” μ—†λŠ” μ‚¬μ΄ν΄μ—μ„œ λΆ€ν˜Έν™•μž₯ μœ λ‹›μ€ 무슨 일을 ν•˜λŠ”κ°€?

각 클럭 μ‚¬μ΄ν΄μ—μ„œ λΆ€ν˜Έν™•μž₯ μœ λ‹›μ΄ κ³„μ‚°λ˜λ©°, 전체λͺ…λ Ήμ–΄μ˜ 76%κ°€ μ‚¬μš©λ¨μœΌλ‘œ, λΆ€ν˜Έν™•μž₯ μœ λ‹›μ˜ μž…λ ₯이 ν•„μš”μ—†λŠ” μ‚¬μ΄ν΄μ—μ„œλŠ” 남은 λͺ…령어에 λŒ€ν•΄ μ•„λ¬΄λŸ° 일도 ν•˜μ§€ μ•ŠλŠ”λ‹€.

 

4.16 이 μ—°μŠ΅λ¬Έμ œμ—μ„œλŠ” νŒŒμ΄ν”„λΌμ΄λ‹μ΄ ν”„λ‘œμ„Έμ„œμ˜ 클럭 사이클 μ‹œκ°„μ— μ–΄λ–€ 영ν–₯을 λ―ΈμΉ˜λŠ”μ§€ μ•Œμ•„λ³Έλ‹€. λ°μ΄ν„°νŒ¨μŠ€μ˜ 각 λ‹¨κ³„λŠ” λ‹€μŒκ³Ό 같은 μ§€μ—°μ‹œκ°„μ„ κ°–λŠ”λ‹€κ³  κ°€μ •ν•œλ‹€.

IF

ID

EX

MEM

WB

250ps

350ps

150ps

300ps

200ps

 

또 이 ν”„λ‘œμ„Έμ„œμ˜ μ‹€ν–‰ λͺ…λ Ήμ–΄ λΆ„ν¬λŠ” λ‹€μŒκ³Ό κ°™λ‹€κ³  κ°€μ •ν•œλ‹€.

ALU/Logic

Jump / Branch

LDUR

STUR

45%

20%

20%

15%

 

4.16.1 νŒŒμ΄ν”„λΌμΈ ν”„λ‘œμ„Έμ„œμ™€ νŒŒμ΄ν”„λΌμΈλ˜μ§€ μ•Šμ€ ν¬λ‘œμ„Έμ„œμ˜ 클럭 사이클 μ‹œκ°„μ€ μ–Όλ§ˆμΈκΉŒ?

νŒŒμ΄ν”„λΌμΈ ν”„λ‘œμ„Έμ„œμ˜ 클럭 사이클 μ‹œκ°„μ€ 350ps이고,

νŒŒμ΄ν”„λΌμΈ λ˜μ§€ μ•Šμ€ ν”„λ‘œμ„Έμ„œμ˜ 클럭 사이클 μ‹œκ°„μ€ 250 + 350+ 150+ 300+ 200 = 1250ps이닀.

4.16.2 νŒŒμ΄ν”„λΌμΈ ν”„λ‘œμ„Έμ„œμ™€ νŒŒμ΄ν”„λΌμΈλ˜μ§€ μ•Šμ€ ν”„λ‘œμ„Έμ„œμ—μ„œ LDUR λͺ…λ Ήμ–΄μ˜ 전체 μ§€μ—°μ‹œκ°„μ€ μ–Όλ§ˆμΈκ°€?

LDUR λͺ…λ Ήμ–΄λŠ” 5단계λ₯Ό κ°€μ§€κ³  μžˆμœΌλ―€λ‘œ

νŒŒμ΄ν”„λΌμΈμ—μ„œ μ§€μ—°μ‹œκ°„μ€ 5cyckes * 350ps/cycle = 1750ps이닀.

νŒŒμ΄ν”„λΌμΈλ˜μ§€ μ•Šμ€ ν”„λ‘œμ„Έμ„œμ˜ μ§€μ—°μ‹œκ°„μ€ 250 + 350+ 150+ 300+ 200 = 1250ps 이닀.

4.16.3 νŒŒμ΄ν”„λΌμΈ λ°μ΄ν„°νŒ¨μŠ€μ˜ ν•œ 단계λ₯Ό μ§€μ—°μ‹œκ°„μ΄ 절반인 단계 λ‘κ°œλ‘œ λ‚˜λˆŒ 수 μžˆλ‹€λ©΄, μ–΄λ–€ 단계λ₯Ό λ‚˜λˆ„λŠ” 것이 쒋을 것이며 μ΄λ•Œ ν”„λ‘œμ„Έμ„œμ˜ 클럭 사이클 μ‹œκ°„μ€ μ–Όλ§ˆκ°€ λ˜λŠ”κ°€?

175ps μ—μ„œ λ‘λ‹¨κ³„λ‘œ λ‚˜λˆ„λŠ” 것이 쒋을 것이며,

μ΄λ•Œ ν”„λ‘œμ„Έμ„œμ˜ 클럭 사이클 μ‹œκ°„μ€ 300ps이닀.

4.16.4 μ§€μ—°μ΄λ‚˜ ν•΄μ €λ“œκ°€ μ—†λ‹€κ³  κ°€μ •ν•˜λ©΄ 데이터 λ©”λͺ¨λ¦¬μ˜ 이용λ₯ μ€ μ–Όλ§ˆμΈκ°€?

데이터 λ©”λͺ¨λ¦¬λŠ” LDURκ³Ό STUR λͺ…λ Ήλ§Œ μ‚¬μš©ν•˜λ―€λ‘œ, 데이터 λ©”λͺ¨λ¦¬μ˜ 이용λ₯ μ€ 클럭 μ‚¬μ΄ν΄μ˜ 35%이닀.

4.16.5 μ§€μ—°μ΄λ‚˜ ν•΄μ €λ“œκ°€ μ—†λ‹€κ³  κ°€μ •ν•˜λ©΄ β€œRegisters” μœ λ‹›μ˜ Write register 포트의 이용λ₯ μ€ μ–Όλ§ˆμΈκ°€?

β€œRegisters” μœ λ‹›μ˜ Write register ν¬νŠΈλŠ” ALU와 LDUR λͺ…λ Ήμ–΄μ—μ„œ ν™œμš©λ˜κΈ°μ—, 이용λ₯ μ€ 클럭 μ‚¬μ΄ν΄μ˜ 65%κ°€ λœλ‹€.

 

728x90
λ°˜μ‘ν˜•
Liky