1일 1로그 100일 완성 IT지식 - Day 14

김정동·2023년 5월 27일
0

프로세서는 무조건 빠른 게 좋을까?

앞서 본 간단한 프로세서를 통해서 초기 컴퓨터의 모습을 볼 수 있었다. 하지만 오늘낭의 프로세서는 훨씬 복잡하다.
기본 명령어의 유형은 같지만, 훨씬 더 많은 명령어를 통해서 데이터를 옮기고 산술 연산을 수행하거나 비교, 분기, 다른 부분을 제어한다. 누산기의 경우에도 여러개가 있다.

이를 자세히 공부하는 학문이 컴퓨터 아키텍처다. 컴퓨터과학과 전기 공학 및 전자 공학의 경계에 있는 하위 분야다.
이 분야의 주 관심사 중 하나는 명령어 집합이다.

여기서 프로세서가 제공하는 명령어가 많은것이 좋을까? 컴퓨터 아키텍처는 기능성, 속도, 복잡도, 전력 소모 정도, 프로그램 가능성 등 상충하는 요구 간 복잡한 트레이드 오프를 수반한다.

프로세서는 매우 빨라서 명령어 한 개를 1나노초보다 훨씬 더 짧은 시간 내에 수행한다. 그에 비해 메모리는 몹시 느린데 (10 ~ 20나노초) 물론 이것도 빠르지만 비교적으로 느리다는 의미다. 그래서 캐시(cache)라는 고속 메모리를 몇 개 사용한다. 캐시는 프로세서와 메모리 사이에 있고 최근 사용된 명령어와 데이터를 담고 있다.

컴퓨터 설계자들은 프로세서가 더 빨리 작동하도록 만들기 위해 여러 가지 아키텍처 기법을 동원한다. 마치 자동차를 성계하는 것과 비슷한다. 여러개의 명령어를 동시에 처리하는 파이프라이닝 기법을 예로 들 수 있다.

프로세서가 여러 개가 동시에 작업하도록 할 수도 있다. 이렇게 하면 개별 프로세서는 더 이상 빨라지지 않지만, 더 많은 코어 덕분에 실질적인 연산속도는 증가하게 된다.

다양한 설계방법이 있으니, 분야에 맞게 설계할 수 도 있다. 데스크탑의 경우 전력이 충분하고 팬으로 열을 분산할 수 있었으니 성능에 집중할 수 있었다. 하지만 노트북이 등장하면서 공간과 전력의 제한이 생겼다. 휴대전화, 태블릿pc의 경우는 더욱 제약이 심하다. 그래서 기존 설계를 수정하는것으로도 부족하다.

이처럼 다양한 프로레서가 등장했기 때문에 서로 간의 속도를 비교하는건 어렵고 의미도 있지 않다. 일처리 방식도 다를 수 있고 전력 소모나, 몇개 코어를 같이 썼을 때의 효율도 다르기 때문이다.

profile
개발자 새싹🌱 The only constant is change.

0개의 댓글