1. CPU

Untitled

애플의 경우 cpu 를 2 big core + 4 little core 의 체제로 만든다. 게임 등 무거운 프로그램을 돌릴 때는 전자를 사용하고 간단한 문서 작업은 주로 후자를 사용한다. 전자의 경우 성능은 높지만 그만큼 전기를 많이 먹고 후자는 성능은 좀 떨어져도 전기 효율성이 좋다. 참고로 NPU 라는 녀석은 페이스 id 등 머신 러닝 앱을 사용할 때 그 앱의 연산에 최적화된 칩이라고 보면 된다. 그리고 그림을 보면 메모리, cpu, gpu 가 모두 한 칩에 들어있는 것을 알 수 있는데, 원래는 이것들이 다 다른 곳에 있다가 System on Chip SOC 기술이 발달되면서 하나의 칩에 집적되게 되었다.

  1. 추상화

Untitled

추상화에 대해 조금 더 자세히 알아보자면, 기본적인 개념은 printf 관련해서 설명한 앞 부분 내용 생각하면 될 것 같고, 트랜지스터라든지 그런 낮은 레벨의 하드웨어 디테일을 숨긴다는 개념으로 보면 된다. 그럼으로써 복잡성을 낮추는 개념이다. 이 추상화의 대표적인 예가 바로 ISA 이다. 우리가 ISA 를 사용할 때 구체적으로 하드웨어적인 걸 생각하지 않고 그냥 약속이 무엇인지만 보는 것처럼..

  1. 데이터 저장소

Untitled

쉬운 개념이어서 짧게 설명을 하자면, Volatile main memory 는 주로 DRAM 같은 애들로, 말하자면 강제 종료 시에 데이터가 저장되지 않고 날라가는 애들이고, Non-volatile secondary memory 의 경우에는 hard disk, dvd, flash memory 등 저장하고 꺼도, 다시 키면 저장되어 있는 메모리이다. 얘를 main memory 에서 카피해서 쓸 수가 있다.

  1. 네트워크

Untitled

크게 세 종류가 있다. 우리학교 와이파이 처럼, 한 지역에 국한 되어 쓰는 LAN, 인터넷 자체라고 볼 수 있는 WAN, 무선 통신을 담당하는 와이파이와 블루투스.. ? 학교 와이파ㅣ의 경우 세번째의 예시에 해당되는 것이 아닌지..?

  1. 메모리의 성능은 점점 좋아지고 있고, 가격은 점점 다운되고 있다. 성능 증가 속도는 거의 linear 하다.
  2. 성능이 좋다라는 것은 어떤 의미인가? 정답은, 상황에 따라 성능의 정의가 다를 수 있다는 것. 컴퓨터에서는 성능을 말할 때 오로지 속도를 가지고 얘기하며, 그 속도를 결정 짓는 것은 크게 두가지이다. 하나는 Throughput 다른 하나는 Response Time 이다.
  3. Response Time and Throughput

Untitled

Response Time 이란, 하나의 태스크가 끝나는데 걸리는 총 시간이라고 보면 됨. Response time 이 길어서 문제가 된 경우의 예로는 티켓팅이 있음. 티켓팅이라는 하나의 작업을 요청했는데 그걸 처리하는 시간이 오래걸려서 지연되다가 결국 순서를 놓치는..

Throughput 이란, 단위 시간 안에 얼마나 많은 일들을 수행할 수 있는지에 대한 지표.

따라서, 성능을 높이려면 1. 프로세서를 더 좋은 성능의 프로세서로 갈아끼우면 response time 도 줄이고, Throughput 도 늘릴 수 있음. 2. 더 많은 프로세서를 즉 멀티 코어 프로세서로 전환한다면? 일단 한 번에 일할 수 있는 양이 n 배가 되니까, Throughput 의 경우 그 개수가 늘어나니까 무조건 성능이 좋아짐. 근데 response time 이 줄어드는 건 보장할 수가 없음. 줄어들 수도 있긴 하지만.. ? 줄어드는 경우는 어떤 경우..? cpu 는 한 번에 하나의 연산만 가능한 것으로 알고 있는데, 그럼 두 개의 cpu 를 동시에 사용하기 위해 인스트럭션을 반으로 나눠서 동시에 cpu 가동시킴으로써 줄이는 것인지..?