이 글은 insight 출판사의 [밑바닥부터 만드는 컴퓨팅 시스템 / The Elements of Computing System]이라는 책에 있는 프로젝트(과제)를 수행하는 글입니다. 해외에서는 nand2tetris라는 이름의 프로젝트로 알려져 있습니다! 동일한 내용으로 구성되어 있으니, nand2tetris를 공부할 때 참고바랍니다 프로젝트 수행을 위한 언어로 C#을 사용하였습니다. Chapter 6의 프로젝트에 대한 글 보러가기 The Elements of Computing System - Ch.6 PJ (1) Ch. 6 Project - 1 이 글은 insight 출판사의 [밑바닥부터 만드는 컴퓨팅 시스템 / The Elements of Computing System]이라는 책에 있는 프로젝트(과제..
이 글은 insight 출판사의 [밑바닥부터 만드는 컴퓨팅 시스템 / The Elements of Computing System]이라는 책에 있는 프로젝트(과제)를 수행하는 글입니다. 해외에서는 nand2tetris라는 이름의 프로젝트로 알려져 있습니다! 동일한 내용으로 구성되어 있으니, nand2tetris를 공부할 때 참고바랍니다. Chapter 5의 Project에 대한 글 보러가기 HW에 대한 내용을 소개한다. 앞서 배운 개념들과 함께 Hack 컴퓨터의 플랫폼을 구현해보자. ( 최적화따위는 개에게 던져주자. 작동방식에 대한 공부니깐 부담없이!) 배경 내장식 프로그램 Stored Program 컴퓨터의 유연성 (다양한 프로그램의 구동)은 내장식 프로그램 덕분에 가능하다. 프로그램은 HW에 내장되지 ..
이 글은 insight 출판사의 [밑바닥부터 만드는 컴퓨팅 시스템 / The Elements of Computing System]이라는 책에 있는 프로젝트(과제) 를 수행하는 글입니다. 해외에서는 Nand2Tetris라는 이름의 프로젝트로 잘 알려져 있습니다. 내용은 동일하니, 공부할 때 참고하세요! Chapter 4 Project에 대한 글 보러가기 기계어 프로그램을 살펴보면 HW가 왜 그렇게 설계되었는지 알 수 있다. 기계어는 프로세서에서 산술/논리 연산을 하고, 메모리에서 값을 Save/Load하고, 레지스터끼리 데이터를 교환하고, 조건 검사를 하는 등의 여러가지 작업을 수행할 수 있다. 이는 HW에게 직접 명령을 내리는 것이므로, 기계어 역시 HW플랫폼의 구성요소라고 볼 수 있다. 배경 기계어 M..
공군 특기학교에서 시간을 보내면서 공부나 하려고 책을 고르려 시내 서점에 갔습니당. 재미있어보이면서 코드를 짜지 않아도 공부할 수 있는 컴퓨터 책을 찾다가 아래 책을 발견할 수 있었습니다. 「The Elements of Computing systems - 밑바닥부터 만드는 컴퓨팅 시스템」 고려대학교에서 컴퓨터 시스템 설계 과목을 들으면서 공부를 해보니 컴퓨터가 어떻게 돌아가는지를 알 수 있어서 되게 재미있고 저랑 잘 맞더라고요. 그래서 한번 더 공부해보려고 이 책을 골랐습니다. 실제로 읽어보니까 되게 프로젝트도 재미있게 구성되어있어요. 불 논리에서 게이트를 배우고, ALU랑 CPU를 디자인해보고, 어셈블리어를 기계어로 바꾸기, VM언어를 어셈블리어로 바꾸기, 객체지향 언어를 VM언어로 바꾸기, 운영체제 ..