Memory hierarchy
CPU 단에서는 Registers와 L1, L2, L3가 존재하며
주 기억장치 RAM 이 존재하고
보조 기억 장치인 SSD, HDD, USB Disk 가 있는 계층 양상을 보인다.
이 기억 장치가 상호 작용하며 데이터를 읽고, 저장하는 등의 작업이 이루어진다.
- CPU를 위해 RAM에서 정보를 가져올 때는 CPU의 L1~L3의 캐시 메모리에 일시 저장하여 빠르게 계산할 수 있게 합니다.
- 실행하려면 CPU까지 정보를 가져와야 합니다.
위 작업에서 이 정보를 저장하기 위해서 기억 공간을 관리하는 방식은 다음과 같다.
레지스터 => 개별 기억공간마다 고유 이름을 붙여 관리
RAM => 일련번호
보조 기억 장치 => 트랙 번호, 섹터 번호 (File의 등장)
CPU
RAM에서 정보를 가져옴
Cache에 저장함
레지스터로 복사
ALU 프로세서가 연산
연산 결과를 레지스터에 저장후 RAM으로 발송
CPU의 구조는 다음을 참고하자.
RAM
RAM은 메모리 관리를 신경쓰며 코드를 작성할 때 경험해보았을 것이다. 흔히 unmanaged language라 부르는 C 등을 사용할 때 그렇다.
주소의 기본 단위는 1 byte입니다. RAM 주소는 1씩 증가할 때 마다 1 byte(8bit) 씩 증가하게 됩니다.
여기서 우리는 컴퓨터의 32bit, 64bit와 RAM과의 상관 관계를 추측해볼 수 있습니다.
32bit 컴퓨터는 레지스터의 크기가 32bit(4Byte)라는 말입니다. 당연히 64bit는 레지스터 크기가 64Bit겠죠.
레지스터의 크기가 32bit라면 한 번에 표현할 수 있는 데이터의 숫자는 2^32입니다.
RAM 주소의 기본 단위가 1Byte이므로 1Byte* 2^32을 계산해보면 4,294,967,296 Byte이므로 한 번에 4,294,967,296개의 주소를 사용할 수 있다는 말입니다. 따라서 32bit 컴퓨터는 4GB 크기 까지의 램만 인식할 수 있습니다. 돈을 더 들여서 더 높은 용량의 RAM을 사봐야 의미가 없다는 거죠. 요새 16GB RAM으로도 부족한데... 32bit 컴퓨터는 어떤 작업을 하기에는 무리가 있습니다.
반면 64bit는 16EB까지의 RAM을 인식할 수 있습니다. 그러니 64bit를 사용합시다!
(thrillfighter.tistory.com/116)
(melonicedlatte.com/computerarchitecture/2019/03/07/151740.html)
보조 기억 장치의 트랙/섹터
트랙/섹터 번호는 다음과 같은 구조로 되어 있다.
보조저장장치에 트랙/섹터를 부여하는 작업을 '포맷'이라고 한다. 현재 사용하는 파일 시스템에 맞도록 디스크의 저장 공간을 재구성하는 거라 이해하자.
포맷을 통해 파일 시스템을 설치했다고 가정하자.
그렇다면 특정 정보를 찾기 위해서는 트랙/섹터 번호를 조합하여 해당 정보가 든 위치를 찾아내야 한다.
에를 들면 a.mp3라는 파일을 찾고자 한다 => 3번 Track 2번 Sector에 존재한다. => 찾는다의 흐름으로 정보를 찾게 된다.
그렇다면 파일이 존재하는 Track, Sector 위치를 테이블로 만들 수 있을 터이다.
이것을 File Allocation Table, 줄여서 FAT이라 부른다. (많이 익숙한 이름이다!)
여기서 Track을 몇 까지만 허용하는 등 제약 사항이나 특징에 따라 파일 시스템의 이름을 다르게 부른다. 파일 시스템은 사용하는 OS(운영체제)에 따라 호환 여부가 결정된다.
FAT32가 가장 보편적이고 윈도우에서는 MTFS를 사용하는 등 여러 종류가 존재한다.
한편, 파일의 정보들이 한 Track에 모여 있지 않고 다른 Track에 분할되어 있다면(이를 '파편화'라 한다) 해당 파일을 정보를 읽는데 시간이 오래 걸릴 것이다. (당연히 암이 track의 여기저기를 왔다갔다 해야 할 것이므로)
한 파일을 한 Track에 모아서 입출력 속도(I/O)를 빠르게 해주는 것을 '디스크 조각 모음'이라고 한다. (친숙하다!)
참고하면 좋은 글)
'💻 CS 일반 > 🔌 하드웨어' 카테고리의 다른 글
컴퓨터의 작동원리 기초 : A to Z (0) | 2021.01.02 |
---|---|
메모리 사용량 체크 및 증설 여부 판단 (3) | 2020.09.22 |
컴퓨터 하드웨어 : 트랜지스터 (0) | 2020.06.26 |