비전넥스트(주) - 채용 홈페이지 비전넥스트(주) 채용 홈페이지입니다

비전넥스트(주) - 채용 홈페이지

비전넥스트(주) 채용 홈페이지입니다

제목없음

Senior

[System 개발] Platform 파트 양용태 프로님

양용태 프로 qna

01 Platform파트 업무에 대해서 간단히 설명 부탁드립니다.

예전에 비해 반도체 집적도가 높아지고 성능이 높아짐에 따라 기존의 간단한 Micom 수준 레벨 Software 개발 수준에서 Desktop-PC 레벨 Software 개발 수준으로 변화하고 있습니다.

따라서 현재에는 다양한 Application이 동시에 반도체 및 외부 장치를 동시에 안정적으로 접근하도록 반도체 설계 초기 단계부터 고려하는 게 반도체 개발에서 매우 중요한 부분으로 고려되고 있습니다.

Platform 파트는 업무는 크게 두 가지로 구분될 수 있습니다. 첫째는 반도체 요구되는 Application S/W 이 원활하게 동작할 수 있도록 BootLoader, OS(Operation system), Device Driver, System Application 및 Application 개발 환경 등 Platform S/W을 개발합니다. 두 번째는 반도체에 존재하는 각 H/W 블록들의 기능이 S/W platform에서 적절하게 운용 가능한지 설계 초기에 검토를 하고 설계 이후에는 의도대로 설계가 되었는지 검증을 진행합니다.

02 Platform파트 주요 업무와 과제는 무엇이고, 어떻게 진행되나요?

Platform 파트의 첫 번째 중요 업무는 반도체가 설계된 의도대로 최적화되어 작동하도록 하는 것입니다. 반도체 개발 단계별로 설명을 하자면, 초기 개발에서는 CPU 및 Memory , I/O, 각종 Media/AI 가속기를 분석하고 Software를 위한 H/W 요구사항을 검토하고 반도체 설계팀에 개발 요청을 합니다.

또한 이때 어떤 식으로 H/W 검증할지까지 검토 완료를 합니다. 이 과정이 끝나면 FPGA(field programmable gate array) 또는 가상화 S/W를 통해 반도체 Prototype를 개발을 반도체 설계팀에 요청하고 각종 Software 구동 시 문제가 있는지 중간 평가를 진행합니다.

또한 이때 어떤 식으로 H/W 검증할지까지 검토이 단계 끝나면 반도체 ES(Engineering Sample, 반도체 초기 샘플) 개발이 진행되게 됩니다. ES 수령 후 OS(Operation System)를 Porting 하게 되고 다양한 반도체 내/외의 다양한 H/W 블록 또는 장치들을 위해 다양한 Device Driver 들을 구현하여, 초기 의도된 성능이 나오는지 평가하고 문제가 없다면 다양한 Application 구현할 수 있도록 BSP(Board Support Package) 및 SDK(Software development kit)를 개발하여 반도체 개발 최종 단계를 마무리하게 됩니다.

03 Platform파트 직무의 매력은 무엇인가요?

SoC는 System-on-chip이라는 의미이지만 현역에서 반도체 개발에 참여하는 S/W 엔지니어 입장에서는 Software-on-chip라는 의미로 다가옵니다. 반도체 설계 엔지니어보다 H/W 블록의 기능에 대해 더 명쾌하게 정의할 수 있어야 하며 순수 S/W 엔지니어 보다 더 정확하게 사용할 Application S/W에 대한 이해가 필요합니다. H/W에서부터 S/W까지 모든 단계를 이해하고 시스템을 설계한다는 것은 순수 반도체 엔지니어나 순수 S/W 엔지니어가 경험하지 어려운 특별한 경험이 되지 않을까 생각 됩니다.

04 Interviewee께서는 어떤 커리어 패스를 걸어오셨나요?

처음 실무에서 맡은 일이 화면 장치 드라이버(LCD 화면 제어 S/W) 구현이었습니다. 그 후 VideoCodec (MPEG4, H262, H263, H264) 알고리즘 모델 설계 및 구동 Firmware 개발을 진행하였으며, 반도체에 있는 모든 Peripheral(NandFlash, eMMC, SD, USB, Network, … etc) 드라이버 개발을 진행하였습니다.

추후 모든 Peripheral에 익숙해진 후 OS(WindowCE, Linux, RTOS) 및 Filesystem (FAT32, extFAT, FlashFS, ext2) Porting 업무를 진행하게 되었습니다. 또한 다양한 반도체를 적용한 MP3 및 BlackBox, Navigation 등 다양한 세트 개발도 진행하였습니다. 이런 Platform 관련 다양한 경험들이 현재 반도체 S/W Platform 개발에 대한 이해를 높였던 것으로 보입니다.

05 Platform파트에서 일하기 위해 필요한 직무 수행 역량은 어떤 것이 있을까요?

우선 다양한 프로그램 언어를 알아야 합니다. Platform S/W는 다양한 언어로 구성되어 있습니다. Assembler, C/C++, Python, Shell script까지 따라서 다양한 환경에서 다양한 언어를 이해하는 능력이 필요합니다. 두 번째로 시스템에 대한 이해가 필요합니다. 즉 세트라는 개념이 필요합니다.

흔히 말하는 핸드폰은 크게 AP, Memory, Storage, Network, Display, Battery로 크게 구성되어 있습니다. 이런 세트(핸드폰)를 세분화해서 분석할 수 있는 능력 또는 흥미가 필요합니다. 마지막으로 가장 중요한 끈기가 필요합니다. Platform 개발은 H/W부터 S/W까지 개발 범위가 넓으며 어쩌면 가장 어려운 개발 작업을 진행하고 있을 때가 많습니다. 이때는 포기하지 않고 몇 번이라도 계속 반복해서 해결책을 찾으려는 근성이 필요합니다.

06 Platform파트에서 업무를 수행하면서 보람을 느낄 때는 언제인가요?

S/W로 개선하여 반도체 자체 기능보다 더 많은 기능 및 성능을 구현할 때 가장 보람을 느꼈고 많은 Application 엔지니어들이 안정적으로 S/W 개발을 하여 기능을 구현할 때 일에 즐거움을 느꼈네요.

07 우리 부서에서 일하기를 꿈꾸는 미래의 후배들에게 한마디

Platform S/W은 모든 종류의 Software가 유기적으로 연결되어 다양한 서비스를 제공하는 거대한 S/W 덩어리입니다. 저도 처음부터 모든 걸 알고 시작하지 않았습니다.

그때그때 실무에 필요한 지식을 갖추지 못해 항상 집에 못 가고 고민하던 아직도 선하네요. 뭐 지금은 다르겠죠? 더 양질의 교육을 받고 더 많은 정보를 공유할 수 있으니깐요. 어려운 상황에 부딪히고 포기하고 싶은 순간이 온다 하더라도 끈기를 갖고 끝까지 노력해 보시기 바랍니다. 원하는 일이 있으면 절대 포기하지 마세요.