CPU와 메모리

송현진·2023년 6월 6일
0

CS공부

목록 보기
2/5
post-thumbnail

코어 수가 많으면 어떤 부분에서 좋은지??

  • 병렬 처리에서 탁월한 성능을 가질 수 있다.(작업의 처리 속도가 증가한다.)
  • 여러가지 스레드를 사용할 수 있다.
  • cpu내 물리적 연산부가 코어고 코어의 효율을 향상시키기위해 각 코어당 분산처리할 수 있는 기술(=하이퍼스레딩)이 나왔습니다. 엄밀히 따지면 하나의 코어가 여러 작업을 분할하여 빠르게 처리하는것이고 이를 나누었을때 작업의 단위를 스레드라고 칭합니다. 예로 1111111 이란 작업과 000000 이란 작업이 있으면 1코어당 1스레드의 경우 1111111 000000 으로 처리하지만 1코어당 2스레드의 경우 101010101010 처럼 일을 처리하기때문에 마치 코어가 2개인것 처럼 보이는것이죠. 일종의 착시효과라고도 할 수 있겠지만 스레드 지연시간을 획기적으로 줄일 수 있기때문에 효율이나 사용자가 느끼는 체감은 크다고 볼 수 있습니다. 비유를 하자면 사람입은 하나인데 한손으로 밥먹는 속도와 두손을 다써서 밥먹는 속도의 차이정도... 입은 하나(=코어는 하나)지만 음식을 입에 가져오는 시간을 줄일 수 있기에(스레드 지연시간을 줄일 수 있기에) 두손을 써서 밥먹는게(스레드를 나눠서 쓰는게) 빠를 수 밖에 없죠~ 그리고 운영체제(OS)에서도 스레드라는 단어가 사용되는데 이때 스레드의 기준은 하나의 프로세스(=어떤 프로그램)을 나눠서 처리할때의 단위입니다. 프로세스도 cpu와 마찬가지로 프로세스 하나당 기본적으로 하나의 메인 스레드가 존재하며 다수의 스레드로 수행되는것을 멀티스레딩이라고 칭합니다. 요즘 흔히보이는 프로그램들은 거의다 멀티스레딩구조라고 봐도 무방합니다.

캐시메모리 L1, L2, L3의 차이점?

  • L1이 제일 먼저 참조하고 L2, L3 순서대로 데이터를 참조한다.
  • 캐시메모리는 성능이 좋은 반면에 용량 단위별 비용이 비싸기 때문에 반복적으로 찾을 수 있는 데이터일 수록 L1에 넣고 그렇지 못하면 L2, L3에 나눠서 쓰는 것 같다.

CPU가 데이터를 요청하여 캐시 메모리에 접근했을 때 캐시 메모리가 해당 데이터를 가지고 있다면 이를 '캐시 적중(cache hit)'이라고 부르고, 해당 데이터가 없어서 DRAM에서 가져와야 한다면 '캐시 부적중(cache miss)'라 부른다. 이때 캐시 부적중의 종류는?

  1. Compulsory miss(또는 Cold miss): 해당 메모리 주소를 처음 불렀기 때문에 나는 미스.
  2. Conflict miss: 캐시 메모리에 A 데이터와 B 데이터를 저장해야 하는데, A와 B가 같은 캐시 메모리 주소에 할당되어서 나는 캐시 미스
  3. Capacity miss: 캐시 메모리에 공간이 부족해서 나는 캐시 미스.

❓ 꼬리물기 : 그럼 캐시에 데이터가 저장되는 시기는?

  • 주 메모리 액세스 시 : cpu가 주 메모리에서 데이터를 읽거나 쓰기 위해 주 메모리에 접근하는 경우, 해당 데이터는 캐시 메모리에도 복사됩니다.

  • 프로그램 실행 시 : cpu가 주메모리에서 데이터를 읽거나 쓰기 위해 메모리에 접근을 하는데 먼저 캐시메모리에서 해당 데이터를 찾고, 캐시 메모리에 해당 데이터가 없다면 그 데이터나 명령어를 캐시 메모리에 저장한다.

컴퓨터 구조에서 병목현상이 일어나는 폰노이만을 사용하는 이유는?

  • 컴퓨터에 다른 작업을 시키려고 할 때 굳이 하드웨어(전선)를 재배치할 필요 없이 소프트웨어(프로그램)만 교체하면 되기 때문에 범용성이 크게 향상된다는 것이다.
profile
개발자가 되고 싶은 취준생

0개의 댓글