2024.03.19 - [CS/Book] - [한 권으로 읽는 컴퓨터 구조와 프로그래밍] 3-1. 컴퓨터의 비트 기억 방법
[한 권으로 읽는 컴퓨터 구조와 프로그래밍] 3-1. 컴퓨터의 비트 기억 방법
시간 표현과 상태 기억 시간 표현 - 발진자와 클럭 사람은 직관적으로 시간이 흐른다는 것을 파악할 수 있다. 하지만 컴퓨터는 스스로 시간의 흐름을 파악할 수 없다. 그렇기 때문에 컴퓨터는 주
kyeong8139.tistory.com
이전 글에서 컴퓨터가 어떻게 1비트를 기억하는지를 살펴보았고, 이를 활용한다면 더 큰 데이터를 저장할 수 있다는 것을 확인했다. 그러면 하나의 레지스터 수준을 넘어 더 큰 데이터를 저장하기 위해서는 어떤 방법을 활용하는지 살펴보자.
RAM과 ROM
여러 개의 데이터를 저장하려면 어떻게 해야할까? 가장 간단하게 생각할 수 있는 방법은 여러 개의 저장 공간에 데이터를 저장하는 것이다. 그런데 단순히 여러 개의 저장 공간을 쌓아놓는 것만으로는 충분하지 않다. 그 중 '어디에' 데이터를 저장할 지가 고려되어야 하기 때문이다. 또한 여러 개의 저장 공간 중 지금 필요한 데이터가 어디에 담겨있는지도 구분해야한다.
이를 위해서는 디코더를 응용해 각 저장 공간에 주소값을 부여할 수 있다. 셀렉터(멀티플렉서)를 이용해 지정한 주소에 해당하는 저장 공간의 출력을 선택할 수 있다. 그리고 입력과 출력이 오가는 버스라는 통로를 통해 데이터를 주고받는다.
이러한 메모리를 원하는 곳 어디든 원하는 순서로 읽거나 접근할 수 있는 RAM(random access memory)라고 한다. 전원이 끊어지면 데이터가 사라지는 휘발성 메모리인 RAM은 크게 SRAM과 DRAM으로 구분할 수 있다.
SRAM(Static RAM)의 경우 아주 빠르고, 시간이 흘러도 데이터가 변화하지 않는다. 하지만 비용이 비싸기때문에 시간이 흐름에 따라 데이터가 변화할 가능성이 있지만 더 저렴한 DRAM(Dynamic RAM)또한 사용되고 있다.
RAM과 항상 함께 이야기가 나오는 것이 바로 ROM이다. ROM (read-only memory)은 한 번만 쓸 수 있지만 여러번 읽을 수 있는 메모리이다. 처음에는 데이터를 쓰고 나면 수정할 수도 없었지만 현재는 기술이 발달함에 따라 전기를 통해 데이터를 지울 수 있는 메모리또한 등장하고 있다.
디스크 드라이브와 플래시 메모리
메모리보다 더 저렴하게 대량의 데이터를 저장하기 위해서 흔히 사용되던 것은 디스크 드라이브다. 디스크는 플래터 (자화된 판)에 데이터를 저장하고, 디스크 헤드가 움직이면서 데이터를 읽는다.

디스크는 섹터 단위로 데이터의 읽고 쓰기가 가능하며, 데이터를 읽고 쓰기 위해서는 헤드가 디스크의 해당 트랙으로 옮길 때 걸리는 시간인 탐색 시간과 트랙 내에서 해당 섹터가 올 때까지 디스크가 회전하는 회전 지연 시간이 소모되므로 상대적으로 느리다.
플래시 메모리는 RAM처럼 원하는 위치를 마음대로 읽을 수 있는 메모리다. 다만 데이터를 쓸 때는 원하는 비트만 변경할 수 없고, 블록 단위로 지우고 값을 쓸 수 있다.
비용은 하드디스크 (디스크 드라이브) 보다 비싸지만, 점차 가격이 저렴해지고 있는 추세다.
오류 감지와 정정
저장된 데이터가 예기치 못한 사유로 오류가 발생할 수 있다. 여러 개의 복사 본을 만들어서 보관하는 방법도 있지만, 비용적인 측면에서 합리적이지 못하다. 그렇기 때문에 일반적으로 사용되는 방법은 아니다.
하지만 패리티를 사용하면 단 1비트로 해당 데이터에 오류가 생겼는지 감지할 수 있다. 패리티 비트는 데이터에서 1로 설정된 비트의 갯수를 세고, 그 갯수가 짝수인지 홀수인지를 1비트를 사용해서 표시하는 것이다. 이외에도 체크섬, 해시 코드 등 데이터의 오류를 감지하는 다양한 방법이 있다.
'CS > BOOK' 카테고리의 다른 글
[한 권으로 읽는 컴퓨터 구조와 프로그래밍] 5. 컴퓨터 아키텍처 (1) | 2024.03.21 |
---|---|
[한 권으로 읽는 컴퓨터 구조와 프로그래밍] 4. 하드웨어의 구조 - CPU (0) | 2024.03.20 |
[한 권으로 읽는 컴퓨터 구조와 프로그래밍] 3-1. 컴퓨터의 비트 기억 방법 (1) | 2024.03.19 |
[한 권으로 읽는 컴퓨터 구조와 프로그래밍] 2. 전자 회로의 조합 논리 (2) | 2024.03.19 |
[한 권으로 읽는 컴퓨터 구조와 프로그래밍] 1. 컴퓨터 내부의 언어체계 (0) | 2024.02.21 |