C-log

💻그래서 컴퓨터는 무엇? : RAM 본문

CS/그래서 컴퓨터는 무엇?💻

💻그래서 컴퓨터는 무엇? : RAM

4:Bee 2023. 8. 16. 16:49
728x90
 YouTube Link  
쓸모없는 CPU 만들기 6강 - 바이트 덧셈장치 구현해봐야 역시 무쓸모
https://youtu.be/n_KLOaw_Jzc

램(RAM)

램은 주기억장치 중 하나로 데이터를 일시적으로 저장하고 빠르게 접근할 수 있는 공간이다. 램도 레지스터를 기반으로 제작되었기 때문에 휘발성 데이터 저장 공간이다. 즉, 컴퓨터가 꺼지면 데이터가 사라진다. 따라서 램이 많을 수록 컴퓨터의 데이터 처리 속도가 빨라진다. 우선 1RAM의 형태는 아래와 같다. 

여기서 b는 bus를 의미한다.

y와 x로 address를 받고 set을 통해서 레지스터의 set을 활성화 해준다. 이로써 b의 input은 입력된 값을 전달하고 b의 Enabler를 통해서 output의 결과가 전달된다. 이의 구조를 통해서 우리가 배운 Decoder와 Register,RAM으로 256개의 1RAM을 구성하고 있는 256RAM을 구성할 수 있다. 크기가 큰 만큼 제작하는데 시간이 많이 소요되어서 해당 강의 미리 준비된 학습자료를 통해 256RAM을 활용하였다.

왼쪽은 256RAM의 구성된 형태의 일부 이미지며 오른쪽은 완성된 256RAM의 형태이다.

여기서 완성된 256RAM을 보면 MAR이란 Memory Address Register로 데이터를 읽거나 쓰기 위한 레지스터이다. 따라서 MAR에서 해당 address(a)의 주소 값을 지정한다. 이는 해당 위치의 RAM1의 위치를 지정하고 이에 set address로 값을 전달하면 해당 RAM 위치에 값을 저장할 수 있는 상태(해당 위치를 가리키는 것.)가 되고  이후 필요한 값을 b의 input으로 저장할 데이터 값을 지정하고 b의 set을 완료하면 값이 해당 address로 저장이 된다. 이후 Enabler를 활성화 하면 해당 address 위치의 값이 b의 output으로 전달된다. 이 모습은 C언어의 포인터의 구성과도 같다. 저급언어로 내려 갈 수록 컴퓨터 시스템의 구조와 가까워진다. 아래는 값이 저장되고 해당 값을 불러오는 모습이다.

왼쪽 이미지는 01번지 RAM1에 값을 저장할 수 있는 상태를 만들고 b의 set으로 b의 input 값을 저장한 것이다. 오른쪽 이미지는 해당 01번지의 RAM1의 값을 b의 Enabler로 활성화 해서 b의 output으로 값을 전달한 것이다. (b의 input은 output과 헷갈릴 수 있기 때문에 임의로 값을 변경하였다.)
왼쪽 이미지는 해당 02번지 위치를 가리키게만 하고 오른쪽은 해당 02번지의 값을 가져오게 b의 Eabler를 활성화 했을 때 b의 output결과 값이 Error인 것을 알 수 있다. 즉, 해당 위치에 값이 아무 것도 없기 때무에 Error가 발생하는 것이다.

728x90
Comments