본문으로 바로가기

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의 구조는 다음을 참고하자.

drmola.com/tech/29546

 

 

RAM

 

RAM은 메모리 관리를 신경쓰며 코드를 작성할 때 경험해보았을 것이다. 흔히 unmanaged language라 부르는 C 등을 사용할 때 그렇다.

 

RAM

 

주소의 기본 단위는 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)를 빠르게 해주는 것을 '디스크 조각 모음'이라고 한다. (친숙하다!)

 

한 파일의 정보가 여러 Track에 걸쳐 있으면 HDD의 암이 왔다 갔다 해야 한다.

 

 

 

 

 

 

 

참고하면 좋은 글)

 

 

 

 

현대 CPU의 구조 : 백엔드 편

Author : Daeguen Lee (Any action violating either copyright laws or CCL policy of the original source is strictly prohibited) Tweet 오늘날 컴퓨터는 다양한 형태와 기능을 갖추고 인간의 생활을 도와주고 있...

drmola.com

 

32비트 컴퓨터와 64비트 컴퓨터의 차이점

이번엔 32비트 컴퓨터와 64비트 컴퓨터의 내부동작에 대해서 간략하게 포스팅 하려 합니다. 그리고 왜 32bit와 64bit 컴퓨터에서 메모리 인식범위가 차이가 날까 하는 의문에 대한 해답도 찾을 겁�

thrillfighter.tistory.com

 

FAT 파일 시스템

FAT 파일 시스템(File System) 원문 :  http://kkamagui.springnote.com/pages/345737 들어가기 전에... 이 글은 kkamagui에 의해 작성된 글입니다. 마음껏 인용하시거나 사용하셔도 됩니다. 단 출처(http://kkam..

torystory.tistory.com

 


darren, dev blog
블로그 이미지 DarrenKwonDev 님의 블로그
VISITOR 오늘 / 전체