[넓고 얕게 배우는 컴퓨터 구조] 기억장치에 대한 이해
강의 영상📼
정리📝
- 기억장치: 정보, 자료를 담아두는 저장 공간
- 공간마다 특성(속도, 휘발성 등)이 다름
- RAM까지가 주기억장치, 그 아래는 보조기억장치
- 위로 갈수록 용량 크고 비용 비싸며 속도 빠름
- 레지스터는 바이트, 캐시 메모리는 메가바이트, RAM은 기가바이트 단위
- HDD, SSD 등은 TB~ 단위
- CPU에서는 연산이 일어남 -> 연산을 위해 RAM 내 자료, 정보를 CPU에 가져와야 함 -> 연산 뒤 결과를 RAM에 보냄
- RAM은 하드디스크 같은 보조기억장치의 정보를 가져와서 CPU에 가져다 주는 것
- HDD는 영구 기억 -> 전원 꺼도 남아있음
- HDD(도서관)에서 정보(책)을 빌려와서 RAM(책꽂이)에 꽂아 둠 -> 그 정보를 사용하기 위해 캐시(책상)에 가져옴
- 캐시: 책꽂이에서 책을 빨리 가져오기 위해 존재함
- 연산은 레지스터에서 일어남 -> 연산 하기 위해서는 RAM 이하의 정보를 무조건 CPU 쪽으로 가져와야 함
- 10번에 문자 A 정보가 들어있음
- RAM은 CPU가 관리함 -> CPU가 관리하기 위해 RAM에 번호를 붙임 -> CPU는 ‘10번에 저장된 A를 CPU에 가져와라’ 명령 -> CPU에도 A를 담아둘 공간이 필요 = 그 공간이 레지스터 -> 연산 일어남
-
관리 체계
- 레지스터: 이름
- 주기억장치: 일련번호
- 보조기억장치: 트랙 번호, 섹터 번호
- 하드디스크 어딘가에 정보 들어있음 -> 정보 들어가 있는 위치 정보가 있음 -> 트랙 + 섹터(몇 번 트랙, 몇 번 섹터의 A를 가져와라~)
- RAM에는 메모리 공간마다 주소가 달려있으므로 그 주소에 있는 것을 CPU 내의 레지스터로 가져오게 됨
- EAX라는 이름을 가진 레지스터가 있음 -> RAM에서 EAX로 가져오게 됨
- 즉, HDD의 1번 트랙 4번 섹터로 가서 그 안의 정보를 RAM으로 가져옴 -> 그 정보를 RAM 메모리의 15번에 저장해라~ -> 그 정보를 CPU 내의 EAX 레지스터에 가져와서 저장하라~
- Format
- HDD 사용하기 위해서는 포맷을 해야함 -> 아무 것도 없는 곳에 트랙과 섹터를 만들어서 집어 넣는 과정
- 포맷을 하게 되면 트랙과 섹터가 생겨남
- 파일 할당 표(FAT)
- 파일(정보 단위)이 어떤 트랙의 어떤 섹터에 저장되어 있는지 정리된 표
- 디스크 조각 모음
- 정보가 하나는 1번 트랙에, 하나는 2번, 하나는 3번 트랙에 있으면 정보 읽고 쓰는 데 속도 저하됨 -> 1번 트랙 1, 2, 3섹터처럼 연속되어 저장되어 있으면 속도 빨라짐 -> 정보의 조각들을 모아 연속된 공간에 저장하여 IO 속도를 개선하는 작업 = 디스크 조각모음
- 중복이 없는 고유번호가 붙어있는 신발장이라는 공간에 신발을 넣음
- 신발장 = RAM
- 신발장을 이루는 한 칸 = 1바이트
- 신발장의 번호 = 메모리 주소(=위치 정보)
- 신발 = 정보
- 메모리 = RAM을 말하는 것
- 1바이트라는 한 칸마다 일련 번호(주소 = 위치 정보)가 붙어 있음
- 대략 42.9억개 = 2의 32승 = 32비트 = 4기가바이트
- ALU: 컴퓨터의 핵심 연산 장치 (=전가산기)
- 사칙 연산
- 301번의 정보 3을 가져와서 두 번째 레지스터에 옮겨옴 -> 503번지의 4를 세 번째 레지스터에 옮겨옴
- 옮겨오는 과정에서 캐시 메모리를 거치게 됨
- 캐시
- CPU는 초고속, RAM은 그냥 고속
- CPU가 초고속으로 연산함 -> RAM은 상대적으로 느림 -> 캐시는 중간에서 CPU가 하려던 일에 필요한 정보들을 미리 가져옴
- CPU가 연산할 때 필요한 것들을 미리 가져와 둠
- CPU가 빨리 연산할 수 있게 RAM에서 미리 캐시로 정보 갖고 옴
-
64비트 CPU다 = 3, 4, 7이 모두 64비트로 표현됨
-
- RAM에 가서 301번 안에 있는 정보를 가져옴
-
- 캐시에 가져옴
-
- CPU 내의 레지스터 A로 옮김
-
- ALU가 연산
-
- 연산 결과가 레지스터에 들어감
-
- 레지스터에 들어간 정보를 메모리 어딘가로 옮겨감
- 이런 한 줄 한 줄을 수행하는 것을 코드라고 함
- CPU(=머신)가 인식하는 코드 = 머신 코드 = 기계어 코드
- CPU 장치는 기계어 코드를 순차적으로 계속해서 계산하는 일을 함 -> 그 결과를 RAM이든 HDD든 저장
- 레지스터에 들어간 정보를 메모리 어딘가로 옮겨감