마이크로프로세서 설계 무작정 따라하기 – Part 1

IDEC Newsletter에 2001년 6월부터 2001년 9월까지 연재한 내용입니다.

마이크로프로세서 설계 강좌를 연재하게 된 계기는 명확히 기억나지 않습니다만, 경종민교수님의 추천으로 시작한 것 같습니다. 경교수님께서 시스템칩 설계에 초심자들이 쉽게 접근할 수 있는 자료를 원하셨고, 당시 내장형 프로세서를 개발했던 제가 적임자로 지목되었던 것 같습니다.

3부작 정도로 계획했지만 결과적으로 2년간 총 14부의 장기 연재를 했습니다.
적지않은 시간을 투자했던 만큼 애착이 크도 또 아쉬움도 남습니다.

기본적이고 핵심적인 내용을 중심으로 했기 때문에 지금 반도체설계를 공부하시는 분들께도 도움이 될 것이라 믿지만, 이미 7년이란 시간이 흘러 개정판을 써보고 싶은 생각도 있지만 쉽지는 않을 듯 합니다.

1부 1편: 서론, 마이크로프로세서 개요, 명령어 구조, SimpleCore의 구조, Datapath RTL 설계

1부 2편: Datapath RTL 설계

1부 3편: Control 설계 (Fetch Unit, Decode Unit, Execute Unit, Pipeline)

1부 4편: 시뮬레이션 (Test Module, Verilog-XL), 맺음말

마이크로프로세서 설계 무작정 따라하기 – Part 2

1부의 반응이 좋아 추가 연재를 의뢰 받아서 IDEC Newsletter에 2001년 10월부터 2002년 2월까지 연재한 내용입니다.
2부는 개발환경 (명령어시뮬레이터, 컴파일러, 어셈블러) 개발에 대한 내용입니다.

2부-1편: 마이크로프로세서 개발 환경, 명령어 시뮬레이터

2부-2편: GNU C컴파일러(GAS), GCC 포팅과정 (컴파일러 Backend, 컴파일러 환경 설정)

2부-3편: GCC 포팅과정 (저장 영역의 레이아웃, 자료형, 레지스터, 스택구성, 주소지정)

2부-4편: GCC 포팅과정 (데이터전송, 산술연산, 비교/분기, 함수호출)

2부-5편: GNU Assembler(GAS) 포팅

마이크로프로세서 설계 무작정 따라하기 – Part 3

IDEC Newsletter에 2002년 4월부터 2002년 12월까지 연재한 내용입니다.

6년이 흘렀지만 개발환경에는 큰 변화는 없습니다. 여전히 합성을 위해 Synopsys Design Compiler를 사용하고 있고, P&R을 위해선 Apollo의 후속 버젼인 Astro를, 시뮬레이션은 Verilog-XL과 기능자체는 큰 차이없는 NC-Verilog를  사용하고 있습니다. 큰 차이는 없다고는 해도 그대로 따라할 수는 없기때문에 아쉬움도 있고 또 일부 내용은 개선하고 싶은 부분도 있네요.

3부-1편: 합성 가능한 설계 (Synthesiable Design)

3부-2편: 합성 (Synthesis), Synopsys DesignCompiler, 최적화

3부-3편: 순차회로의 최적화 (입/출력 지연시간, 홀드 타임, 클럭 버퍼링)

3부-4편: SimpleCore의 합성

3부-1편: 후단계 설계, Appllo를 이용한 SimpleCore의 P&R