컴퓨터구조 18

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는 실행 단계에서 사..

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 같이 알파벳을 사용하진 않고, 그 값이 들어있는 레지스터를 이용해 연산한다. (보기 좋게 표현한 것.)  -..

1. Computer Abstactions and Technology (1.7 ~ 1.14)

1.7 The Power Wall 예시 현대의 문제는 전압을 낮추면 트랜지스터가 새는 것처럼 보인다는 것이다. 지금도 서버 칩 소비 전력의 40%가 누출로 인해 발생한다 만약 더 누출되기 시작하면, 전체 프로세스를 다루기 어려워질 수 있다. 이 문제를 해결하기 위해 노력했지만, 비용이 너무 많이 드는 문제로 새로운 방법을 찾았고, 처음 30년간 마이크로프로세서를 설계하던 방식과는 다른 길을 택했다.  ------------------------------------------------------------------------------------------------------------------1.8 The Sea Change: The Switch from Uniprocessors to Multi..