[컴퓨터구조] Introduction(1)

2021. 7. 1. 17:04Study/Computer Architecture

우선 컴퓨터 구조란? 어떤것인지 위키백과에 나온 정의부터 보며 포스팅을 시작하려 한다.

 

컴퓨터 구조(computer architecture)는 컴퓨터공학 에서 컴퓨터 시스템의 기능(functionality), 조직(organization), 구현(implementation)에 대한 법칙과 방법을 통칭한다.

또 다른 정의로는 컴퓨터 구조는 명령어 집합 구조(Instruction set architecture, ISA), 마이크로아키텍처(Microarchitecture) 설계, 논리 설계 및 구현을 의미한다.

 

여기서 ISA란 Instruction set architecture 

실행 가능한 명령으로 된 구조. 란 뜻으로

Hard ware 와 lowest - level software(Machine language) 사이의 interface 라고 한다. 또한 컴퓨터 시스템이 프로그램과 data에 만응하여 할일을  결정한다.

프로그램은 명령어의 sequence 로 이루어져 있고 이 명령어들이 알맞게 기계어로 번역되어

HW 특히 CPU 로 들어가 처리되기 때문이다. 

 

Computer Performace를 측정할때 보통 2가지 시간으로 측정한다.  1. Wall-clock Time(Response time, Elapsed time)  - 한 task를 수행하는데 걸린 전체 시간을 뜻한다. disk access, I/O 활동 , OS overad 기타등등 모두 포함한 시간이다. 결국 System performance 를 결정한다.  

 

2. CPU excecution time = cputime - CPU time = User CPU time + System CPU time CPU 가 특정 task를 수행할때 걸리는 시간이다. 위 Wall-clock Time와는 달리 다른 부가 시간은 포함하지 않는다. 하지만 System CPU time에 포함되는건.  OS 가 해당 program을 위해 일하는 시간은 포함한다. 


 

전체적인 CPU Performace 를 측정하기 전에 

CPU Clock에 관해 설명해 보자면.

 

Clock cycle time : Clock perod = duration of a clock cycle 

즉 1 clock cycle(켜졌다 꺼지기 까지) 걸리는 시간을 뜻한다. 

**clock 이란 digital 기계가 작동하기 위해 받는 전기적 신호 이다. 이 특정한 신호를 가리키는 말이 바로 '클럭'이라는 단어이다.

 

Clock frequency(Rate) : cycle per second 

1초당 반복되는 Clock cycle 수를 뜻한다. Clock cycle time의 역수이며 (1 clock cycle : x 초 = n clock cycle : 1초) 

보통 CPU 스펙을 읽어보면 보이는 Hz 단위 숫자이다. 

 

CPU Performace 는 Clock Cycle 수와 Clock cycle Time의 영향을 받는다. 보통 Clock Cycle Time 은 이용하지 않으므로 

Clock Rate를 이용한다 

따라서 Cpu Time = Clock Cycle 수*Clock cycle Time = Clock Cycle 수 * Clock Rate의 수식이 성립한다.

 

Inscruction Performace 

프로그램의 명령어 수 에 따라 ,명령어를 어떻게 처리하냐에 따라 performace에 영향을 줄 수있다. 

위 Clock Cycle 수는  명령어의 갯수 * 1명령어를 처리하는데 필요한 Clock 수 로 계산된다. 

Clock Cycles = Instruction Count * Cycle Per Instruction 

** 요즘 Super Scalar 방식에서는 1 cycle에 여러 명령어를 처리한다 해서 IPC ( Instruction Per Cycle) 로 계산한다고 한다. 

 

모든걸 종합하면 CPU Performace Equation을 구할수 있다. 

CPU Time = IC * CPI * clock cycle time = (IC*CPI)/Clock Rate 

 

CPU는 다양한 방식으로 성능을 늘려왔다고 한다. 

대표적으로 2가지 방식이 있는데 

1. RISC 

Reduced Instruction Set Computer 

최대한 간단한 명령어 집합을 구현하여 IC의 수는 늘리더라도 Clock Cycle Time과 CPI를 최대한 줄여 성능 향상을 추구한 방식이다. 

 

2. CISC

Complex Instruction Set Computer 

갈수록 복잡해지는High level Language에 맞춰 Machine Language 역시 복잡해 지게 구현하여 성능향상을 추구한 방식이다. 이 방식에선 IC를 최소한 줄이는 방향에 초점을 주었다. 

 

최근 에는 대부분 RISC 방식을 택한다. 아직까진 Pantium이 CISC 방식 이라고 한다. 

 

일반적인 Computer Designer의 목표는 뭘까? 

성능은 최대화, 비용은 최소화 이다. 

 

"Simplicity of the equipment"

 

다음 포스팅엔 본격적으로 MIPS 명령어 집합을 살펴보며 컴퓨터 구조에 대해 공부해 보겠다.