Tổng quan về Kiến trúc Armv8-A dành cho lập trình viên mới (Tác giả trực tiếp giảng dạy)

Nền tảng của mọi nền tảng trong phần mềm hệ thống, những cốt lõi của kiến trúc Arm mới nhất (Armv8-A) sẽ được tác giả 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" truyền tải một cách bài bản nhất!

(5.0) 2 đánh giá

88 học viên

Độ khó Nhập môn

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

ARM Architecture
ARM Architecture
Embedded
Embedded
armv8
armv8
cpu-architecture
cpu-architecture
ARM Architecture
ARM Architecture
Embedded
Embedded
armv8
armv8
cpu-architecture
cpu-architecture

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

  • Đặc điểm của kiến trúc Arm và bộ vi xử lý Arm

  • Cách xử lý của thanh ghi và lệnh hợp ngữ

  • Cấp độ ngoại lệ (Exception Level) và ngăn xếp phần mềm (software stack) thực thi theo từng cấp độ ngoại lệ

  • Các loại ngoại lệ (Exception) và cơ chế hoạt động

  • AAPCS (Quy ước gọi Arm), một quy ước dành cho việc gọi chương trình con

  • Khái niệm về Non-secure World và Secure World cấu thành nên TrustZone

  • Nguyên lý hoạt động của ảo hóa và Hypervisor

  • Nguyên lý hoạt động của Barrier, Cache và hệ thống bộ nhớ ảo

<Thông báo>

Lộ trình các bài giảng trực tiếp từ tác giả về toàn bộ kiến trúc Arm

Khóa học lần này <Armv8-A Architecture dành cho nhà phát triển mới (Tác giả trực tiếp giảng dạy)> là khóa học nằm trong lộ trình 'Arm - basic course dành cho nhà phát triển phần mềm hệ thống' .

Đố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 tập (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ộ do tác giả trực tiếp giảng dạy) bao gồm 2 phần là Basic Course Advanced Course .

Kiến thức thiết yếu
dành cho nhà phát triển phần mềm hệ thống, Arm Architecture

Các bộ vi xử lý Arm được sử dụng trong chip bán dẫn AI, xe điện Automotive (tự lái, giải trí trên xe) và điện thoại thông minh cũng như TV kỹ thuật số đều là các bộ vi xử lý Cortex-A 64-bit dựa trên Armv8-A (Cortex-A53, Cortex-A57, Cortex-A72, v.v.). Có thể coi kiến thức cần thiết nhất trong ngành phần mềm hệ thống hiện nay chính là kiến trúc Armv8-A.

Hoàn thành trong 9 giờ
Nhập môn kiến trúc Armv8-A cốt lõiCore Armv8-A Architecture Introduction


Tôi đã viết một cuốn sách giải thích về kiến trúc Armv8-A và cũng đã thực hiện các bài giảng với thời lượng hơn 60 giờ trên Inflearn.

Tuy nhiên, để một người mới bắt đầu học kiến trúc Arm có thể tiêu hóa hết hơn 60 giờ bài giảng thì phải mất hơn 3 tháng. Tất nhiên, phương pháp tốt nhất là nghe giảng từng bước một và học kiến trúc Arm một cách hệ thống. Nhưng trên thực tế, có rất nhiều trường hợp các bạn đang chuẩn bị xin việc và các nhà phát triển trẻ cần phải chuẩn bị cho các buổi phỏng vấn kỹ thuật trong thời gian ngắn từ 1 đến 2 tuần. Để đáp ứng nhu cầu này của học viên, tôi đã ra mắt khóa học nhập môn kiến trúc Armv8-A ngắn gọn nhưng không bỏ lỡ các nội dung cốt lõi.

Đối tượng học viên 💁‍♂

Những người đang chuẩn bị xin việc trong lĩnh vực phần mềm hệ thống, những người cần chuẩn bị cho buổi phỏng vấn kỹ thuật liên quan đến kiến trúc Armv8-A trong thời gian ngắn.

Các lập trình viên mới vào nghề và cấp độ Junior muốn nắm bắt các nội dung cốt lõi của Armv8-A để nhanh chóng làm quen với công việc thực tế.

Người quản lý trong lĩnh vực phần mềm hệ thống muốn hiểu các tính năng cốt lõi của Armv8-A để quản lý dự án

Điểm khác biệt của bài giảng

1⃣ Tóm tắt các tính năng cốt lõi của kiến trúc Armv8-A có thể xuất hiện trong các buổi phỏng vấn kỹ thuật

Khả năng rất cao là các câu hỏi về kiến trúc Armv8-A sẽ xuất hiện trong buổi phỏng vấn kỹ thuật dành cho nhà phát triển phần mềm hệ thống. Hầu hết các yêu cầu tuyển dụng nhà phát triển phần mềm hệ thống Linux tại Hàn Quốc (trong lĩnh vực Fabless, nhúng) đều nêu rõ yêu cầu về kiến trúc Arm. Thời gian chuẩn bị phỏng vấn thường ngắn, nên việc phân tích các tài liệu đặc tả Arm đồ sộ sẽ là một gánh nặng lớn. Thông qua bài giảng này, bạn có thể nắm bắt các khái niệm cốt lõi cấu thành nên kiến trúc Armv8-A trong thời gian ngắn.

2⃣ Tổng hợp những nội dung mà nhà phát triển mới bắt đầu nhất định phải biết

Khi thực hiện các dự án thực tế, bạn cần phải hiểu rõ về kiến trúc Arm (Arm Architecture). Nếu không biết về kiến trúc Arm, bạn sẽ gặp khó khăn trong việc phát triển khi tiến hành bring-up hoặc gỡ lỗi (debugging).

Kiến trúc Armv8-A bao gồm các tính năng vô cùng đồ sộ. Tài liệu tham khảo liên quan dài hơn 2000 trang, khiến việc xác định nội dung nào thực sự được ứng dụng trong các dự án thực tế trở nên khó khăn. Tôi đã tổng hợp kỹ lưỡng các tính năng thực tiễn của kiến trúc Armv8-A mà một nhà phát triển mới bắt đầu nhất định phải biết.

3⃣ Giới thiệu các nghiên cứu điển hình đa dạng

Khóa học giải thích các nội dung cốt lõi của kiến trúc Arm, đồng thời đề cập đến cách thức tiến hành công việc phát triển trong các dự án thực tế. Ngoài ra, khóa học cũng giải thích thông qua nhiều trường hợp nghiên cứu điển hình (các vấn đề trong dự án thực tế) về việc những nội dung đã học được ứng dụng như thế nào trong công việc hiện tại. Bên cạnh đó, khóa học còn đề cập đến Linux kernel hoặc Bootloader, nơi các tính năng chính của kiến trúc Arm được triển khai.


Nếu nắm vững nội dung bài giảng này, bạn có thể phát triển thành một nhà phát triển phần mềm hệ thống cao cấp.

Chúc bạn nâng cấp sự nghiệp với mức lương và vị trí cao hơn.

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

Giới thiệu về bộ vi xử lý Arm đồng thời giải thích quá trình phát triển chất bán dẫn hệ thống (system semiconductor). Ngoài ra, nội dung cũng giới thiệu về các chức năng cơ bản cấu thành nên kiến trúc Armv8-A.

Giải thích cấu trúc của các thanh ghi và đưa ra nhiều ví dụ khác nhau về cách chúng được sử dụng.

Giải thích về các thanh ghi đặc biệt và đề cập đến luồng thực thi nơi các thanh ghi liên quan bị thay đổi.

Giới thiệu quá trình khởi động và giải thích cách các lệnh assembly được ứng dụng trong các dự án thực tế. Tiếp theo, phân tích định dạng cơ bản và các quy trình (routine) của lệnh assembly.


Phân tích chi tiết các lệnh hợp ngữ (assembly) theo nhiều cách khác nhau và giải thích cú pháp (Syntax) của các lệnh một cách dễ hiểu.


Sử dụng TRACE32, một chương trình gỡ lỗi thực tế, để gỡ lỗi các câu lệnh hợp ngữ (assembly). Trong quá trình phân tích các câu lệnh hợp ngữ, chúng tôi sẽ giải thích chi tiết cách các thanh ghi được sử dụng.

Giải thích một cách dễ hiểu về khái niệm Exception Level và Privilege level.

Giải thích cách phần mềm thực thi theo từng cấp độ ngoại lệ (Exception Level) thông qua nhiều ví dụ đa dạng.

Giải thích chi tiết quá trình thiết lập Exception Level trong quá trình khởi động. Giải thích cách kiểm tra Exception Level thông qua các lệnh hợp ngữ.

Giải thích chi tiết về bảng vector exception và luồng thực thi xử lý exception.

Trong kiến trúc Armv8-A, ngắt (interrupt) được xử lý như một loại ngoại lệ (exception). Thông qua các luồng thực thi đa dạng, chúng tôi sẽ giải thích một cách dễ hiểu quá trình xử lý ngoại lệ ngắt IRQ.

Giải thích quá trình phát sinh exception trong quá trình thực thi system call. Ngoài ra, giải thích luồng thực thi của exception cùng với bảng vector exception.

Thông qua thực hành gỡ lỗi bằng TRACE32, giải thích chi tiết về hoạt động phân nhánh của lõi Arm đến địa chỉ vector exception khi có exception xảy ra.

Giải thích các khái niệm cốt lõi cơ bản và luồng thực thi của AAPCS, trong đó quy định cách phân nhánh sang các chương trình con như hàm.

Giải thích cách sử dụng ngăn xếp (stack) dưới góc độ phần mềm và các phương án tối ưu hóa có thể áp dụng ngay vào dự án thực tế.


Giải thích một cách dễ hiểu về các khái niệm cốt lõi của TrustZone (Thế giới không bảo mật, Thế giới bảo mật) và luồng thực thi.

Giải thích nguyên lý hoạt động của Secure monitor call thông qua thực hành debugging TRACE32. Giải thích chi tiết về việc thực thi lệnh SMC từ EL1 để tiến vào EL3, đồng thời phân tích chi tiết cách thức hoạt động của exception phát sinh trong quá trình này.

Giải thích về cấu trúc của Hypervisor và tính năng Virtualization (ảo hóa) vốn được ứng dụng rộng rãi trong phát triển xe điện (Automotive).

Giải thích quá trình truy cập vào hypervisor từ OS khách thông qua Hypervisor call, cốt lõi của kỹ thuật ảo hóa. Ngoài ra, giải thích luồng thực thi xử lý exception nhận được từ hypervisor.


Thông qua thực hành gỡ lỗi bằng TRACE32, tài liệu này giải thích chi tiết quá trình chuyển từ EL1 (Hệ điều hành khách) sang EL2 (Hypervisor) khi thực thi lệnh HVC. Cách thức hoạt động của các ngoại lệ (exception) phát sinh trong quá trình này cũng được giải thích một cách dễ hiểu.

Giải thích các khái niệm cơ bản về bộ nhớ đệm (cache), đồng thời giải thích một cách dễ hiểu về cấu trúc cơ bản và các chính sách của bộ nhớ đệm đa cấp (multi-level cache).


Giải thích một cách dễ hiểu về mô hình bộ nhớ (memory model) và rào cản bộ nhớ (memory barrier).

Giải thích các thành phần cấu tạo nên hệ thống bộ nhớ ảo và luồng thực thi xử lý địa chỉ ảo.

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

Trong lĩnh vực phần mềm hệ thống tại Hàn Quốc, tôi là tác giả duy nhất và chưa từng có tiền lệ đã viết sách về 'Kiến trúc Arm (Armv8-A, Armv7-A)' và 'Kernel Linux'. Đồng thời, tôi cũng là một nhà phát triển đang làm việc thực tế, 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à đào tạo 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' (Khóa 1~2)

  • 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ác nhà phát triển trong và ngoài nước) - (Năm 2020~2024)

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

Những đánh giá thực tế từ người học

<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 - Phần 1/2 Bài giảng trực tiếp từ tác giả>

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

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

  • Khóa học lần này là khóa học 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.

  • Nếu bạn có kiến thức về cấu trúc hệ điều hành hoặc máy tính, điều đó sẽ giúp ích cho việc hiểu bài giảng.

  • Trong bài giảng, chúng tôi giả định rằng bạn đã biết các cú pháp cơ bản của ngôn ngữ C để giới thiệu và giải thích các mã ví dụ.

  • Chương trình TRACE32 được sử dụng trong bài giảng này không được cung cấp.

    Để tải xuống chương trình thực hành đào tạo TRACE32 và gỡ lỗi chi tiết các lệnh assembly, vui lòng tham khảo khóa học do chính tác giả giảng dạy: "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 - Phần 1/Phần 2" đã được phát hành.

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ẻ mong 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í)

  • Nhà phát triển từ các lĩnh vực khác đang muốn chuyển hướng sự nghiệp sang lĩnh vực phần mềm hệ thống

  • 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.

  • Sinh viên đại học có mục tiêu học cao học trong lĩnh vực phần mềm hệ thống (bộ nhớ, hệ thống tệp, hệ điều hành)

  • 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?

  • Vi xử lý

  • CPU

  • Nhúng

  • Ngôn ngữ C

  • Hệ điều hành

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

Xin chào
Đây là austinkim

6,319

Học viên

242

Đánh giá

96

Trả lời

4.9

Xếp hạng

22

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ả

71 bài giảng ∙ (8giờ 31phút)

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

Đánh giá

Tất cả

2 đánh giá

5.0

2 đánh giá

  • heecheolsong님의 프로필 이미지
    heecheolsong

    Đánh giá 21

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    • wjdrbs09140521님의 프로필 이미지
      wjdrbs09140521

      Đánh giá 2

      Đánh giá trung bình 5.0

      5

      31% đã tham gia

      Phần giải thích rất chi tiết, và việc đưa ra những ví dụ đơn giản cho mỗi chủ đề khó là rất tuyệt vời.

      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!

      1.161.676 ₫