마이크로프로세서 설계 무작정 따라하기 – 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

일주일안에 죽이게 피아노치는 방법

싱어송라이터 전지한

싱어송라이터 전지한을 아시나요?
전 피터팬컴플렉스라는 밴드는 들어본 것 같긴해도 리더인 전지한씨나 그들의 노래는 알지 못했었습니다. 하지만, 오늘 부로 전지한씨를 존경하기로 했습니다.

일요일이지만 DB out을 앞두고 확인할 것들이 있어 출근했다가 습관처럼 접속한 올블로그 첫페이지에서 누구나 일주일안에 죽이게 피아노치는 방법 이란 제목을 발견하고 “세상에 그런게 어딨어?”라는 생각으로 클릭했습니다. 친절하게 동영상 강의까지 있어서 보다보니 끝까지 다 보았습니다.(시간상 좀 넘기긴 했습니다만…)

여섯살때부터 7년간 피아노를 배우고 또 그 이후로도 즐겨치면서 사실 단한번도 코드에 대해서 누군가에게 배워본 적이 없었습니다. 기타는 오랜 숙련자가 아니더라도 코드만 보고 금방 치는 것을 보고 피아노 코드북을 구입하고 코드가 나온 가요책을 보고 치곤 했지만 복잡한 코드들에서 막힌 적이 많이 있었습니다. 참 답답하지만 딱히 어디서 배우기도 마땅치않았지요. 화성학에 대해서 공부를 해야 피아노를 제대로 치겠구나하고 책을 샀지만 또 공부가 쉽진 않았구요.

그렇게 오래된 고민거리를 전지한씨가 한방에 날려주시는군요.
Edim7, C#mM7, Dsus4, B7(b6) 이런 복잡한 코드를 너무나 쉽게 알려주는 것을 보고나니 머리에 한방 제대로 맞은 기분입니다.

늘상 회로설계에 있어서도 기본이 제대로 되어있어야 응용이 가능하다고 강조하곤 하는데 음악에 대한 이론도 기본이 정말 중요하다는 것을 느낍니다. 기본이 갖춰져있으면 너무도 쉬울 수 있는 내용이 정말 어렵게만 느껴질 수 있음을 새삼 깨닫습니다.

핵심을 간파하는 능력도 대단하지만, 가장 뼈대가 되는 내용을 최대한 쉽게 표현하고 전달하는 것은 정말 존경스럽습니다. 예전에 ‘마이크로프로세서 설계 무작정 따라하기’라는 칼럼을 1년간 연재한 것이 생각납니다. 최대한 단순하고 쉽게 전달하고자 simplecore라는 프로세서를 만들었었지요. 경종민교수님의 권유로 책으로 쓰고 싶었는데 어떤 분의 반대로 쓰지못한게 여전히 아쉽습니다.

이 블로그를 통해 제가 혼자 끙끙대며 익혔던 내용들을 최대한 쉽게 풀어봐야겠습니다.

그나저나 아이키우느라 집에 피아노도 치워버렸는데… ㅋ