오늘날 사용하는 cpu는 속도와 처리 중심의 질적변화와 코어의 수를 늘리는 양적 변화를 보여왔다.
.
프로세서는 인출, 해석, 실행 의 사이클을 계속해서 반복 수행한다.
- 인출 : 메모리(램)에서 수행할 명령어를 가지고 오는 행위
- 해석 : 명령어를 수행하기 위해 필요한 자원을 준비하고 어떻게 명령을 수행해야하는지 파악하는 행위
- 실행 : 실제 필요한 자원을 메모리(램)에서 가져와 업무를 수행하는 행위
이 사이클을 도는데 프로세서는 1나노초(10억분의 1초)도 안걸린다.
컴퓨터 설계자들은 이처럼 사람이 상상할 수도 없는 속도를 만들어내는데 다양한 아키텍처 기법을 동원하여 진화시켜 왔다.
- (질적 진화)파이프라이닝 : 인출, 실행 단계를 겹치도록 프로세서를 설계해서 명령어 여러 개가 다양한 단계에 걸쳐 진행되도록 만드는 기법. 즉 파이프라이닝이란 **명령어의 데이터 경로를 세분화하고, 각기 다른 세부 단계를 동시에 수행하게 함으로써, 여러 명령어들을 중첩 수행 가능하게 만들어 성능을 향상하는 것을 의미한다.
- **예를 들어 세탁,탈수,건조,옷장에 넣는 과정을 두번째 사진처럼 한사이클이 끝나기도 전에 사이클을 더 추가한다.
이렇게 진행되면 빠른 시간안에 업무를 끝낼 수 있다. (javascript의 논블로킹 방식)
- (질적 진화)서로 간섭하거나 의존하지 않는 명령어라면 병렬처리로 실행하는 방법
- (질적 진화)상호 작용하지 않는 명령어이고 작업이 많다면 중요도가 높은 순으로 순서를 바꿔 실행하는 일
- (양적 진화)집적회로가 세월이 지날수록 작아져서 칩안에 코어를 여러개 담아둘 수 있게된다.
이처럼 프로세서는 다양한 기법으로 정말 빠르게 변해왔다. 또한 노트북이나 휴대폰처럼 전력의 안정적인 공급이나 크기의 제약과 같은 다양한 환경에서 그 상황에 맞춰진 진화를 해왔기 때문에 각 기기의 프로세서 간의 속도를 비교하는 것은 어려울 뿐만 아니라 그다지 의미없는 행동이다. 그러므로 '빠르다'라는 그저 하나의 기준을 둔 주장은 조심스럽게 받아들여야 한다.
+추가로) 프로세서는 아주 빠른 속도(1나노초)로 연산처리를 한다. 하지만 프로세서를 받쳐주고 있는(데이터를 가지고 오거나 저장하거나)하는 램은 상대적으로 느린 속도이다. 물론 램(메모리)도 10~20나노초로 절대적인 측면에서 매우 빠른 속도지만, 워낙 프로세서가 빠르다보니 프로세서 입장에선 답답할 뿐이다. 메모리가 한번 처리할 때 나는 몇번의 작업을 할 수 있는데, 기달려야 하기 때문이다.
이런 상황을 인지한 기술자들은 캐시라는 고속메모리를 몇개 사용햤다. 캐시는 프로세서와 메모리 사이에 있고 최근 사용된 명령어와 데이터를 담고 있다. 또한 프로세서는 캐시에서 정보를 가지고 오는 편이 편이 메모리에서 정보가 오기를 기다리는 것보다 빠르기에 프로세서와 cpu사이에 캐시를 두었다고 한다.(이건 15일차를 봐야 함....)
'항해99 > CS' 카테고리의 다른 글
[항해 99] TCP (0) | 2022.08.11 |
---|---|
[항해99] HDD vs SSD (0) | 2022.07.19 |
댓글