6장 메모리와 캐시 메모리

06-1 RAM의 특징과 종류 RAM의 특징 실행할 프로그램의 명령어와 데이터가 저장 휘발성 저장 장치(volatile memory) 전원을 끄면 저장된 명령어와 데이터가 사라짐 CPU가 실행할 대상을 저장 비휘발성 저장 장치(non-volatile memory) 전원을 꺼도 저장된 내용을 유지. 하드 디스크, USB 같은 보조기억장치 CPU는 보조기억장치에 접근하지 못함 RAM의 용량과 성능 RAM 용량이 크면 실행할 프로그램을 많이 저장할 수 있음. 따라서 동시에 여러 프로그램을 빠르게 처리할 수 있음 RAM의 종류 DRAM Dynamic RAM 시간이 지나면 저장된 데이터가 점차 사라짐 따라서 일정 주기로 데이터를 재활성화(다시 저장)해야 함 소비 전력이 낮고, 저렴하고, 집적도가 높아 대용량으로 설계하기 용이함 SRAM Static RAM 시간이 지나도 데이터가 사라지지 않음 소비 전력이 높고, 비싸고, 집적도가 낮음 캐시 메모리등에 사용 정확히는 CPU 내부의 캐시 메모리에서 사용한다. SRAM은 데이터 재활성화가 필요없어 액세스 속도가 매우 빠르다. CPU의 캐시 용량은 메인 메모리(16GB, 32GB, …)에 비해선 여전히 작음(수십 MB) SDRAM Synchronous Dynamic RAM 또는 SDR SDRAM(Single Data Rate SDRAM) 클럭 신호와 동기화된, 발전도니 형태의 DRAM 클럭 타이밍에 맞춰 CPU와 정보를 주고 받을 수 있음 클럭 타이밍을 맞추는게 중요한 이유 정확히는 데이터 전송의 타이밍을 CPU의 동작 속도(시스템 쿨럭)과 맞춘다는 의미임 DRAM등 에서는 데이터를 언제 줄지 몰라 유휴시간이 존재하는 등 비효율성이 발생했음 SDRAM은 클럭에 맞춰 오기떄문에 정확한 타이밍을 위해 준비할 수 있음 클럭속도? 클럭속도는 시스템 전체가 공유하는 기본 타이밍 신호임 여러 종류가 있으나 CPU와 RAM은 주로 시스템 클럭(System Clock) 기반의 신호들을 공유 시스템 클럭은 메인보드에 있는 클럭 제너레이터(Clock Generator)에서 생성됨 이게 CPU, RAM, 칩셋에게 공유 오버클럭등을 이용해 클럭신호는 바뀔수 있음 CPU와 SDRAM은 클럭 제너레이터가 만드는 클럭 신호를 기반으로 같은 타이밍에 통신함 DDR SDRAM Double Date Rate SDRAM **대역폭(data rate)**을 넓혀 속도를 빠르게 만든 SDRAM 대역폭: 데이터를 주고 받는 길의 너비 DDR2(2배), DDR3(4배), … 질문 SDRAM이 클럭 을 따지는게 뭔상관이지 어차피 CPU랑 주고받는데? 정확히는 데이터 전송의 타이밍을 CPU의 동작 속도(시스템 쿨럭)과 맞춘다. 기존에는 데이터를 언제 줄지 몰라 유휴시간이 존재하는 등 비효율성 발생했음 SDRAM은 클럭에 맞춰 오기떄문에 정확한 타이밍을 위해 준비할 수 있음 클럭속도는 시스템전체가 공유하나? SDRAM이 어떻게알지? 이건 안변하나? 클럭속도는 시스템 전체가 공유하는 기본 타이밍 신호 여러 종류가 있으나 CPU와 RAM은 주로 시스템 클럭(System Clock) 기반의 신호들을 공유 시스템 클럭은 메인보드에 있는 클럭 제너레이터(Clock Generator)에서 생성됨. 이게 CPU, RAM, 칩셋에게 공유 오버클럭등을 이용해 클럭신호는 바뀔수 있음 캐시도 이제 용량이 커서 몇기가씩 되는데 그래도 SRAM을 쓰나? 정확히는 CPU 내부의 캐시 메모리에서 사용한다. SRAM은 데이터 재활성화가 필요없어 액세스 속도가 매우 빠르다. CPU의 캐시 용량은 메인 메모리(16GB, 32GB, …)에 비해선 여전히 작음(수십 MB) 06-2 메모리의 주소 공간 물리 주소: 메모리 하드웨어가 사용하는 주소 ...

2025년 11월 25일 · 5 분 · 배준수

4장 CPU의 작동 원리

4장 CPU의 작동 원리 04-1 ALU와 제어장치 CPU의 구성 ALU: 계산을 담당 제어장치: 명령어를 읽어 들이고 해석 레지스터: 작은 임시 저장 장치 ALU Input 피연산자: 레지스터를 통해 받는 연산의 대상 제어 신호: 수행할 연산에 대한 정보 Output 계산 결괏값, 플래그 연산 수행의 결과는 특정 데이터일 수도, 메모리 주소가 될 수 있다. 결괏값은 바로 메모리에 저장되지 않고 일시적으로 레지스터에 저장 CPU가 메모리에 접근하는 속도 < CPU가 레지스터에 접근하는 속도 플래그(flag) 연산 결과에 대한 추가적인 정보 부호 플래그, 제로 플래그, 캐리 플래그 등 플래그 레지스터에 저장 오버플로우(overflow): 연산결과가 연산을 담을 레지스터보다 큰 상황 제어장치 제어 신호를 내보내고, 명령어를 해석하는 부품 제어신호: 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호 Input 클럭 신호 클럭(clock): 컴퓨터의 모든 부품을 움직이는 시간 단위 컴퓨터의 모든 부품은 클럭 신호에 맞춰 작동 하지만 모든 부품이 한 클럭마다 작동하는 것은 아님 해석해야 할 명령어 명령어 레지스터에 저장된 명령어 명령어를 받아 해석한 뒤, 제어 신호를 발생시켜 컴퓨터 부품들에 수행해야할 내용을 전달 플래그 레지스터 속 플래그 값 ALU 연산에 대한 추가적인 상태 정보 제어버스로 전달된 제어 신호 입출력장치를 비롯한 CPU 외부 장치가 발생시킨 제어 신호도 포함 Output CPU 외부에 전달하는 제어 신호 입출력장치: 입출력장치의 값을 읽거나 새로운 값을 쓸 때 메모리: 메모리에 저장된 값을 읽거나 새로운 값을 쓸 때 CPU 내부에 전달하는 제어 신호 ALU: 수행할 연산을 지시하기 위해 레지스터: 레지스터 간에 데이터롤 이동시키거나 저장된 명령어를 해석하기 위해 04-2 레지스터 반드시 알아야 할 레지스터 많은 CPU가 공통으로 포함하는 레지스터들 ...

2025년 10월 17일 · 6 분 · 배준수