티스토리 뷰
😊[1일 1로그 100일 완성 IT지식] 책을 기반으로 study한 내용을 정리합니다.
1부 요약- 컴퓨터 하드웨어에 관해 설명, 하드웨어가 만들어지는 방식같은 물리적 세부 사항보다는 컴퓨팅 시스템의 논리적 아키텍처에 초점
- 컴퓨터의 구조와 구성 요소 개괄적 설명
- 컴퓨터가 어떻게 비트, 바이트, 이진수로 정보를 표현할까?
- 컴퓨터가 실제로 계산을 어떻게 수행할까? (어떤 일을 수행하기 위해 비트와 바이트를 어떻게 처리하는 지 살펴보기)
전에 배운 것들을 되뇌어 보겠습니다.
무어의 법칙대로, 최근까지 cpu의 처리 속도가 급격하게 증가했다고 전 시간에 배웠습니다. 메모리와 cpu의 효율을 온전히 쓰기 위해 ssd 보조기억장치도 발명되었고요, {cpu+메모리 - 보조기억장치} 인간의 욕심은 끝이 없기 때문에 이에 멈추지 않고 이번엔 메모리와 cpu의 사이에서 성능향상을 원했습니다. {cpu - 메모리}
문제점은, 주 기억 장치인 메모리에서 데이터를 CPU에 가져오고, CPU에서 받은 데이터를 아무리 빠르게 처리를 해도 다음 연산에 필요한 데이터가 오는 속도가 너무 느리기 때문에 CPU의 성능을 모두 이용하지는 못했습니다. 이러한 부분을 극복하기 위해서 ‘캐시’가 등장하였습니다.
*캐시의 등장
그림과 같이 캐시를 메모리와 cpu사이에 위치시켜 cpu가 ‘최근에 쓰고 ,자주 쓸거 같은 일부 데이터’에 접근하는 시간을 줄여주었습니다.
캐시에 저장되는 ‘최근에 쓰고 ,자주 쓸거 같은 일부 데이터’는 다음과 같은 것들입니다. -CPU에서 사용할 데이터들을 메모리에서 가져와 저장합니다. -CPU에서 연산 후 나온 결과물을 저장하는데도 사용합니다.
이런 캐시를 엄청 크게 사용하면, 메모리에 여러번 접근하지 않아도 되기 때문에 좋지 않나요?? 라는 의문이 들 수도 있습니다. -결론부터 말하자면, 적당한 용량이 좋습니다.
1) pc를 예로 들면, 8gb 메모리로 무거운 프로그램들을 동시에 사용하는 유저라면, 메모리만 16GB로 개선해도 성능이 눈에 띄게 개선되지만, 인터넷만 사용하는 유저라면 향상된 성능은 느끼기 힘들것입니다.
즉, 캐시도 일종의 메모리 이기 때문에, 캐시메모리가 부족한 경우 추가시 성능이 개선(*캐시 히트율이 증가)되나, 캐시 히트율이 적정량 이상일 때는 성능 변화가 없습니다. 여기서 알 수 있는 본질은 메모리 사이즈와 성능의 관계는 이러한 것(=적당한게 좋다)입니다.
2)메모리에 비해서 캐시메모리의 용량 당 비용이 비쌈,
3)캐시 크기가 너무 크면 주소를 해독 및 정보 인출을 위한 주변 회로가 복잡해져서 접근 시간이 길어질 겁니다. 그래서 용량의 증가만큼 속도 향상을 가져오지 못 할 수도 있습니다.
4) 보드의 공간에 의해서 제약받고 있습니다. 연구 결과에 의하면 캐시 메모리의 크기는 수백K~수M워드가 최적이라 합니다.
*캐시 히트 예시 -캐시가 모든 문서의 사본을 저장하지는 않는다. 캐시 요청이 도착했을때, 사본이 있다면: 요청이 처리될 수 있다. 캐시 적중(cache hit) -기존에 있는 데이터들을 토대로 더 빠른 처리를 할 수 있다. 사본이 없다면: 캐시 부적중. cache miss
*L1, L2, L3는 뭔가요?
CPU에는 캐시 메모리가 2~3개 정도 사용됩니다. 이를 각각 L1, L2, L3 캐시 메모리라 합니다. 여기서 L은 'Level'을 의미하며, 이는 속도와 크기에 따라 분류한 것으로, L1 캐시는 일반적으로 CPU 칩안에 내장되어 데이터 사용/참조에 가장 먼저 사용됩니다.
L1 캐시는 보통 8~64KB 정도의 작은 용량으로 CPU가 가장 빠르게 접근하게 되며, 여기서 데이터를 찾지 못하면, 이제 L2 캐시 메모리로 넘어갑니다. L2 캐시는 L1 캐시보다 느립니다. (그렇다 한들 캐시는 일반 메모리(RAM)보다는 빠릅니다.) L3,L2캐시 간의 관계또한 위와 같은 관계를 유지합니다.
'프로그래밍 > CS 지식' 카테고리의 다른 글
[Software] #1 소프트웨어와 선형 알고리즘 (0) | 2022.06.05 |
---|---|
[Hardware] #10 슈퍼 컴퓨터부터 사물 인터넷까지 (0) | 2022.06.05 |
[Hardware] #8 프로세서 속도에 대해서 (0) | 2022.05.29 |
[Hardware] #7 프로세서와 계산기의 다른점, 모형 컴퓨터로 더하기 프로그램 만들기 (0) | 2022.05.29 |
[Hardware] #6 비트모아 데이터 (0) | 2022.05.29 |
- Total
- Today
- Yesterday
- 타입스크립트 DT
- 형제 요소 선택자
- fs모듈 넥스트
- getServerSideProps
- 프리온보딩 프론트엔드 챌린지 3월
- 틸드와 캐럿
- 항해99프론트
- aspect-ratio
- reactAPI
- float 레이아웃
- getStaticPaths
- 원티드 FE 프리온보딩 챌린지
- 원티드 프리온보딩 FE 챌린지
- Prittier
- text input pattern
- nvm 설치순서
- D 플래그
- 원티드 3월 프론트엔드 챌린지
- 부트캠프항해
- tilde caret
- && 셸 명령어
- 프리렌더링확인법
- 항해99추천비추천
- 원티드 프리온보딩 프론트엔드 챌린지 3일차
- 항해99프론트후기
- 타입스크립트 장점
- is()
- nvm경로 오류
- ~ ^
- grid flex
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |