✨컴공주✨ [1052682] · MS 2021 (수정됨) · 쪽지

2023-01-11 23:35:53
조회수 2,453

컴공 일기221

게시글 주소: https://orbi.kr/00061262372

CPU를 하드웨어 시뮬레이터를 통해 구현하고, 운영체제 / VM / 응용 프로그램까지 모두 구현할 생각입니다. 


Nand to Tetris.


'Nand'라는 보편적 게이트부터 쌓아 올려, 운영체제를 거쳐 응용 프로그램에 도달해서 결과적으로 나만의 컴퓨터를 구현해보는 것. 이것이 제가 하고 있는 프로젝트의 목적이지요.



컴퓨터 구조, 운영체제, 자료구조... 등등의 컴공 필수 과목들을 학점이라는 기준치로 논의하기 전에,


"야, 다 닥쳐. 운영체제 만들어 봤어?" 


이 얘기 하나로 웬만한 것들이 정리된다고 믿습니다. 


경쟁력을 갖추기 위한 시도와 노력으로서의 프로젝트이지만, 컴퓨터를 만들어 볼 수 있다니.

참 즐거운 프로젝트 같습니다. 


이 프로젝트는 총 12개의 Chapter로 이루어져 있습니다. 그 중에서 Chapter 1을 오늘 마무리했고, 그 결과를 공유합니다. 지금은 CPU를 만들고 있는데요, 아시다시피 얘는 연산 장치죠. 결국, CPU는 그렇기 때문에 수많은 논리 게이트 덩어리라고 보아도 무방할 것이구요. 따라서, CPU를 만들 거라면 가장 근본적인 "논리 게이트"부터 동작 가능하게 해야합니다. 예전에는 빵판에 그것들을 일일이 구현한 것으로 알고 있는데, 요새는 세상이 좋아져서 Hardware Simulator로 굳이 물리적 구현을 하지 않고, 가상적으로 구현해 볼 수 있더군요. 



Chapter1은 논리 게이트의 동작을 오류없이 모두 가능하게 하는 것이 목표입니다. 


and 게이트, or 게이트, Xor 게이트, Not게이트,  4way-16bit Multiplexer, 4Way DeMultiplexer 등 기본이 될 구조들을 모두 가상으로 만들어 보았고, test를 해보니 정상 작동했습니다.  










Project 1. Boolean Logic .. : 네이버블로그 (naver.com) 


0 XDK (+0)

  1. 유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.

  • 주연 · 1141364 · 23/01/11 23:36 · MS 2022

  • ✨컴공주✨ · 1052682 · 23/01/11 23:46 · MS 2021

  • 사과맥주 · 1088100 · 23/01/11 23:39 · MS 2021

    어렸을 때 NAND 게이트만으로 모든 논리 연산을 진행할 수 있다는 게 정말 신기했었는데...
    무식한 질문일 수도 있지만
    그럼 오늘날 사용하고 있는 CPU 하나에는 대략 단위면적당 논리게이트 몇개 정도가 모여 있는걸까요?!

  • ✨컴공주✨ · 1052682 · 23/01/11 23:42 · MS 2021

    헉... 자세한 개수는 저도 잘 모르겠어요... 하지만... 진짜 무수히 모여있지 않을까요? 이참에 저도 조금 더 알아봐야 겠네요.

    헉 저도요! 드 모르간의 법칙을 응용한 것이 참 재미있게 다가왔어요. AB를 막 이상하게 바꾸더니 갑자기 덧셈의 형태를 갖추기 시작하고... 결과론적으로 시험은 잘 못 쳤는데, 시험을 풀 때도, 굉장히 재미있게 풀고 나온 기억이 있어요 :)

  • Miffy · 1192839 · 23/01/11 23:41 · MS 2022

    나만의 컴퓨터를 구현하는 창조주..
  • ✨컴공주✨ · 1052682 · 23/01/11 23:43 · MS 2021

    이미, 저보다 훨~~~씬 유능하고 똑똑하신 분들께서 만들어 놓은 길을, 자세한 설명서와 구글이라는 어마어마한 동료이자 스승과 함께 따라갈 뿐인 Follower지요 ㅎㅎ

    하지만, 정말 재미있는 프로젝트인 것 같아요. 나만의 컴퓨터를 만들 수 있다니!

  • 코딩노비 · 60 · 23/01/11 23:59 · MS 2010

  • ✨컴공주✨ · 1052682 · 23/01/12 00:00 · MS 2021

    많은 것들을 알려주셔서 감사드려요 :) 덕분에, 어.. 제가 알고 있는 것들 / 공부한 것들을 다시 살펴볼 수 있는 기회가 된 것 같아요. 꼬마 개발자로 성장하는 데 힘을 주셔서 감사합니다 :)