애플의 경우 cpu 를 2 big core + 4 little core 의 체제로 만든다. 게임 등 무거운 프로그램을 돌릴 때는 전자를 사용하고 간단한 문서 작업은 주로 후자를 사용한다. 전자의 경우 성능은 높지만 그만큼 전기를 많이 먹고 후자는 성능은 좀 떨어져도 전기 효율성이 좋다. 참고로 NPU 라는 녀석은 페이스 id 등 머신 러닝 앱을 사용할 때 그 앱의 연산에 최적화된 칩이라고 보면 된다. 그리고 그림을 보면 메모리, cpu, gpu 가 모두 한 칩에 들어있는 것을 알 수 있는데, 원래는 이것들이 다 다른 곳에 있다가 System on Chip SOC 기술이 발달되면서 하나의 칩에 집적되게 되었다.
추상화에 대해 조금 더 자세히 알아보자면, 기본적인 개념은 printf 관련해서 설명한 앞 부분 내용 생각하면 될 것 같고, 트랜지스터라든지 그런 낮은 레벨의 하드웨어 디테일을 숨긴다는 개념으로 보면 된다. 그럼으로써 복잡성을 낮추는 개념이다. 이 추상화의 대표적인 예가 바로 ISA 이다. 우리가 ISA 를 사용할 때 구체적으로 하드웨어적인 걸 생각하지 않고 그냥 약속이 무엇인지만 보는 것처럼..
쉬운 개념이어서 짧게 설명을 하자면, Volatile main memory 는 주로 DRAM 같은 애들로, 말하자면 강제 종료 시에 데이터가 저장되지 않고 날라가는 애들이고, Non-volatile secondary memory 의 경우에는 hard disk, dvd, flash memory 등 저장하고 꺼도, 다시 키면 저장되어 있는 메모리이다. 얘를 main memory 에서 카피해서 쓸 수가 있다.
크게 세 종류가 있다. 우리학교 와이파이 처럼, 한 지역에 국한 되어 쓰는 LAN, 인터넷 자체라고 볼 수 있는 WAN, 무선 통신을 담당하는 와이파이와 블루투스.. ? 학교 와이파ㅣ의 경우 세번째의 예시에 해당되는 것이 아닌지..?
Response Time 이란, 하나의 태스크가 끝나는데 걸리는 총 시간이라고 보면 됨. Response time 이 길어서 문제가 된 경우의 예로는 티켓팅이 있음. 티켓팅이라는 하나의 작업을 요청했는데 그걸 처리하는 시간이 오래걸려서 지연되다가 결국 순서를 놓치는..
Throughput 이란, 단위 시간 안에 얼마나 많은 일들을 수행할 수 있는지에 대한 지표.
따라서, 성능을 높이려면 1. 프로세서를 더 좋은 성능의 프로세서로 갈아끼우면 response time 도 줄이고, Throughput 도 늘릴 수 있음. 2. 더 많은 프로세서를 즉 멀티 코어 프로세서로 전환한다면? 일단 한 번에 일할 수 있는 양이 n 배가 되니까, Throughput 의 경우 그 개수가 늘어나니까 무조건 성능이 좋아짐. 근데 response time 이 줄어드는 건 보장할 수가 없음. 줄어들 수도 있긴 하지만.. ? 줄어드는 경우는 어떤 경우..? cpu 는 한 번에 하나의 연산만 가능한 것으로 알고 있는데, 그럼 두 개의 cpu 를 동시에 사용하기 위해 인스트럭션을 반으로 나눠서 동시에 cpu 가동시킴으로써 줄이는 것인지..?