반응형
"혼자 공부하는 컴퓨터구조와 운영체제" 책을 정독 후 정리한 지식들을 남겨놓고자 글을 쓴다.
아래는 북링크이다.
[한빛미디어] 혼자 공부하는 컴퓨터 구조+운영체제 (hanbit.co.kr)
[한빛미디어] 혼자 공부하는 컴퓨터 구조+운영체제
좋은 개발자는 컴퓨터를 분석의 대상으로 바라볼 뿐, 두려워하지 않는다!‘전공서가 너무 어려워서 쉽게 배우고 싶을 때’, ‘개발자가 되고 싶은데 뭐부터 봐야 하는지 모를 때’ ‘기술 면접
hongong.hanbit.co.kr
RAM의 특징
- RAM : 실행할 프로그램의 명령어와 데이터가 저장된다.
- 전원이 꺼지면 내용들이 날아가는 휘발성 저장 장치이다.
- HDD / SDD / CD-ROM / USB 메모리와 같은 보조기억장치들은 비휘발성 저장 장치이다.
- 전원이 꺼져도, 그 안에 저장된 내용들이 날아가지 않는다는 뜻이다.
- CPU는 보조기억장치에 직접 접근하지 못한다.
- 비휘발성 저장 장치에는 '보관할 대상'을 저장하고,
- 휘발성 저장 장치인 RAM에는 '실행할 대상'을 저장한다.
- ==> CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 복사하여 저장한 뒤 실행한다.
- RAM 용량이 적다면 보조기억장치에서 실행할 프로그램은 보조기억장치에서 프로그램을 가져오는 일이 잦아져 실행 시간이 길어진다.
DRAM (Dynamic RAM)
- 저장된 데이터가 동적으로 변하는 (사라지는) RAM
- 데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화 해야 한다.
- 소비 전력이 적고, 저렴하며 집적도가 높아 대용량으로 설계하기 용이하다.
- 우리가 일반적인 메모리로써 사용한다.
SRAM (Static RAM)
- 데이터가 날아가지 않는다. DRAM보다 빠르다.
- 하지만 집적도가 낮고, 소비 전력도 크고 가격도 비싸서 속도가 빠르고 용량은 크게 필요없는 부분에 사용된다.
- 캐시 메모리에서 주로 사용된다.
SDRAM (Synchronous Dynamic RAM)
- CPU와 클럭 신호와 동기화된 발전된 형태의 DRAM이다.
- 클럭 신호에 맞추어 동작하며 CPU와 정보를 주고받을 수 있는 DRAM이다.
DDR SDRAM (Double Data Rate SDRAM)
- 최근 가장 흔히 사용하는 RAM이다.
- 대역폭을 넓혀 속도를 빠르게 만든 SDRAM이다.
- 대역폭은 여기서 데이터를 주고받는 길의 너비를 의미한다고 생각하면 된다.
- 1클럭에 CPU와 주고 받을 수 있는 데이터의 양이 SDRAM의 2배이다.
- DDR2 : 4배
- DDR3 : 8배
- DDR4 : 16배
메모리의 주소 공간
- 주소는 물리 주소와 논리 주소로 나뉜다.
- 물리 주소 : 메모리 하드웨어가 사용하는 주소
- 논리 주소 : CPU와 실행 중인 프로그램이 사용하는 주소
- CPU와 실행 중인 프로글매은 현재 메모리 몇 번지에 무엇이 저장되어 있는지 다 아는 것이 아니다.
- 메모리에 저장된 정보는 시시각각 변하기 때문이다.
- 실행이 끝난 프로그램은 메모리에서 삭제되거나, 새로 프로그램이 적재될 수 있기 때문이다.
- 메모리에 저장된 정보는 시시각각 변하기 때문이다.
- 각 프로그램들은 현재 다른 프로그램들의 물리 주소가 무엇인지 굳이 알 필요가 없다.
- -> 그래서 물리 주소가 아닌 0번지부터 시작하는 자신만을 위한 주소인 논리 주소를 가지고 있다.
- CPU는 이 논리 주소를 받아들이고, 해석하고, 연산한다.
그러면 논리 주소는 어떻게 물리 주소로 변환될까?
- CPU와 주소 버스 사이에 위치한 메모리 관리 장치 (MMU)라는 하드웨어에 의해 수행된다.
- MMU는 CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 변환한다.
- 베이스 레지스터 값 : 각 프로그램의 첫 물리 주소
메모리 보호 기법
- 프로그램의 논리 주소 영역을 벗어난 곳에 프로그램이 접근하게 되면 막는다.
- 다른 프로그램의 영역에 접근하는 꼴이기 때문이다.
- 한계 레지스터가 담당한다.
- 한계 레지스터 : 논리 주소의 최대 크기를 저장한다.
- 즉, 프로그램의 물리 주소 X의 범위는
- <베이스 레지스터 값 <= X <= 베이스 레지스터 값 + 한계 레지스터 값> 이다.
- CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사한다.
- 만약 여기에 걸리면, 인터랩트 (트랩)을 발생, 프로그램 실행을 중단한다.
반응형
'Computer Science > CS 컴퓨터구조' 카테고리의 다른 글
RAID의 정의와 종류 (1) | 2023.11.13 |
---|---|
하드디스크와 플래시 메모리에 대하여 (0) | 2023.11.10 |
폰 노이만 구조와 하버드 구조 (0) | 2023.11.08 |
캐시 메모리 간단요약 (1) | 2023.11.08 |
고정 소수점과 부동 소수점, 해밍 코드 (1) | 2023.11.08 |