📢안내
- 개발자를 꿈꾸는 뉴비입니다.
- 틀린 부분이 있으면 지적 부탁드립니다.
"프로세서 또는 CPU가 컴퓨터의 '두뇌'라고 말한 바 있다.
그 표현이 타당하지 않다는 단서[1]를 달기는 했지만 말이다." - 하드웨어 12번
📌 프로세서
📖 프로세서의 사이클
- 프로세서는 인출, 해석, 실행 의 사이클을 반복
- 메모리에서 명령어 가져오고 => 뭔 소린지 파악하고 => 실행
📖 명령어 집합
- 프로세서가 제공하는 명령어 레퍼토리
- 예시) GET, PRINT, STOP, GOTO, IFZERO
📌 뭐가 더 좋을까?
- 레퍼토리가 폭넓고 다양한 종류의 계산이 처리되도록 많은 수의 명령어 집합?
- 작성하기 쉽고 더 빨리 실행되도록 적은 수의 명령어 집합?
📖 프로세서와 나머지 부분의 연결
- 프로세서의 속도는 매-우 빨라 명령어 한개를 1나노초[2]보다 훨씬 더 짧은 시간 내에 수행
- 그러면 명령어를 가져오는 메모리는? 데이터와 명령어를 인출하는데 10 ~ 20나노초
📖 캐시 란
- 아주아주 간단하게만 설명하면 프로세서와 메모리 사이에 있고
최근 사용된 명령어와 데이터를 담고 있는 친구 (고속 메모리)
- 프로세서에 비해 메모리가 영 시원찮은 친구이기에 차라리 캐시에서 찾는 게 더 빠름 (있다면은)
📌 아키텍처 기법
📖 파이프라이닝 이란?
- 아키텍처[3] 기법 중 하나로 인출과 실행 단계가 겹치도록 설계해서 명령어 여러 개가 다양한 단계에 걸쳐 진행 되도록 만듬
- 한개를 완료 하는데는 여전히 같은 시간이 걸리지만, 전체적인 처리 속도는 빨라짐
📖 그 밖의 아키텍처 기법
- 명령어들이 서로 간섭하거나 의존하지 않는다면 다수의 명령어를 병렬로 실행하는 기법
- 프로세서 여러 개가 동시에 작업하도록 하는 기법
=> 오늘 날 노트북과 휴대전화에 표준으로 사용되는 기술
=> 개별 프로세서는 빨라지지 않지만, 더 많은 프로세서 코어를 쓸 수 있어 연산 속도 ↑
📌 트레이드오프(Tradeoff)
📖 트레이드오프(상충관계)란?
- 기능성, 속도, 복잡도, 전력 소모 정도, 프로그램 가능성 등 다른 측면에서 이득을 얻으면
집합 또는 다른 측면에서 속성을 없애거나 잃어버리는 일이 수반되는 결정
빠른 연산 속도에 대한 욕구와 기계의 단순성 또는 저비용에 대한 욕구 사이의 절충으로 결정된다" - 폰 노이만
=> 빨리 돌리고 싶지만 현실적인 이유(돈)이 걸리기에 어중간한 빠름과 어중간한 비용에서 합의
💬 예시
- 전원이 연결되지 않아 무겁고 비싼 배터리에서 전력을 공급받아야 하며
물리적 공간도 협소한 노트북용 프로세서와 전력과 물리적 공간이 넉넉한 데스크톱의 프로세서
=> 당연히 노트북용 프로세서가 데스크톱보다 더 느리고 전력을 더 적게 씀
💡 정리
- 프로세서 간에 속도를 비교하는 것은 어려울 뿐만 아니라 그다지 의미도 없음
❓ 주석
- "컴퓨터에 그런 게 있다고 할 수 있다면 말이다" - 하드웨어 2번
- 나노는 10억분의 1, 즉 0.000000001초
- 컴퓨터 아키텍처 : 프로세서와 컴퓨터의 나머지 부분간의 연결 방식 설계를 다루는 분야