cyphen156

3장 메모리 : 모든것은 결국 기억장치 관리다 본문

프로젝트/Nand2Tetris

3장 메모리 : 모든것은 결국 기억장치 관리다

cyphen156 2023. 7. 10. 14:32

앞서 장에서 가산기라는 논리 연산 장치를 만들었다. 

이제 필요한것은 계산한 결과를 저장해 놓을 기억장치다. 

"임시로 저장하던, 반영구적으로 저장하던 모든것은 결국 Memory라는 기억장치로 귀결된다. 연산하는 방법 조차도 어딘가에 기록해놓아야 나중에 가져다 쓸것 아닌가?"

"사람도 뇌속 어딘가에 저장해 놓았다가 기억을 되새기면서 회상하지 않는가?"

다만 여기서 만들 메모리 칩은 앞서 만든 연산기와는 다르게 시간(Timeline)에 영향을 받는다. 과거의 기록이 현재의 기록에 영향을 미친다는 것이다. 이것을 조합(Combination)순차(Sequential)이라고 한다.

그럼 시간의 흐름을 어떻게 알까?

Tick-Tock이라는 이진 신호 주기(Clock)을 사용해 판단한다.

Tick(입력)의 시작과 다음 Tock(출력)의 끝까지를 Cycle이라 하는데 이것을 이용하여 얼만큼의 시간이 흘럿는지를 판단한다.

메모리 장치(Memory - DataFlip & Flop)

하드웨어는 데이터의 저장을 클록과 함께 0과 1이라는 두 안정적인 상태(연속적이지 않음)를 왔다 - 갔다(상태의 변화) 할 수 있는 시간의존적 논리 게이트를 이용해 기억장치를 만든다.

이것을 DFF라 하는데 이 DFF를 사용해 레지스터, RAM, 카운터와 같은 고수준(상대적으로)의 메모리를 만든다.

시간을 이진 논리를 통해 설계하면 어떤 장점이 있을까?

  • 통신이나 계산 중에 발생하는 시간 지연과 관련된 무작위성을 줄일 수 있다.
  • 여러 연산 결과들을 동기화 하는데 활용할 수 있다.

이하는 실제 16비트 레지스터까지 만드는 과정에 대한 소개로 프로젝트에서 설명하겠습니다.

 

메모리에 대한 자세한 내용은 컴퓨터구조에서 다루겠습니다.

'컴퓨터공학/컴퓨터구조' 카테고리의 글 목록 (tistory.com)

 

'컴퓨터공학/컴퓨터구조' 카테고리의 글 목록

Cyphen의 개인 공부 블로그입니다. 프사는 아는 동생이 그려준 그림 주인장과 싱크로율 0%

cyphen156.tistory.com

 

//모든 자료들은 Nand2Tetris홈페이지에서 찾을 수 있습니다.

또는 cyphen156/Work-space: Studying (github.com)에서 찾으실 수 있습니다.

 

 

 

 

 

'프로젝트 > Nand2Tetris' 카테고리의 다른 글

4장 : 기계어  (0) 2023.07.17
3장 프로젝트 : 16비트 레지스터  (0) 2023.07.10
2장 프로젝트 : 가산기  (0) 2023.07.07
2장 논리 연산  (0) 2023.07.07
1장 프로젝트  (0) 2023.07.07