🪢 메모리 동작원리
메모리는 0,1로 저장이 되고 휘발적이라는 특징이 있다. 시스템이 활성화 되있을땐 기억하다가 셧다운이 되면 지워진다.
이 정보를 유지하려면 연속적으로 재충전이 되어야 하는데 이를 메모리 리프레쉬 , 메모리 타이밍이라고 한다.
메모리는 행과 열로 이루어진 매트릭스 구조의 주소를 가지고 있다.
이를 CAS , RAS 라고 하는데 메모리의 정보를 읽거나 기록할땐 먼저 가로줄인 RAS에 신호를 보낸 후 세로줄 CAS에 신호를 보내 주소를 확인한다.
1) CPU 가 메인보드 칩셋에 데이터 요청 → 칩셋은 해당 데이터가 있는 행(row) 주소를 메모리로 보낸다. ( 이 행동은 각 1 사이클이 걸린다고 한다. )
2) 위에서 말했듯이 행부터 열 순으로 주소를 파악하고 라고 한다. 행 주소가 메모리의 행 주소 버퍼로 들어온다. “센스앰프”가 그 행에 들어있는 모든 셀을 읽고 행까지 걸리는 시간을 RAS-to-CAS delay, CAS까지 가는데 걸리는 지연시간이라고 하며 보통 2-3 사이클이 걸린다고 한다. 행을 살펴봤으니 이제 열 주소를 살펴봐야한다. 정확한 열 주소를 찾을때까지 걸리는 시간을 CAS latency 라고 하고 이 또한 2~3 사잉클이 걸린다고 한다.
3) 정확한 행/열을 찾았다는 뜻은 정확한 데이터를 찾았다는 뜻이다. 메모리 셀에 있는 내용이 출력 버퍼로 옮겨진다. 1사이클 소요
4) 마지막 메인보드 칩셋이 출력버퍼의 내용을 읽고 CPU 로 전달하며 각각 1사이클씩, 총 2사이클이 걸린다.
메모리의 속도는 메모리가 CPU 와 데이터를 주고받는 시간을 기준으로 성능을 나눌 수 있다. 이를 엑세스라고 부른다.
즉, CPU에서 데이터를 요청할때 데이터의 주소가 있는 RAS,CAS 데이터를 보내 버퍼에 옮기고 CPU까지 가져오는 시간을 액세스시간이라고 한다.
🪢 Cache
캐시의 원리
캐시는 메인 메모리와 CPU 간의 데이터 속도 향상을 위한 중간 버퍼역할을 하는 메모리이다. (임시 저장소의 역할로서, 전체 시스템의 성능을 개선시킬 수 있음.)
빠른 전달을 위해 미리 데이터들을 저장해두는, 적은 양의 메모리 공간이다. 자주쓰는 명령이나 자주쓰는 데이터를 빠르게 가져다 쓸 수 있도록 임시저장 가능하다.
네트워크의 캐시는 로컬에 파일을 미리 받아놓기 때문에 웹 서버에서 매번 로딩해야 할 파일들을 미리 로딩해두어 DB를 매번 확인하는 것보다 빠른 응답을 줄 수 있다.
캐시라는 개념은 동일하지만 컴퓨터 내부에서 쓰느냐, 웹서버와 클라이언트사이에서 쓰느냐, 네트워크에서 파일을 전송할때 쓰이냐 에 따라 다양하게 사용이 가능한 것이다. (역할과 성능에 따라 CPU 외,내부에 존재할 수 있다는 말)
🪢 WEB Cache
🧶 결론
빠른 CPU의 처리속도와 상대적으로 느린 메인 메모리에서의 속도의 차이를 극복하는 중간 버퍼 역할을 하는 캐시