assembly 8

5.4 Measuring and Improving Cache Performance

1. Cache 성능 측정과 향상 기술 캐시 성능을 측정하고 분석하는 방법에는 여러 가지가 있다. 이 섹션에서는 두 가지 주요 기술을 설명한다.1. Miss Rate 감소:캐시 미스율을 줄여 두 개의 서로 다른 메모리 블록이 동일한 캐시 위치를 차지하지 않도록 하는 기술이다.2. Miss Penalty 감소:다단계 캐싱(multilevel caching)을 사용해 미스 패널티를 줄이는 기술이다.이 기술은 1990년대 고가(10만 달러 이상) 컴퓨터에서 처음 도입되었으며, 현재는 모바일 기기에서도 사용된다.  2. CPU Time의 구성 CPU 시간이란 프로그램 실행에 필요한 CPU 실행 시간과 메모리 대기 시간의 합이다. 이를 계산하는 공식은 다음과 같다:CPU time = (CPU execution c..

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.6. An Overview of Pipelining)

4.6 An Overview of Pipelining 1. 파이프라이닝(Pipelining)의 기본 개념 파이프라이닝은 여러 명령어가 동시에 실행되는 방식을 의미한다.즉, 여러 명령어가 실행되면서 각 명령어의 다른 단계들이 겹쳐서 수행된다.이를 통해 CPU의 작업 효율성을 높일 수 있다. 책에서는 세탁의 비유를 통해 파이프라이닝의 개념을 설명한다. • 세탁은 네 가지 단계로 나눌 수 있다. ->  세탁, 건조, 다림질, 옷 정리.  • 비파이프라인 방식모든 세탁이 끝난 후 건조를 시작하고, 건조가 끝난 후 다림질을 하는 방식이다.이 방식은 시간이 많이 소요된다.  • 파이프라인 방식에서는 세탁을 하면서 건조를 시작하고, 건조가 되면 다림질을 시작하는 방식으로 진행된다.이렇게 하면 각 단계가 겹쳐져서 전체..

4. The Processor(4.1~4.5)

4.1 IntroductionA Basic RISC-V Implementation메모리 참조 명령어 : lw, sw산술 및 논리연산 명령어 : add, sub, and, or조건 분기 명령어 : beq 위 7가지 명령어들은 RISC-V 명령어들의 일부분을 나타낸 것이다.이것들 이외에 다양한 명령들이 있지만,  위 구성을 이용한 구현을 통해 datapath, designing control 의 설계의 근본을 이해할 수 있다. 1장에서 나온 원칙 중 하나 "Simplicity favors regularity" 가 여기서 강조된다. An Overview of  the Implementation-RISC-V의 기본 데이터 경로.• Instruction Memory: 명령어 메모리에서 명령어를 가져옵니다. 이때 ..

2. Instructions:Language of the Computer(2.11~2.14, 2.23, 2.25)

2.11 Parallelism and Instructions:Synchronization병렬 처리는 독립적인 작업을 수행하는 것이다.하지만 작업들이 협업해야 할 때, 동기화를 필요로 한다. RISC-V에서는lr.w(load-reserved word)sc.w(store-conditional word) 를 사용한다.2.12 Translating and Starting a Program- A translation hierarchy for C 1. compiler고수준 언어로 작성된 C프로그램을 어셈블리 언어 프로그램으로 변환한다.2. assembler어셈블리 언어 프로그램을 기계 코드로 변환하여 오브젝트 파일을 생성한다.3. linker여러 오브젝트 파일을 결합하여 실행 가능한 파일을 생성한다.4. loade..

2. Instructions:Language of the Computer(2.1~2.10)

2.2 Operations of the Computer Hardware-RISC-V Register 종류 -RISC-V assembly language -Compiling Two C Assignment Statements into RISC-V 왼쪽은 어셈블리어, 주석은 c언어이고, 같은 의미이다. ex1)add a, b, c //a = b + c;sub d, a, e //d = a - e; ex2) 다음과 같은 c언어 수식은 어셈블리어로 어떻게 변환될까?f = (g + h) - (i + j) 이렇게 변환된다.add t0, g, hadd t1, i, jsub f, t0, t1실제로 g,h,i,j 같이 알파벳을 사용하진 않고, 그 값이 들어있는 레지스터를 이용해 연산한다. (보기 좋게 표현한 것.)  -..