전공/컴퓨터 구조 8

8. Pipeline이란

Multy Cycle Design을 이용해 pipeline을 통해 processor의 성능을 개선시키는 방법에 대해 정리하겠습니다. Pipelining (1) Pipelining이란 동시에 여려개의 명령어를 overlapped하여 실행하는 방법을 말합니다. 프로세스에서 pipeline은 전체 프로세스를 여러 stage로 나누어 동시에 여러개의 명령어가 서로 다른 stage상에 위치하게 함으로써 동시에 여러 명령어를 처리하는 방식을 말합니다. ● 장점 단위 시간당 처리되는 명령어의 수를 높힙니다. 이는 instructino throghput을 높이는 것과 같은 의미입니다. 그리고 datapath 상에 resource인 functional unit의 사용역시 개선 시킬 수 있습니다. ● 단점 stage를 나..

7. Pipeline에서 데이터 처리

1. single core 5-stage pipeline MIPS processor에서 Data forwarding 기술이 적용되지 않았을 때, 아래 명령어들이 어떻게 실행되는지 정리 cycle 명령어 1 2 3 4 5 6 7 8 1 add r3, r2, r1 IF ID EX MEM WB 2 sub r4, r3, r5 IF ID EX MEM WB 3 add r6, r3, r5 IF ID EX MEM WB 4 add r7, r3, r5 IF ID EX MEM WB 위 4가지 명령어를 차례로 명령어1, 명령어2, 명령어3, 명령어4라고 하겠습니다.! ● Datapath, Control의 개념 프로세서는 datapath와 control로 구성되어 있습니다. 그 중 datapath는 말 그대로 데이터가 흘러가는..

5. CPI 계산과 CPU time 구하기

1) 프로그램 A를 실행 했을 때, CPI는 얼마인가? ● Performance 컴퓨터를 사용하는 사용자 입장에서는 작업을 시작하고 종료하기 까지의 시간 (response time)이 중요할 것입니다. 이런 관점에서 Performance를 논할 때 이와 관련된 척도를 정리해야합니다. ● 성능의 척도 clock cycle 컴퓨터는 하드웨어적으로 명령어의 이벤트가 발생되는 시점을 결정하는데 이것을 clock 신호라 합니다. clock cycle 이란 일정한 속도를 가지고 동작하는 프로세스의 clock의 한 주기동안의 시간을 의미합니다. clock period clock 주기란 clock 사이클에서 한 주기가 도는데 걸리는 시간을 의미하며 이는 clock frequency(clock speed)와 역수 관계입..

6. Processor Design

1. review 0) 학습 큰 그림 전체적인 datapath와 control의 개념을 먼저 이해하고 명령어와 데이터가 어떻게 관리되는지 아는 것이 이 장의 목표이다. 처음에는 single cycle 디자인부터 시작해서 multi cycle 디자인으로 확장해 나가는 방식으로 학습하는 큰 그림을 그려야함 1) Processor의 구성요소 Datapath, control 개념 정리 컴퓨터 시스템의 연산 기능을 담당하는 하드웨어인 Processor에 대해서 정리한다. 그 중 Datapath와 Control 관점에서 정리할것이다. 대표적으로 사용하는 데스크탑, 스마트폰 등 뿐만 아니라 가전제품의 인공지능, IOT와 같은 컴퓨터 시스템이 일상생활에서도 적용되고 있습니다. 이런 다양한 장치를 컴퓨터에 범주에 포함시..

4. Calling Convention(Caller-save, Callee-save, Hybrid)

1. The Stack 명령어를 통해 프로그램 작성할 때 필요한 메모리 구조에 대해 정리하였습니다. MIPS에서 32개의 레지스터를 가지고 있습니다. 한 프로그램 내에서 사용하는 모든 데이터를 레지스터에 로드하기 때문에 레지스터의 개수는 늘 부족합니다. 따라서 load store 명령을 통해 연산이 필요한 순간에 메모리와 레지스터가 소통하며 연산하게 됩니다. 이때 메모리의 어떤 저장 공간에 레지스터 값을 할당해야할까? 라는 정리가 필요합니다. 레지스터에 값을 메모리로 쫒아내는 과정을 “spil” 이라고합니다. 반대로 메모리에서 레지스터로 값을 읽어 들이는 과정을 “restore”라고 합니다. 이 두 과정을 수행하기 위한 메모리 공간을 stack 구조로 관리되게 됩니다. 일반적으로 OS가 프로세스에 데이터..

3. MIPS 문법 정리

1. MIPS 레지스터 Name Register Number Usage Calling Convention $zero 0 zero 레지스터에는 상수 0이 들어감. &at 1 at 레지스터는 어셈블러가 사용하는 임시공간이다. $v0 - $v1 2 - 3 함수의 리턴 값으로 사용된다. Caller Svae $a0 - $a3 4 - 7 매개변수를 저장하는 레지스터이다 $t0 - $t7 8 - 15 임시변수로 사용되는 레지스터로 값이 변할 수 있다. $s0 - $s7 16 - 23 상수 값을 저장하는 레지스터로 불변상태이다. Callee Save $t8 - $t9 24 - 25 임시변수로 사용되는 레지스터로 값이 변할 수 있다. Caller Save $k0 26 OS Kernel reserved $k1 27 OS..

2. ISA란?

도입 (내 생각 정리) ISA라는 용어를 처음 접하게 되면 아마 가장 많이 보게되는 정의는 “ISA란 마이크로프로세서가 인색해서 기능을 이해하고 실행할 수 있는 기계어 명령어를 말한다.” 일 것이다. 난 이 문장으로 처음 ISA를 접했을 때 전혀 이해할 수 없었다. 내가 공부한 방식으로 ISA를 정의해보면 ISA의 영어 뜻을 해석해보면 “명령어의 집합인 아키텍쳐”라고 해석이 된다. 아키텍쳐의 영어 뜻은 “건축학”을 의미한다고 한다. 컴퓨터 아키텍쳐(컴퓨터 구조)에서의 아키텍쳐는 컴퓨터 시스템의 하드웨어 구조를 말한다. 이를테면 1.에서 설명한 CPU, 메모리, 디스크와의 관계 또는 기계적 구조 또는 이를 설계한는 방법들을 두루두루 의미한다고 생각한다. 아키텍쳐란 어떠한 “구조” “형식”을 의미한다. 아래..