2023/04/08 3

[컴퓨터 구조]제 4장. Pipeline

Overview of Pipelining Pipelining은 실행 시에 여러 명령들이 중첩되는 구현 기술입니다. 현재 pipelining기술은 보편적으로 사용되고 있습니다. 예를 들어,non-pipelined Version에서 세탁물을 예시로 든다면 이렇게 되지만 Pipelined Version에선 이런 식으로 시간이 훨씬 줄어든 것을 볼 수 있습니다. Pipelining에선 stages라고 불리는 모든 단계들이 동시에 작동합니다. 그래서 위의 Non-pipelined Version에선 총 16 times이 걸렸고, 아래의 pipeline에선 총 7 times이 걸렸습니다. → 따라서 16/7= 약 2.3배가 빨라졌고 이러한 빨래물들의 양이 무한하다면 4n/(n+3) = 약 4배 가량 빨라집니다. Pi..

컴퓨터구조 2023.04.08

[컴퓨터 구조]제 2장. 명령어(Instruction) : 컴퓨터의 언어(3)

Procedure calls procedures는 프로그래머가 한 번에 작업의 한 부분만 집중하게 해 줍니다. procedure는 엄연하게 함수와는 다르지만 여기선 같다고 생각해 주시면 될 것 같습니다. 위의 c언어 코드를 아래로 나타낼 수 있습니다. 추가 예시) caller : procedure을 호출합니다. callee : procedure입니다. caller는 callee에게 argument(실인자)를 줍니다. callee는 caller에게 결괏값을 return 해줍니다. 즉 추가 예시에서 f1 procedure는 caller이자 callee인 거죠. Procedure Execution 프로그램은 procedure의 실행에서 6가지 스텝을 따라야 합니다. procedure가 접근할 수 있는 장소에 ..

컴퓨터구조 2023.04.08

[컴퓨터 구조]제 2장. 명령어(Instruction) : 컴퓨터의 언어 (2)

Registers vs Memory 레지스터는 메모리에 비해 access 속도가 더 빠르다. Risc-V에서 메모리에 있는 데이터는 arithmetic instructions에 바로 접근하지 못합니다. → 메모리 데이터는 실행을 위해 loads와 stores가 필요합니다. 즉 더 많은 instruction이 실행되어야 하죠. 메모리는 실행을 위해 BUS를 통해야 한다. 컴파일러는 가능한한 레지스터를 통하여 변수를 처리하여야 한다. 즉 덜 자주사용 되는 변수는 memory로 spill 해야 하며, 이 과정을 Spilling Register이라고 합니다. → 그렇기에 Register Optimization은 중요합니다. 즉 덜 자주사용 되는 변수는 memory로 spill 해야 하며, 이 과정을 Spilli..

컴퓨터구조 2023.04.08