강의

멘토링

로드맵

하드웨어

/

반도체

디버깅으로 배우는 RISC-V 아키텍처 - 3부

오픈 소스 기반의 최신 CPU 아키텍처인 RISC-V의 핵심 개념과 실용적인 팁을 쉽고 상세하게 설명합니다.

(4.0) 수강평 2개

수강생 38명

시스템반도체
임베디드
이론 실습 모두
cpucpu-architectureriscv

이런 걸 배울 수 있어요

  • 기술 면접에서 RISC-V와 관련된 질문에 잘 대답하고 설명할 수 있습니다.

  • RISC-V를 이루는 핵심 기능인 가상 메모리 시스템, 메모리 배리어, 캐시의 동작 원리를 배울 수 있습니다.

  • 리눅스 커널과 같은 운영체제 커널에서 RISC-V 아키텍처가 어떻게 활용되는지 알 수 있습니다.

  • RISC-V 기반에서 실행되는 부트로더나 리눅스 커널의 스타트업 코드를 분석할 수 있습니다.

최신 시스템 소프트웨어 업계에서
떠오르는 RISC-V 아키텍처

최근 오픈 소스 기반의 CPU 아키텍처인 RISC-V 아키텍처가 떠오르고 있습니다. IT와 관련된 언론 기사나 뉴스를 보면 아래와 같은 내용을 바로 확인할 수 있습니다:

  • nVidia, 인텔 및 퀄컴과 같은 빅 테크 기업에서 RISC-V 기반의 제품(칩셋)을 개발하고 있다.

  • 국내에 RISC-V를 활용한 다양한 칩을 설계하는 스타트업 회사가 늘어나고 있고, RISC-V 디바이스 기반 제품을 개발하는 비중이 높아지고 있다.

  • AI 반도체를 설계할 때 RISC-V 기반의 CPU 아키텍처를 많이 활용한다.

  • 2026년까지 150억개의 디바이스가 RISC-V 기반으로 출시될 예정이다.

  • 대학원(프로세서 설계)에서는 RISC-V CPU을 설계할 수 있는 툴킷을 사용해 다양한 연구를 진행 중이다.

임베디드 및 시스템 소프트웨어 업체에서 RISC-V CPU 아키텍처를 활용해 제품을 개발하는 비중이 높아지고 있습니다. 그래서 취준생은 기술 면접에서도 RISC-V에 대한 준비를 해야 하는 상황입니다.

강의를 만든 배경

입문자 입장에서 RISC-V 아키텍처는 배우기 어렵습니다. 그 이유는 다음과 같습니다:

  • RISC-V를 구성하는 방대한 내용 중에 무엇이 중요한지 모르겠다

  • RISC-V를 구성하는 내용 중에 어떤 기능이 실전 프로젝트에 활용되는지 모르겠다

  • RISC-V 스펙 문서를 아무리 열심히 읽어도 바로 이해하기 어렵다


  • RISC-V를 설명하는 용어 그 자체가 무슨 의미인지 알기 어렵다


이번 강의는 디버깅으로 배우는 RISC-V 아키텍처 시리즈의 세 번째 강의로, 입문자 수준을 넘어 높은 연봉을 받을 수 있는 수준의 시스템 소프트웨어 개발자가 되기 위한 내용을 다룹니다 - 메모리 시스템(가상 메모리, 메모리 배리어, 캐시)과 Hypervisor Extension 기능을 설명합니다.

강의의 구성과 2부, 3부 강의 로드맵

이번 강의는 RISC-V 전체 강의 목록 중, RISC-V의 핵심 기능인 3부의 내용을 다룹니다.

RISC-V 아키텍처 전체 강의는 로드맵 - '시스템 소프트웨어 개발자를 위한 RISC-V 아키텍처' 강의에서 확인할 수 있습니다.

강의의 핵심 차별화 포인트

1. RISC-V 아키텍처의 메모리 시스템을 알기 쉽게 설명합니다

고급 시스템 소프트웨어 개발자가 되기 위해서는 메모리 시스템에 대한 이해는 필수입니다. 그 이유는 다음과 같습니다.

  • 실전 프로젝트에서 만나는 익셉션 문제를 잘 디버깅하기 위해서는 가상 주소의 기본 개념과 MMU을 잘 알아야 합니다.

  • 시스템의 성능을 최적화하기 위해서 메모리 시스템의 기능을 제대로 알고 있어야 합니다.

  • 새로운 프로젝트의 브링업을 잘 하기 위해서도 메모리 관련 기능을 잘 파악해야 합니다.

하지만 RISC-V 레퍼런스 문서 분석을 통해 메모리 시스템 (가상 메모리 시스템, 메모리 배리어, 캐시)을 제대로 파악하기 어렵습니다. 이번 강의는 실무에 꼭 필요한 핵심 개념을 쉽고 명확하게 설명합니다.

2. 실무 예제로 배우는 RISC-V 메모리 기능

이번 강의에서는 실전 예제를 통해 RISC-V의 메모리 관련 기능이 어떻게 사용되는지 구체적으로 설명합니다.

  • 리눅스 커널에서 페이지 테이블을 설정하는 코드

  • fence 명령어로 메모리 리오더링을 방지하는 예시

  • Instruction cache를 flush하는 어셈블리 명령어

RISC-V 아키텍처의 내용과 함께 자연스럽게 실전 감각을 빨리 익힐 수 있습니다.

3. 다양한 디버깅 실습 강의

메모리 시스템에서 다루는 내용은 직접 디버깅을 하지 않으면, 배운 내용을 소화하기 어렵고 배운 내용을 실전 개발에 바로 활용하기 어렵습니다. 이번 강의에서는 메모리 덤프 디버깅 실습 (Crash Utility, TRACE32)를 통해 다양한 실습을 진행합니다.

  • 함수 및 전역 변수의 주소 확인 (가상 주소의 개념)

  • 가상 주소를 직접 물리 주소로 변환하는 실습

  • 페이지 테이블의 Entry 정보를 확인 (Crash Utility, TRACE32 활용)

4.Arm 아키텍처와 비교해 RISC-V를 설명

많은 개발자들이 이미 Arm 기반의 SoC나 Arm 아키텍처에 익숙합니다. 이번 강의는 이해를 돕기 위해 RISC-V의 핵심 개념을 Arm 아키텍처와 비교하여 설명합니다.

  • 가상 메모리 시스템의 구조

  • 메모리 배리어 방식

  • 캐시 제어 방법

교육자는 Arm 아키텍처의 책의 저자(우수도서상 수상 - 대한민국 학술원 - 2024년)이므로, 누구보다 RISC-V를 Arm 아키텍처와 비교하면서 잘 설명할 수 있습니다.

이런 내용을 배워요 📕

RISC-V 아키텍처의 주요 메모리 피쳐를 소개하고, 가상 메모리 시스템을 구성하는 핵심 기능도 소개합니다. 큰 그림과 함께 알게 쉽게 설명합니다.

가상 메모리 시스템의 핵심인 가상 메모리 맵을 소개합니다. 또한 커널 공간과 유저 공간 별로 가상 주소의 범위에 대해 알기 쉽게 설명합니다.

페이지 테이블을 설정하는 satp 레지스터를 설명하고, 메모리 덤프 디버깅 실습을 통해 가상 주소의 개념을 알기 쉽게 설명합니다. (메모리 덤프는 강의 자료에서 제공합니다.)

가상 주소와 페이지 테이블의 개념을 설명하고, 실제 케이스 스터디를 통해 가상 주소의 범위에 대해서 설명합니다.

멀티 레벨 페이지 테이블의 구조를 설명하고, PTE (Page Table Entry)를 상세하게 설명합니다.

멀티 레벨 페이지 테이블을 통해 가상 주소를 직접 물리 주소로 변환하는 과정을 상세하게 설명합니다. Crash Utility 프로그램을 사용해 가상 주소를 물리 주소로 바꾸는 디버깅 실습도 진행합니다.

SiFive의 U74 core와 P550 core의 MMU 스펙을 분석하면서, MMU의 동작 방식을 하드웨어 설계 관점으로 상세하게 설명합니다.


메모리 리오더링에 대해서 설명하고, 메모리 리오더링을 방지하는 fence 명령어의 동작 원리를 알기 쉽게 설명합니다.

fence 명령어의 기본 구조(form)을 설명하고, 다양한 옵션을 적용한 fence 명령어의 동작 방식을 상세하게 설명합니다.

멀티 코어 시스템 환경에서 fence 명령어의 동작 방식을 설명합니다 - fence 명령어를 실행하면 어떤 원리로 다른 코어에 동기화되는지 분석합니다. 또한 예제 어셈블리 명령어를 분석하면서 fence 명령어를 설명합니다.

fence.i 명령어를 소개하고, 큰 그림으로 fence.i 명령어를 실행하면 처리되는 흐름까지 설명합니다.

다양한 예시 어셈블리 루틴을 분석하면서 fence.i 명령어를 분석합니다. Arm 아키텍처와 비교하면서 fence.i 명령어를 분석합니다.

캐시의 기본 개념을 설명하고, 캐시가 왜 사용되는지에 대해서도 설명합니다.

멀티 코어 시스템에서 캐시의 동작 원리를 설명하고, Arm 아키텍처와 비교하면서 RISC-V에서 정의된 캐시의 핵심 피쳐에 대해서 분석합니다.

캐시를 구성하는 기본 요소에 대해 설명하고, 캐시 룩업(캐시를 찾아 가는 과정)에서 주소가 어떤 방식으로 처리되는지에 대해서 상세하게 설명합니다.


하이퍼바이저를 소개하고, RISC-V 아키텍처에서 Hypervisor가 실행되는 Privilege 모드를 설명합니다.

RISC-V 아키텍처에서 정의된 Hypervisor Extension의 핵심 기능을 소개하고, Hypervisor Extension를 활성화하는 방법을 설명합니다.


Guest OS에서 익셉션이 유발되면 Hypervisor에서 이를 먼저 제어하는, 실행 흐름을 설명합니다.


책 집필/강의경력을 바탕으로
누구보다 깊고 상세하게!

국내 시스템 소프트웨어 분야에서 전무후무한! 'Arm 아키텍처(Armv8-A, Armv7-A)'와 '리눅스 커널' 책을 쓴 저자(2권의 책 모두 대한민국 학술원 우수도서에 선정)이며, 국내 최초로 해외 출판사(Packt)를 통해 "Reverse Engineering Armv8-A Systems" 책(영어)을 집필한 글로벌 저자입니다. 무엇보다 최신 시스템 소프트웨어 트렌드(전기자동차, 시스템 반도체- 시스템 소프트웨어)를 가장 잘 알고 있는 현업 개발자입니다. 또한 시스템 소프트웨어 분야에서 가장 지식 전파 활동을 활발하게 하는 교육자입니다. 

  • 'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis' 책(영어) 저자, (Packt 출판사)

  • '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리' (2024년, 대한민국 학술원 우수도서상) 저자

  • '디버깅을 통해 배우는 리눅스 커널의 구조와 원리' (2021년, 대한민국 학술원 우수도서상) 저자

  • '프로그래머스 데브 코스: 리눅스 시스템 및 커널 전문가' 메인 강사

  • 2022년 6월, 한국컴퓨터종합학술대회 (KCC2022) - 튜토리얼 발표 [ftrace를 이용해 리눅스 커널 정복하기]

  • LG전자 '리눅스 커널' 및 'Armv8 아키텍처' 사내 강사(국내 및 해외 개발자 포함) - (2020년~2024) 

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 시스템 반도체(펩리스), 전기 자동차 분야(자율주행, 인포테인먼트)를 포함한 시스템 소프트웨어 분야에서 역량을 키우고 싶은 주니어 개발자

  • 시스템 반도체(펩리스), 전기 자동차 분야에서 시스템 소프트웨어 개발을 하고 싶은 취준생

  • RISC-V 아키텍처의 기능을 활용해 실무에서 어떻게 디버깅하는지 알고 싶은 시스템 소프트웨어 개발자(시스템 반도체, 전기 자동차)

  • 시스템 소프트웨어 분야로 커리어를 전환하려는 다른 분야의 개발자

  • 시스템 소프트웨어 분야(메모리, 파일 시스템, 운영체제)의 대학원 진학을 목표로 하는 대학생

선수 지식,
필요할까요?

  • 컴퓨터구조

  • C언어

  • 운영체제

안녕하세요
입니다.

5,669

수강생

161

수강평

86

답변

4.9

강의 평점

22

강의

글로벌 저자 & 리눅스 시스템 소프트웨어 개발자 (Arm, RISC-V 아키텍처)

국내 시스템 소프트웨어 분야에서 전무후무한! 'Arm 아키텍처(Armv8-A, Armv7-A)'와 '리눅스 커널' 책을 쓴 저자(2권의 책 모두 대한민국 학술원 우수도서에 선정)이며, 국내 최초로 해외 출판사(Packt)를 통해 "Reverse Engineering Armv8-A Systems" 책(영어)을 집필한 글로벌 저자입니다. 무엇보다 최신 시스템 소프트웨어 트렌드(전기자동차, 시스템 반도체- 시스템 소프트웨어)를 가장 잘 알고 있는 현업 개발자입니다. 또한 시스템 소프트웨어 분야에서 가장 지식 전파 활동을 활발하게 하는 교육자입니다. 

  • 'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis' 책(영어) 저자, (Packt 출판사)

  • '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리'(2024년, 대한민국 학술원 우수도서상) 저자

  • '디버깅을 통해 배우는 리눅스 커널의 구조와 원리' (2021년, 대한민국 학술원 우수도서상) 저자

  • '프로그래머스 데브 코스: 리눅스 시스템 및 커널 전문가' 메인 강사

  • 2022년 6월, 한국컴퓨터종합학술대회 (KCC2022) - 튜토리얼 발표 [ftrace를 이용해 리눅스 커널 정복하기]

  • LG전자 '리눅스 커널' 및 'Armv8 아키텍처' 사내 강사(국내 및 해외 개발자 포함) - (2020년~현재)

국내에서 어느 누구보다 리눅스 커널과 Arm 아키텍처(Armv8-A, Armv7-A)를 잘 설명할 수 있는 교육자라고 자신있게 말씀드릴 수 있습니다.

강의문의 : austindh.kim@gmail.com

주요 로드맵 🎯

'시스템 소프트웨어 개발자를 위한 Arm - basic course'

'시스템 소프트웨어 개발자를 위한 Arm - advanced course'

시스템 소프트웨어 개발자를 위한 Linux kernel - basic course

커리큘럼

전체

82개 ∙ (9시간 17분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

2개

4.0

2개의 수강평

  • 간절한개발자님의 프로필 이미지
    간절한개발자

    수강평 4

    평균 평점 5.0

    5

    20% 수강 후 작성

    이 강의를 듣고 임베디드 기술 면접에 통과했습니다. RISC-V 관련 질문을 받으면, RISC-V에 대한 어떤 질문도 잘 대답할 수 있을 것 같다는 확신이 듭니다. 강의를 듣고 달라진 제 모습이 조금 놀라웠습니다. RISC-V 스펙을 읽을 때 마다 새로웠는데, 이제는 술술 읽게 됐습니다. 프로젝트에 바로 적용할 만한 내용도 많아서, 주위 동료 개발자에게도 추천했습니다.

    • 박정모님의 프로필 이미지
      박정모

      수강평 3

      평균 평점 4.3

      3

      100% 수강 후 작성

      전반적으로 기초 지식에 기반한 교육이라 얻을 것이 많이 없었다.

      월 ₩24,200

      5개월 할부 시

      ₩121,000

      김동현 (Austin Kim)님의 다른 강의

      지식공유자님의 다른 강의를 만나보세요!

      비슷한 강의

      같은 분야의 다른 강의를 만나보세요!