TAMU 대학교에서 CSCE312 과목에서 조교 할 당시 만들었던, 프로젝트 자료입니다. 나름 공들여서 만든 자료라 애착이 가네요.
Y86는 Computer Systems: A Programmer's Perspective 책의 저자들이 고안한 Instruction Set Architecture(ISA)로, 인텔이나 AMD에서 채택한 X86 Instruction Set Architecture (ISA)를 간략한 버전입니다.
다른 많은 학과나 수업에서는 MIPS, ARM, 또는 RISC-V를 이용하는데, 배우기 쉽다는 장점이 있지만, 인텔 CPU에 익숙한 학생들 또는 인텔 CPU를 사용하는 다른 시스템 쪽 과목 (특히 시스템 보안)과 연결이 안 된다는 아쉬움이 있죠. X86 ISA를 배우고자 하는데 너무 복잡하다면, Y86를 한번 공부해 보는 것도 도움이 될 것 같습니다..
책에서는 Y86를 구현하기 위한 구체적인 설명이 나옵니다. 각 파이프 라인에서 필요한 컨트롤 로직을 자세하게 다루어 구현하는데 큰 문제는 없습니다. 다만, 하드웨어를 구현하기 위한 도구에 독립적으로 기술을 하기 때문, 자체적으로 구현에 필요한 툴을 직접 찾아야 하죠.
CSCE312에서는 랩에서 학생들이 간단한 디지털 로직을 구현할 때, Logisim이라는 툴을 사용하고 있습니다. Logisim은 Logig gates를 구현하는 GUI 툴로 직관적이고 간단한 HW를 설계하고 공부하는데 도움이 됩니다. Computer Science 전공에서 Veilog나 VHDL 같은 HDL을 사용하기에 학생들 멘붕도 올 수 있으니까요 ㅎㅎ.
제가 만든 자료는 책에서 설명한 내용을 어떻게 Logisim으로 구현할지에 대한 가교 역할을 합니다. 학생들이 어려워할 만한 내용을 설명함과 동시에 Logisim으로 구현할 때 생기는 테크니컬 한 난관을 해결하는데 그 초점을 두고 있습니다.
간단한 ISA를 한번 구현해 보고자 하는 사람이라면 한번 도전해 보길 바랍니다.
아래 링크를 따라가면 튜토리얼과 유튜브영상을 찾아볼 수 있습니다. 영어로 작성되어 있는데, 한글 설명이 필요하면 댓글 남겨 주세요. 기쁜 마음으로 설명해드리겠습니다.
https://csce312-termproject-tutorial.readthedocs.io/en/latest/index.html
https://www.youtube.com/playlist?list=PLAN5AcM4p7jcTwCe-q-A6ziFdvkrXmnGe