inflearn logo

Kiến trúc Arm: Mô hình bộ nhớ và rào cản (Memory Barrier) [Tác giả trực tiếp giảng dạy Phần 3-3]

Kiến thức cơ bản của cơ bản trong phần mềm hệ thống, tác giả của cuốn sách "Cấu trúc và nguyên lý của kiến trúc Arm dành cho phát triển phần mềm hệ thống" sẽ giúp bạn nắm vững 'Mô hình bộ nhớ và Rào cản (Barrier)' - cốt lõi của các kiến trúc Arm mới nhất (Armv8-A, Armv7-A)!

(4.9) 7 đánh giá

121 học viên

Độ khó Cơ bản

Thời gian Không giới hạn

ARM Architecture
ARM Architecture
memory-mapped-io
memory-mapped-io
barrier
barrier
armv8
armv8
cortex-a
cortex-a
ARM Architecture
ARM Architecture
memory-mapped-io
memory-mapped-io
barrier
barrier
armv8
armv8
cortex-a
cortex-a

Bạn sẽ nhận được điều này sau khi học.

  • Bạn có thể nắm bắt được mô hình bộ nhớ và nguyên lý hoạt động cơ bản của barrier trong kiến trúc Arm (Armv8-A).

  • Bạn có thể tìm hiểu cách mô hình bộ nhớ và các chức năng liên quan đến rào cản (barrier) của kiến trúc Arm được ứng dụng thực tế vào các dự án như thế nào.

  • Bạn có thể nắm bắt được cấu trúc và luồng thực thi liên quan đến mô hình bộ nhớ (memory model) và rào cản (barrier) thông qua một cái nhìn tổng thể.

  • Tôi có thể trả lời tốt các câu hỏi liên quan đến mô hình bộ nhớ (memory model) và rào cản bộ nhớ (memory barrier) trong buổi phỏng vấn.

<Thông báo>

1. Phát hành phiếu giảm giá 30% kỷ niệm cột mốc 300 học viên 

Chào mừng số lượng học viên vượt mốc 300 người (Phần 1, 2), chúng tôi xin phát hành mã giảm giá 30%. Xin cảm ơn các bạn. Số lượng giới hạn cho 200 người đầu tiên.

2. Hướng dẫn lộ trình 🎯

Bài giảng lần này <Arm 아키텍처: 메모리 모델과 배리어 [저자직강 3부-3]> là bài giảng nằm trong lộ trình'Arm cho nhà phát triển phần mềm hệ thống - khóa học nâng cao'.


Đối với những ai muốn học về kiến trúc Arm (Armv8-A, Armv7-A) một cách hệ thống, việc tận dụng lộ trình học (giảm giá 30% cho toàn bộ khóa học) sẽ rất hữu ích. Để tham khảo, lộ trình kiến trúc Arm (toàn bộ bài giảng trực tiếp từ tác giả) bao gồm hai phần là Basic CourseAdvanced Course..


Trong phần mềm hệ thống mới nhất,
Kiến trúc Arm là quan trọng nhất

Các bộ vi xử lý Arm được sử dụng trong điện thoại thông minh, hệ thống bán dẫn SoC cho AI, ô tô điện Automotive (tự hành, thông tin giải trí), cũng như máy chủ đám mây và MacBook đều là bộ vi xử lý Cortex-A 64-bit dựa trên Armv8-A (Cortex-A53, Cortex-A57, Cortex-A72, v.v.). Có thể thấy rằng kiến trúc Armv8-A là lĩnh vực đòi hỏi nhiều kiến thức nền tảng nhất trong ngành phần mềm hệ thống hiện nay.

Bước đầu tiên để trở thành nhà phát triển SW hệ thống cao cấp!
Hiểu về phương thức quản lý bộ nhớ🙋‍♂

Tuy nhiên, để trở thành một nhà phát triển phần mềm hệ thống cao cấp, bạn cần phải hiểu rõ cách thức quản lý bộ nhớ trong số các chức năng chính cấu thành nên kiến trúc Arm. Cốt lõi của phương pháp quản lý bộ nhớ là 'hệ thống bộ nhớ ảo', 'nguyên lý hoạt động của bộ nhớ đệm' và 'mô hình bộ nhớ và rào cản'.


Tại sao chúng ta nên học về 'Mô hình bộ nhớ và Rào cản'?

1⃣ Thứ nhất, nếu hiểu rõ về mô hình bộ nhớ và rào cản (barrier), bạn có thể phát triển trình điều khiển thiết bị (device driver) tốt. Hầu hết các trình điều khiển thiết bị đều điều khiển các thiết bị ngoại vi thông qua phương thức Memory-mapped I/O, và trong mô hình bộ nhớ (Normal Memory, Device Memory), chúng ta sẽ tìm hiểu chi tiết về Device Memory - nền tảng của phương thức Memory-mapped I/O.

2⃣ Thứ hai, bạn phải hiểu rõ về bộ nhớ thiết bị (một trong các mô hình bộ nhớ), vốn là nền tảng của Memory-mapped I/O, thì mới có thể lập trình để điều khiển hiệu quả các phần cứng cấu thành nên chất bán dẫn hệ thống. Điều này là do hầu hết các công ty thiết kế chất bán dẫn (fabless) đều thiết kế các mô-đun độc lập (IP) cấu thành nên chất bán dẫn hệ thống thông qua phương thức Memory-mapped I/O.

3⃣ Thứ ba, nếu hiểu rõ về mô hình bộ nhớ và rào cản (barrier), bạn có thể nắm bắt chi tiết nguyên lý hoạt động bên trong bộ vi xử lý Arm. Đặc biệt trong các hệ thống đa nhân, bạn sẽ thường xuyên đối mặt với các tình huống giải quyết vấn đề đồng thời bằng cách sử dụng rào cản, và 'mô hình bộ nhớ và rào cản' có thể trở thành kiến thức nền tảng.

4⃣ Thứ tư, để vượt qua tốt phỏng vấn kỹ thuật liên quan đến phát triển phần mềm hệ thống, bạn cần nắm vững về 'Mô hình bộ nhớ và Barrier'. Một trong những câu hỏi thường gặp trong các buổi phỏng vấn nhà phát triển có kinh nghiệm là các nội dung liên quan đến Memory Reordering và Memory-mapped I/O.


Bài giảng trực tiếp từ tác giả, chứa đựng bí quyết của một kỹ sư hệ thống với 12 năm kinh nghiệm!

'Cấu trúc và nguyên lý của kiến trúc Arm dành cho phát triển phần mềm hệ thống' (Chương 17) trình bày chi tiết về 'Mô hình bộ nhớ và Rào cản (Barrier)'. Hy vọng bạn sẽ tiến xa hơn nữa trên con đường trở thành nhà phát triển phần mềm hệ thống thông qua bài giảng trực tiếp từ tác giả này.

Bạn sẽ học được những nội dung này

Giới thiệu các loại mô hình bộ nhớ được định nghĩa trong kiến trúc Arm và bộ nhớ thông thường (Normal Memory).

Phân tích chi tiết tài liệu thông số kỹ thuật của Arm, đồng thời giới thiệu các loại mô hình bộ nhớ (Normal Memory và Device Memory).

Giải thích chi tiết về bộ nhớ thiết bị (Device Memory), vốn là giao diện I/O ánh xạ bộ nhớ (Memory Mapped I/O), và xem xét lại I/O ánh xạ bộ nhớ của BCM2711 (được sử dụng trong Raspberry Pi).

Phân tích giao diện I/O ánh xạ bộ nhớ (Memory Mapped I/O) thông qua gỡ lỗi (Crash-Utility).

Giới thiệu về barrier và giải thích chi tiết các ví dụ về barrier.

Giải thích về phạm vi áp dụng của barrier và tính nhất quán của dữ liệu trong hệ thống đa nhân (multi-core).

Giải thích chi tiết cách rào cản (barrier) được sử dụng trong thực tế trong nhân Linux và trình quản lý siêu hiển thị XEN.

Dựa trên kinh nghiệm viết sách và giảng dạy,
giải thích sâu sắc và chi tiết hơn bất kỳ ai!

Tôi là tác giả của những cuốn sách về 'Kiến trúc Arm (Armv8-A, Armv7-A)' và 'Kernel Linux' vô tiền khoáng hậu trong lĩnh vực phần mềm hệ thống tại Hàn Quốc. Đồng thời, tôi cũng là một nhà phát triển đang làm việc thực tế, người nắm rõ nhất các xu hướng phần mềm hệ thống mới nhất (xe điện, bán dẫn hệ thống - phần mềm hệ thống), và là một nhà giáo dục hoạt động tích cực nhất trong việc truyền bá kiến thức trong lĩnh vực phần mềm hệ thống.

  • Tác giả 'Cấu trúc và nguyên lý của kiến trúc Arm dành cho phát triển phần mềm hệ thống' (Năm 2024, Giải thưởng Sách hay của Viện Hàn lâm Khoa học Quốc gia Hàn Quốc)

  • Tác giả cuốn 'Cấu trúc và nguyên lý của Linux Kernel học qua debugging' (Giải thưởng Sách hay của Viện Hàn lâm Khoa học Quốc gia Hàn Quốc năm 2021)

  • Giảng viên chính của 'Programmers Dev Course: Chuyên gia Hệ thống và Nhân Linux'

  • Tháng 6 năm 2022, Hội nghị Tổng hợp Khoa học Máy tính Hàn Quốc (KCC2022) - Thuyết trình hướng dẫn [Chinh phục Linux Kernel bằng ftrace]

  • Giảng viên nội bộ về 'Linux Kernel' và 'Armv8 Architecture' tại LG Electronics (bao gồm cả các nhà phát triển trong và ngoài nước) - (2020~2024)


Tôi có thể tự tin khẳng định rằng mình là một nhà đào tạo có khả năng giải thích các tính năng chính của kiến trúc Arm (Armv8-A, Armv7-A) tốt hơn bất kỳ ai tại Hàn Quốc.

Đánh giá thực tế từ các học viên

<Cấu trúc và nguyên lý của kiến trúc Arm dành cho phát triển phần mềm hệ thống - Bài giảng trực tiếp từ tác giả Phần 1/2>


Lưu ý trước khi học

Kiến thức tiên quyết và lưu ý 📢

  • Bài giảng 'Mô hình bộ nhớ và Rào cản (Barrier)' là bài giảng mà bạn có thể dễ dàng theo kịp ngay cả khi không có kiến thức tiên quyết.

  • Bạn cần phải biết các khái niệm cơ bản về lệnh Assembly và thanh ghi (register).

  • Sẽ rất tốt nếu bạn hiểu về hệ thống đa lõi (multi-core) và cấu trúc hệ thống.


Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Nhà phát triển trẻ muốn nâng cao năng lực trong lĩnh vực phần mềm hệ thống, bao gồm bán dẫn hệ thống (fabless) và lĩnh vực xe điện (tự hành, thông tin giải trí)

  • Sinh viên mới tốt nghiệp đang tìm việc, mong muốn phát triển phần mềm hệ thống trong lĩnh vực bán dẫn hệ thống (fabless) và xe điện.

  • Các nhà phát triển phần mềm hệ thống (bán dẫn hệ thống, xe điện) muốn biết cách tận dụng các tính năng của kiến trúc Arm để thực hiện debug trong thực tế.

Cần biết trước khi bắt đầu?

  • Kiến trúc máy tính

  • Hệ điều hành

Xin chào
Đây là austinkim

6,384

Học viên

247

Đánh giá

99

Trả lời

4.9

Xếp hạng

23

Các khóa học

Tác giả toàn cầu & Nhà phát triển phần mềm hệ thống Linux (Kiến trúc Arm, RISC-V)

Là tác giả vô tiền khoáng hậu trong lĩnh vực phần mềm hệ thống tại Hàn Quốc, người đã viết các cuốn sách về 'Kiến trúc Arm (Armv8-A, Armv7-A)' và 'Linux Kernel' (cả hai cuốn sách đều được Viện Hàn lâm Khoa học Quốc gia Hàn Quốc bình chọn là Sách ưu tú), đồng thời là tác giả toàn cầu đầu tiên tại Hàn Quốc viết cuốn sách tiếng Anh "Reverse Engineering Armv8-A Systems" thông qua nhà xuất bản nước ngoài (Packt). Trên hết, ông là một nhà phát triển đang làm việc thực tế, người nắm rõ nhất các xu hướng phần mềm hệ thống mới nhất (xe điện, bán dẫn hệ thống - phần mềm hệ thống). Ngoài ra, ông còn là một nhà giáo dục hoạt động tích cực nhất trong việc truyền bá kiến thức trong lĩnh vực phần mềm hệ thống.

  • Tác giả cuốn sách (tiếng Anh) 'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis', (Nhà xuất bản Packt), (Packt Publishing)

  • Tác giả cuốn 'Cấu trúc và nguyên lý của kiến trúc Arm dành cho phát triển phần mềm hệ thống' (Giải thưởng Sách hay của Viện Hàn lâm Khoa học Quốc gia Hàn Quốc năm 2024))

  • Tác giả cuốn sách 'Cấu trúc và nguyên lý của nhân Linux học qua việc gỡ lỗi' (Giải thưởng Sách hay của Viện Hàn lâm Khoa học Quốc gia Hàn Quốc năm 2021))

  • Giảng viên chính của 'Programmers Dev Course: Chuyên gia Hệ thống Linux và Kernel'

  • Tháng 6 năm 2022, Hội nghị Tổng hợp Khoa học Máy tính Hàn Quốc (KCC2022) - Thuyết trình hướng dẫn [Chinh phục Linux Kernel bằng ftrace]

  • Giảng viên nội bộ của LG Electronics về 'Linux Kernel' và 'Kiến trúc Armv8' (bao gồm các nhà phát triển trong và ngoài nước) - (2020~Hiện tại)

Tôi có thể tự tin khẳng định rằng mình là một giảng viên có khả năng giải thích về Linux Kernel và kiến trúc Arm (Armv8-A, Armv7-A) tốt hơn bất kỳ ai khác tại Hàn Quốc.

Liên hệ giảng dạy: austindh.kim@gmail.com

Lộ trình chính 🎯

'Arm dành cho nhà phát triển phần mềm hệ thống - khóa học cơ bản'

'Arm dành cho nhà phát triển phần mềm hệ thống - khóa học nâng cao'

Linux kernel dành cho nhà phát triển phần mềm hệ thống - khóa học cơ bản

Thêm

Chương trình giảng dạy

Tất cả

27 bài giảng ∙ (3giờ 50phút)

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

7 đánh giá

4.9

7 đánh giá

  • grapesgun0624님의 프로필 이미지
    grapesgun0624

    Đánh giá 5

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Sẽ thực sự tốt nếu bạn giải thích nó bằng mã hạt nhân trong đó rào cản được sử dụng trực tiếp làm ví dụ.

    • austinkim
      Giảng viên

      Cảm ơn bạn đã đánh giá tốt.

  • aceoftop1975님의 프로필 이미지
    aceoftop1975

    Đánh giá 121

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    29/07/2024/Thứ Hai 15:30 Tôi rất thích bài giảng. Mỗi lần tôi nghe giảng, "Ah~ Ah~" Tôi nghĩ tôi đã làm điều đó nhiều lần. Tôi đã học được điều gì đó mà tôi chưa biết, và tôi đã cảm động mà không hề nhận ra. Thời gian khóa học: không giới hạn, học phí thấp, và mặc dù hiện tại tôi đang nghe vội nhưng tôi nghĩ mình sẽ bình tĩnh nghe lại vài lần trong tương lai. Cảm ơn bạn đã tạo ra một khóa học tuyệt vời.

    • woo12346560311님의 프로필 이미지
      woo12346560311

      Đánh giá 5

      Đánh giá trung bình 5.0

      5

      33% đã tham gia

      • kfcwee9463님의 프로필 이미지
        kfcwee9463

        Đánh giá 11

        Đánh giá trung bình 5.0

        5

        100% đã tham gia

        • heecheolsong님의 프로필 이미지
          heecheolsong

          Đánh giá 23

          Đánh giá trung bình 5.0

          5

          33% đã tham gia

          Khóa học khác của austinkim

          Hãy khám phá các khóa học khác của giảng viên!

          Khóa học tương tự

          Khám phá các khóa học khác trong cùng lĩnh vực!

          716.033 ₫