컴퓨터는 어떻게 기억할까요?
지금까지 게이트로 계산을 했다. 그런데 게이트는 입력이 사라지면 출력도 곧바로 사라진다. 그렇다면 값은 어떻게 기억할까? 여기에 아주 영리한 한 수가 숨어 있어요.
손을 떼면 바로 사라진다
게이트에는 약점이 하나 있다.
입력이 들어오는 동안에만 출력이 나온다는 것이다.
버튼을 누르면 불이 켜지지만 손을 떼는 순간 바로 꺼져요.
아래 버튼을 눌렀다가 떼면 그 차이가 바로 드러난다.
버튼을 누르고 있는 동안만 불이 켜진다.
이래서는 계산은 해도 기억은 못 한다.
숫자를 잠깐 만들 수는 있어도 손을 떼는 순간 날아가 버리니까요.
값을 붙잡아 둘 다른 방법이 필요하다.
자기 출력을 자기 입력으로
영리한 한 수는 게이트의 출력을 다시 자기 입력으로 되돌려 넣는 것이다.
그러면 신기한 일이 벌어진다.
한번 켜지면 그 켜진 신호가 자기 자신을 계속 켜 두고, 입력이 사라져도 상태가 스스로 유지돼요.
출력이 다시 입력으로 돌아간다.
이 되먹임 고리가 기억의 핵심이다.
두 사람이 서로 등을 기대고 서 있듯이, 회로가 자기 상태를 스스로 떠받치는 셈이에요.
넣어 두면 그대로 남는다
이 되먹임 회로로 값 하나를 기억하는 칸을 만든다.
'기억해' 버튼을 누르면 1이 되고, '지워' 버튼을 누르면 0이 된다.
중요한 것은 버튼에서 손을 떼도 그 값이 그대로 남는다는 점이에요.
값을 넣은 뒤 손을 떼도 값이 남는다.
손을 떼도 값이 남는다. 이것이 바로 기억이다.
이 작은 칸 하나를 플립플롭이라고 부른다.
톡 건드리면 한쪽으로 넘어가 그대로 머문다는 데서 붙은 이름이에요.
적어 두고 나중에 꺼내기
기억의 쓸모는 시간이 지난 뒤에 드러난다.
지금 값을 적어 두고(쓰기) 한참 뒤에 다시 확인하면(읽기) 그대로 남아 있다.
이 '쓰고 읽기'가 모든 저장의 기본 동작이에요.
재생 버튼을 누르면 쓰기, 기다리기, 읽기가 차례로 이어진다.
쓰고, 기다리고, 읽기.
쓴 값은 시간이 지나도 그대로 읽힌다.
이 단순한 약속 덕분에 컴퓨터는 방금 한 계산도, 내가 입력한 글자도 잠시 붙들어 둘 수 있어요.
이 칸을 잔뜩 모으면 메모리
플립플롭 하나는 1비트, 곧 0이나 1 하나만 기억한다.
여덟 개를 모으면 한 글자(1바이트)가 되고, 수천만 개를 모으면 사진 한 장이나 노래 한 곡을 담을 수 있다.
실제 컴퓨터의 주 메모리는 이보다 작은 축전기 칸을 쓰지만, 0과 1을 한 칸씩 붙잡아 둔다는 원리는 같아요.
아래 칸들을 하나씩 켤 수 있다.
칸 하나가 1비트.
계산하는 회로(가산기)와 기억하는 회로(플립플롭), 이 둘이 컴퓨터의 두 기둥이다.
뒤에 이어지는 레슨에서는 이렇게 모은 기억 칸마다 이름표(주소)를 붙여 원하는 칸을 정확히 찾아가는 법을 다룬다.