2024/11/17 5

4. The Processor (4.11 Parallelism via Instructions)

1. Pipelining과 Instruction-Level Parallelism (ILP) Pipelining은 여러 명령어가 동시에 실행되는 구조로, **Instruction-Level Parallelism (ILP)**을 활용하여 성능을 향상시킨다.ILP는 명령어들 간의 병렬성을 의미하며, 이를 극대화하기 위한 두 가지 방법이 있다.  • 파이프라인 깊이를 늘려서 병렬성 증가예를 들어, 세탁기를 세 개의 기계로 나누어 각기 다른 세탁 단계를 동시에 수행하면 전체 세탁 시간을 단축할 수 있다.파이프라인을 확장하여 명령어를 겹쳐서 실행할 수 있도록 한다.  • Multiple Issue 기법 사용 한 클록 사이클에서 여러 명령어를 실행할 수 있도록, 여러 명령어를 동시에 발행하는 기술이다. 세탁기를 여러..

4. The Processor (4.10 Exceptions)

예외와 인터럽트의 차이  • 예외 (Exception)프로그램 내에서 발생하는 예기치 않은 사건이다.예를 들어, 정의되지 않은 명령어가 실행되거나 하드웨어 고장이 발생하는 경우가 예외이다.  • 인터럽트 (Interrupt)외부 장치나 하드웨어가 발생시키는 이벤트이다.예를 들어, I/O 장치가 데이터를 준비했다고 알리거나 시스템의 타이머가 주기적인 작업을 요청하는 경우가 이에 해당한다. RISC-V에서는 예외라는 용어를 사용하여 프로그램 내에서 발생하는 모든 예기치 않은 이벤트를 의미하며, 인터럽트는 외부에서 발생하는 예외를 지칭한다.  예외 처리 방법 RISC-V 시스템에서 예외가 발생하면, 두 가지 주요 작업이 수행된다.  1. 예외가 발생한 명령어의 주소를 저장예외가 발생한 시점에서 현재 실행 중인..

4. The Processor (4.9 Control Hazards)

Control hazards 또는 branch hazards는 조건부 분기(instruction)의 실행 시 발생하는 문제이다.파이프라인에서 조건부 분기의 결과가 결정되기 전에 다른 명령들이 계속 실행되므로, 이러한 분기 명령이 언제 발생할지를 정확히 알 수 없다.예를 들어, 분기 명령을 포함한 파이프라인에서는 해당 명령이 언제 실행될지를 결정하기까지 지연이 발생하며, 이로 인해 예상된 명령 순서대로 실행되지 않으면 파이프라인의 성능에 영향을 미칠 수 있다. 여기서 핵심은 예측이다. 분기 예측(branch prediction)은 파이프라인이 진행될 때 분기가 발생할지 안 할지를 예측하여 성능 저하를 방지하는 방식이다.예측을 통해 분기가 발생할 경우 필요한 명령을 미리 로드하고, 예측이 틀린 경우에는 명령..

4. The Processor (4.8 Data Hazards:Forwarding versus Stalling)

sub x2, x1, x3 // Register x2 written by suband x12, x2, x5 // 1st operand (x2) depends on subor x13, x6, x2 // 2nd operand (x2) depends on subadd x14, x2, x2 // 1st(x2) & 2nd(x2) depend on subsw x15, 100(x2) // Base (x2) depends on sub여기서 x2 레지스터는 첫 번째 sub 명령어의 결과로 설정된다. 이후 다른 명령어들이 이 값을 사용하며 데이터 의존성을 발생시킨다. 예를 들어:•and 명령어는 x2 값을 첫 번째 피연산자로 사용한다.•or 명령어는 x2 값을 두 번째 피연산자로 사용한다.•add 명령어는 x2 값을 ..

4. The Processor (4.7 Pipelined Datapath and Control)

Figure 4.36: 파이프라인 실행을 위한 데이터 경로  • Figure 4.36에서는 파이프라인 실행을 가정하여 각 명령어가 고유의 데이터 경로를 가진다고 설명한다. '각 명령어는 각자의 데이터 경로를 가지며, 공유된 타임라인에 배치되어 서로의 관계를 나타낸다. • 여기서 중요한 점은 각 명령어의 데이터 경로가 단일 사이클 데이터 경로와 어떻게 연결되는지를 보여주고 있다는 것이다.각 명령어는 5단계(명령어 인출, 해석, 실행, 메모리 접근, 쓰기-back)로 나뉘어 실행되며,이들 각각은 고유한 파이프라인 레지스터를 통해 서로 연결된다. 예를 들어: • 명령어 메모리(IM)는 명령어 인출 단계에서 사용되고, 이후 레지스터 파일(Reg)은 레지스터 읽기 단계에서 사용된다. • ALU는 실행 단계에서 사..