ISA(Instruction Set Architecture)
마이크로프로세서가 인식해서 기능을 이해하고 실행할 수 있는 기계어 명령어의 집합이다.
이렇게 말하면, 아 그냥 명령어의 집합으로만 생각하기 쉬운데.
다른 면에서 살펴 보자면, 소프트웨어와 하드웨어를 잇는 추상적 도구 라고 할 수 있다.
CPI와 Time의 종류
1. Wall Time
Wall-clock time 이라고도 불리는 이 시간은 프로그램이 실행되고 종료 될 때까지
CPU, I/O, Sub Program 등의 모든 시간을 합친 것을 말한다.
2. CPU Time
Excution Time 이라고도 불리는 이 시간은 프로그램이 실행되고 종료 될 때까지
오직 CPU(User와 System - 굳이 나누자면 이런 부분이 있다.)가 실행된 시간을 말한다.
3. Clock Period
동기화 사이클에 0 -> 1 -> 0 으로 되는 시간을 말하며, 단위로는 Hz와 Sec가 있다.
비트가 바뀔 때엔 0과 1로 바로 변하게 되면 아주 작은시간에 오류가 날 수 있으므로,
먼저 0,1로 바꾸어 주는 Set Time과 잠시 유지시켜주는 Hold Time이 있다.
4. CPI(Cycles Per Instruction)
말 그대로 명령어당 사이클의 갯수를 의미한다. 자, 여기서 헷갈리면 안되는 사실이 있는데
기본적으로 CPI라고 하면 모든 명령어의 CPI를 종합해서 평균을 낸 것을 기본 CPI라고 한다.
그렇다면 각 명령어의 CPI는 다르다는 소리다.
예를 들어 보자.
이 컴퓨터에는 명령어가 10개 있다. 각 명령어의 CPI는 5인데, 개선을 거쳐 한 명령어의 CPI가 2가 되었다.
그렇게 개발자는 개선을 거친 명령어를 보여주며, 속도를 약 2.5배 증진 시켰습니다~
하면서 발표를 한다. 하지만 기본 CPI는 (5 X 9 + 2 X 1) / 10 = 4.7 로써 속도는 5/4.7배 밖에 빨라지지 않았다.
약 1.1배 정도만 증진된 것이다. - (암다스로우)
그러므로 CPI 계산을 할 땐 주의 하여야 한다.
5. Response Time
응답시간을 말한다. 사실 이건 Pipeline을 할 때 같이 배울 것이지만, 먼저 배워보자.
한 사이클의 모든 일을 끝냈을 때, 그 시간을 말한다.
6. Throughput
처리율을 말한다. 이것도 pipeline과 같이 배울 건데, 간략히 말하자면
특정 시간 안의 모든 사이클들의 일 처리 시간을 뜻한다.
|
A single-cycle processor |
Pipelined processor |
예제 |
카드 |
컴퓨터 |
전력 |
저전력 |
고전력 |
처리율 |
낮음 |
높음 |
응답시간 |
빠름 |
동기화 때문에 조금 느림 |
Pipelining을 배우고 나면 5, 6번은 쉽게 다가온다.
마지막으로
1~4번의 시간에 대한 식을 알아보자.
CPU Performance(성능) = 1 / CPU time
CPU time = The Number of Instruction X CPI X Clock Period
Wall Time = I/O Time + CPU Time + Sub Program Time
'Study > Computer' 카테고리의 다른 글
C언어 : 주사위 던지기, VS2019에서 scanf 사용하기 (0) | 2019.12.12 |
---|---|
C언어를 활용한 간단한 코드 : 동전 던지기 (0) | 2019.12.11 |
미래의 메모리 기술(Emerging Memory Technology) (3) | 2019.12.04 |
가설과 검정 [R언어를 쓰기 위한 초석닦기] (0) | 2019.11.13 |
R 언어 설치하기 및 기본 명령어 (0) | 2019.11.13 |