이 글은 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..
이 글은 insight 출판사의 [밑바닥부터 만드는 컴퓨팅 시스템 / The Elements of Computing System]이라는 책에 있는 프로젝트(과제) 를 수행하는 글입니다. 과제 수행을 위한 언어로 C#을 선택했지만, Java와 거의 유사하여 Java를 알면 쉽게 이해할만한 코드들이예요. 해외에서는 Nand2Tetris라는 이름으로 더 잘 알려져있는 프로젝트입니다. 내용은 동일하니 참고해주세요! Chapter 3 Project에 대한 글 보러가기 그림을 아이패드가 아니라 갤럭시노트로 그려서 넣는게 쉽지가 않네요!! ㅋㅋㅋㅋ 엉성하게 보이는 그림들 ㅠㅠ 얼른 필기노트를 스캔해서 올리고싶슴당! 앞 장에서 공부한 칩들은 입력값의 조합에 의존하는 조합 칩 (Combinational Chip)이다. ..
이 글은 insight 출판사의 [밑바닥부터 만드는 컴퓨팅 시스템 / The Elements of Computing System]이라는 책에 있는 프로젝트(과제) 를 수행하는 글입니다. 해외에서는 Nand2Tetris라는 이름으로 잘 알려져있는 프로젝트입니다. 내용은 동일하니 참고해주세요! Chapter 2의 Project 글 보러가기 목표는 ALU 완성하기 - CPU에 대한 이해 2진코드 불연산으로 더하기 → 가산기 칩에 대한 이해 (Adder) → 구현해보기 배경 2진수 컴퓨터는 수를 2진수로 다룬다. 19라는 수를 나타내고자 하면 10011(2진수) = 2^4×1 + 2^3×0 + 2^2×0 + 2^1×1 + 2^0×1 으로 나타날 것이다. 더 정확히, 64비트 컴퓨터의 레지스터에는 00000000..
이 글은 insight 출판사의 [밑바닥부터 만드는 컴퓨팅 시스템 / The Elements of Computing System]이라는 책에 있는 프로젝트(과제) 를 수행하는 글입니다. 해외에서는 nand2tetris라는 이름의 프로젝트로 알려져 있습니다! 동일한 내용으로 구성되어 있으니, nand2tetris를 공부할 때 참고바랍니다. Chapter 1의 프로젝트 보러가기 현재 군대내에 있어서 촬영이나 스캔이 힘든 관계로 ㅜㅜ 회로설계나 그림은 추후 업로드 하겠씀당. 앞쪽이 유난히 게이트가 많아서 그림이 많이 필요하네용 Boolean Logic 아래의 순서로 공부하면서 불 논리에 대해 알아보자. Bool 대수 → Bool 함수 → Bool 게이트 → 칩과 게이트 → 실제 HW 설계 배경 불 대수 - B..
공군 특기학교에서 시간을 보내면서 공부나 하려고 책을 고르려 시내 서점에 갔습니당. 재미있어보이면서 코드를 짜지 않아도 공부할 수 있는 컴퓨터 책을 찾다가 아래 책을 발견할 수 있었습니다. 「The Elements of Computing systems - 밑바닥부터 만드는 컴퓨팅 시스템」 고려대학교에서 컴퓨터 시스템 설계 과목을 들으면서 공부를 해보니 컴퓨터가 어떻게 돌아가는지를 알 수 있어서 되게 재미있고 저랑 잘 맞더라고요. 그래서 한번 더 공부해보려고 이 책을 골랐습니다. 실제로 읽어보니까 되게 프로젝트도 재미있게 구성되어있어요. 불 논리에서 게이트를 배우고, ALU랑 CPU를 디자인해보고, 어셈블리어를 기계어로 바꾸기, VM언어를 어셈블리어로 바꾸기, 객체지향 언어를 VM언어로 바꾸기, 운영체제 ..