본문으로 바로가기
검색
회원가입로그인

CPU: 파이프라인 단계별 명령어 속도 비교: lw, sw, R-format, Branch 명령어 처리 시간

Kade Kang
Kade Kang
조회수 30

Instruction class에 따른 속도 차이\

CPU: 파이프라인 단계별 명령어 속도 비교: lw, sw, R-format, Branch 명령어 처리 시간 image 1

주어진 표를 보면 Load word (lw) 명령어가 다른 명령어들보다 Total time이 가장 길게 나와있습니다. 그 이유는 lw 명령어가 5단계 파이프라인의 모든 단계를 거쳐야 하기 때문입니다.

각 명령어가 거치는 단계와 해당 단계의 시간을 자세히 살펴보겠습니다.

  1. Load word (lw):

    • Instruction fetch: 200 ps

    • Register read: 100 ps

    • ALU operation: 200 ps (주소 계산: Base + Offset)

    • Data access: 200 ps (계산된 주소에서 데이터 메모리 읽기)

    • Register write: 100 ps (읽어온 데이터를 레지스터에 쓰기)

    • Total time: 800 ps

    lw 명령어는 메모리에서 데이터를 읽어와 레지스터에 쓰는 명령어이므로, Instruction Fetch, Register Read, ALU Operation (주소 계산), Data Access (메모리 읽기), Register Write (결과 저장)모든 5단계를 거쳐야 합니다. 따라서 가장 긴 시간이 소요됩니다.

  2. Store word (sw):

    • Instruction fetch: 200 ps

    • Register read: 100 ps

    • ALU operation: 200 ps (주소 계산: Base + Offset)

    • Data access: 200 ps (계산된 주소에 데이터 메모리 쓰기)

    • Register write: (없음)

    • Total time: 700 ps

    sw 명령어는 레지스터의 데이터를 메모리에 쓰는 명령어입니다. lw와 마찬가지로 주소를 계산하고 메모리에 접근해야 하지만, 메모리에 데이터를 쓴 후 레지스터에 결과를 다시 쓸 필요가 없습니다. (Store 명령어는 레지스터를 업데이트하지 않음) 따라서 Register write 단계가 생략되어 100 ps가 줄어듭니다.

  3. R-format (add, sub, AND, OR, slt):

    • Instruction fetch: 200 ps

    • Register read: 100 ps

    • ALU operation: 200 ps (레지스터 값 간의 연산)

    • Data access: (없음)

    • Register write: 100 ps (ALU 연산 결과를 레지스터에 쓰기)

    • Total time: 600 ps

    R-format 명령어는 레지스터 간의 연산만 수행합니다. 따라서 데이터 메모리에 접근할 필요가 없습니다. Data access 단계가 생략되어 200 ps가 줄어듭니다.

  4. Branch (beq):

    • Instruction fetch: 200 ps

    • Register read: 100 ps

    • ALU operation: 200 ps (두 레지스터 값 비교)

    • Data access: (없음)

    • Register write: (없음)

    • Total time: 500 ps

    beq 명령어는 두 레지스터 값을 비교하고 (ALU), 조건이 맞으면 분기합니다. 이 명령어는 데이터 메모리에 접근하지 않고, 레지스터에 어떤 값도 쓰지 않습니다. 따라서 Data accessRegister write 단계가 모두 생략됩니다.