FE Master 2026
FE Master

PHẦN A: KIẾN THỨC

PHASE 1: CƠ SỞ KHOA HỌC MÁY TÍNH (DAY 1-30)

1
Hệ đếm & Dữ liệuPart A
2
Số bù 2 & Số thực (Floating Point)Part A
3
Mạch Logic & Cổng LogicPart A
4
Kiến trúc CPUPart A
5
Bộ nhớ (Memory)Part A
6
Hệ điều hành (OS)Part A
7
Tiến trình & LuồngPart A
8
Mạng máy tính: OSI 7 LayerPart A
9
Internet & IP/TCPPart A
10
HTTP & DNSPart A
11
Database Cơ bản & Mô hình ERPart A
12
Chuẩn hóa Database (1NF → 3NF)Part A
13
SQL Cơ bản (SELECT, INSERT, UPDATE, DELETE)Part A
14
SQL Nâng cao (JOIN, GROUP BY, SubQuery)Part A
15
Transaction & ACIDPart A
16
Phát triển Phần mềm (SDLC & Models)Part A
17
Thiết kế Hệ thống (DFD, UML)Part A
18
Kiểm thử Phần mềm (Testing)Part A
19
Quản lý Dự án (PMBOK, WBS, Gantt)Part A
20
Review: Database & Phát triển PMPart A
21
Chiến lược Kinh doanh Chuyên sâu (SWOT, PPM)Part A
22
Marketing Mix & Data MiningPart A
23
Chiến lược Hệ thống & Cải tiến Quy trìnhPart A
24
Pháp luật IT & Hợp đồng (Quan trọng)Part A
25
Quản lý Dự án (PMBOK & EVM)Part A
26
Lưu trữ & Tính toán RAIDPart A
27
Công nghệ Mạng (LAN/WAN/Wifi)Part A
28
An toàn thông tin (Threats & Attacks)Part A
29
Mã hóa & Chữ ký sốPart A
30
Review Phase 1: Foundation (Tổng ôn tập)Part A

PHẦN A: KIẾN THỨC

PHASE 2: LOGIC & TỰ ĐỘNG HÓA (DAY 31 - 50)

31
Tư duy Thuật toán & Kỹ năng Trace CodePart A
32
Thuật toán Sắp xếp Cơ bản (Basic Sorting)Part A
33
Thuật toán Sắp xếp Nâng cao (Advanced Sorting)Part A
34
Thuật toán Tìm kiếm (Searching) & HashingPart A
35
Cấu trúc dữ liệu: Stack & QueuePart A
36
Cấu trúc dữ liệu: Array & Linked ListPart A
37
Graph (Đồ thị) & Thuật toán tìm đườngPart A
38
Tree (Cây) & Binary Search TreePart A
39
Độ phức tạp thuật toán (Big O Notation)Part A
40
Review Phase 2 Part 1: Algorithms MasterPart A
41
Tư duy Lập trình: Logic & Bảng Chân TrịPart A
42
Bộ nhớ: Stack vs Heap & Con trỏPart A
43
CTDL & Giải thuật: Độ phức tạp Big OPart A
44
OOP 1: Class, Object & Đóng góiPart A
45
OOP 2: Kế thừa & Đa hình (Inheritance & Polymorphism)Part A
46
Collections List/Set/Map - Hộp đựng đồ vạn năngPart A
47
Đệ quy (Recursion) - Giấc mơ trong giấc mơPart A
48
Kỹ thuật Bit (Bitwise) - Quyền năng tối thượngPart A
49
Design Patterns: Singleton & FactoryPart A
50
Tổng kết Phase 2: Chân dung Master CoderPart A

PHẦN A: KIẾN THỨC

PHASE 3: ĐI SÂU VÀO HỆ THỐNG (DAY 51 - 75)

51
Kiến trúc Máy tính: CPU & PipelinePart A
52
Bộ nhớ đệm: Cache InternalsPart A
53
Dữ liệu: Float & IEEE 754 Deep DivePart A
54
Hệ điều hành: Process InternalsPart A
55
Lập lịch CPU: Scheduling AlgorithmsPart A
56
Quản lý bộ nhớ: Virtual Memory & PagingPart A
57
Lưu trữ: Disk Anatomy & RAIDPart A
58
Ảo hóa & Containerization (Docker)Part A
59
Độ tin cậy & SRE BasicsPart A
60
Tổng ôn Hardware & OS ArchitectPart A
61
Mạng máy tính: Packet Analysis & WiresharkPart A
62
Giao vận: TCP Internals Deep DivePart A
63
Subnetting: VLSM & CIDR MasterclassPart A
64
Định tuyến: OSPF & BGP InternalsPart A
65
DNS & HTTP/2, HTTP/3 (QUIC)Part A
66
Database Indexing: B-Tree vs HashPart A
67
Normalization & DenormalizationPart A
68
NoSQL & Distributed DataPart A
69
Transaction & Concurrency ControlPart A
70
Review: System Design InterverviewPart A
71
An toàn thông tin: CIA & Risk ManagementPart A
72
Mật mã học: Encryption & HashingPart A
73
Xác thực: Authentication & OAuth 2.0Part A
74
Tấn công Web: SQL Injection & XSSPart A
75
Hạ tầng & Tổng ôn An toàn thông tinPart A

PHẦN A: KIẾN THỨC

PHASE 4: QUẢN LÝ IT & CHIẾN LƯỢC (DAY 76 - 85)

76
Quản lý Dự án I: PMBOK & Tam giác vàngPart A
77
Quản lý Thời gian: WBS & Đường Găng (CPM)Part A
78
Quản lý Chi phí: EVM (Earned Value Management)Part A
79
Quản lý Dịch vụ: ITIL & SLAPart A
80
Kiểm toán hệ thống & Kiểm soát nội bộPart A
81
Chiến lược Kinh doanh: SWOT & PPMPart A
82
Marketing & Tài chính: 4P & BSCPart A
83
Pháp luật IT: Bản quyền & Hợp đồngPart A
84
Tiêu chuẩn hóa: ISO & Code of ConductPart A
85
Tổng kết Phase 4: Quản lý & Chiến lượcPart A

PHẦN B: KỸ NĂNG

PHASE 5: TRẬN CHIẾN CUỐI CÙNG - LUYỆN ĐỀ PART B (DAY 86 - 100)

86
Part B Security: CIA & Xác thực UserPart B
87
Mã hóa: Đối xứng vs Bất đối xứngPart B
88
Chữ ký số & PKIPart B
89
Các loại tấn công mạng (Cyber Attacks)Part B
90
Hạ tầng bảo mật: Firewall, DMZ & VPNPart B
91
Pseudo-code Drills: Cấu trúc dữ liệu cơ bảnPart B
92
Pseudo-code Drills: Sorting & SearchingPart B
93
Pseudo-code Drills: Logic & BitwisePart B
94
Pseudo-code Drills: Kỹ thuật đệ quyPart B
95
Bài toán thực tế Part B: Nén dữ liệu RLEPart B
96
Part B Math: Tính toán phần cứngPart B
97
Part B Math: Tính toán Mạng (Subnet)Part B
98
Chiến thuật làm bài Part BPart B
99
Tổng ôn tập: Điểm mù kiến thứcPart B
100
FINAL DAY: Lời kết & Chúc may mắnPart B

Ver: 2026.02.21-v2

Học tậpThi thửHồ sơ
FE Master 2026
Đăng nhập
FE Master 2026

app.description

Liên kết hữu ích

  • Trang chủ
  • Blog & Tin tức
  • Đăng nhập

Pháp lý

  • Chính sách bảo mật
  • Điều khoản dịch vụ

Kết nối

  • Về chúng tôi
  • Liên hệ

© 2026 FE Master. All rights reserved.

Made with ♥ by Baryuu
Trang chủ
PHASE 3: ĐI SÂU VÀO HỆ THỐNG (DAY 51 - 75)/Ngày 52/100
DAY 52🇯🇵 キャッシュメモリ (内部構造)

Bộ nhớ đệm: Cache Internals

52%

Quảng cáo • Advertisement

📢 Sponsor Ad

Google AdSense

lesson.content.title

lesson.content.subtitle

🎯 Mục tiêu bài học

Hiểu sâu về Cache Mapping, Cache Miss và cách viết code để tối ưu Cache (Cache Friendly Code).

1. Tại sao cần Cache Mapping?

RAM có 16GB, Cache L1 chỉ có 64KB. Làm sao nhét voi vào tủ lạnh?

Ta phải chia RAM thành các khối (Block) và Cache thành các dòng (Line). Mapping là quy tắc "Block nào được ở Line nào".

2. Các kiểu Mapping (Kèm thuật toán)

a. Direct Mapping (Ánh xạ trực tiếp)

Quy tắc: Index = RamBlockAddr % CacheLines.

Ví dụ: Cache có 4 dòng (0, 1, 2, 3).

  • Block 0 -> Line 0 (0%4=0).
  • Block 1 -> Line 1.
  • Block 4 -> Line 0 (4%4=0). 🚨 Xung đột (Conflict)!

Nếu bạn truy cập Block 0 rồi Block 4 xen kẽ liên tục, chúng sẽ đá nhau ra khỏi Cache Line 0 liên tục (Thrashing). Hiệu năng thảm hại.

b. Fully Associative (Ánh xạ toàn liên kết)

Quy tắc: Block nào thích nằm đâu thì nằm.

  • Ưu điểm: Không bao giờ xung đột nếu còn chỗ trống.
  • Nhược điểm: Khi CPU muốn tìm Block 0, nó phải hỏi TẤT CẢ các Line "Mày có giữ Block 0 không?". Mạch so sánh song song rất đắt đỏ và tốn điện.

c. Set-Associative (Ánh xạ tập hợp) - Thực tế dùng cái này

Lai giữa 2 loại trên. Cache chia thành nhiều Set. Mỗi Set có N đường (N-Way).

Ví dụ: 2-Way Set Associative.

  • Block 0 -> Set 0. (Trong Set 0 có 2 chỗ, nằm chỗ nào cũng được).
  • Block 4 -> Set 0. (Vẫn vào được Set 0 nằm cạnh Block 0, không đá Block 0 ra).
  • Block 8 -> Set 0. (Lúc này Set 0 mới đầy -> Phải đá 1 thằng ra).

3. Cache Replacement Policies (Thuật toán thay thế)

Khi Cache đầy, phải hy sinh ai?

Thuật toánCách hoạt độngĐánh giá
FIFO (First In First Out)Vào sớm ra sớm.Tệ. Có thể biến quan trọng (Biến đếm vòng lặp) được nạp từ đầu, nếu bị đá ra sẽ gây Cache Miss liên tục. (Belady's Anomaly).
LRU (Least Recently Used)Đá thằng nào LÂU NHẤT chưa được đụng đến.Tốt nhất. Dựa trên giả định "Temporal Locality" (Thằng vừa dùng sẽ dễ được dùng lại).
LFU (Least Frequently Used)Đá thằng nào ít được dùng nhất (đếm số lần).Tốt cho dữ liệu tĩnh, nhưng hay bị lỗi với dữ liệu hợp thời (Trend).
RandomChọn đại 1 thằng đá ra.Đơn giản, rẻ tiền. Hiệu năng... hên xui (nhưng không quá tệ).

4. Cache Write Policies

Khi CPU ghi data (Store):

  • Write-Through: Ghi vào Cache VÀ ghi thẳng ra RAM ngay lập tức. (An toàn, nhưng chậm).
  • Write-Back: Chỉ ghi vào Cache. Đánh dấu dòng đó là "Bẩn" (Dirty bit = 1). Khi nào dòng đó bị đá ra thì mới chép về RAM. (Nhanh, nhưng rủi ro mất điện nếu chưa kịp sync).

📝 Lab 2: Ma trận và Cache Friendly Code

Tại sao đoạn code A chạy nhanh gấp 10 lần đoạn code B?

Code A (Duyệt theo hàng - Row Major):

for(int i=0; i < N; i++)
  for(int j=0; j < N; j++)
    sum += matrix[i][j];
                

Code B (Duyệt theo cột - Column Major):

for(int j=0; j < N; j++)
  for(int i=0; i < N; i++)
    sum += matrix[i][j];
                

Giải thích:

  • Trong C/C++, mảng 2 chiều được lưu liền mạch theo hàng trong RAM: [0,0], [0,1], [0,2]...
  • Khi CPU đọc matrix[0][0], nó sẽ kéo luôn cả [0,1], [0,2]... vào Cache Line (Spatial Locality).
  • Code A: Tận dụng được Cache (Hit liên tục).
  • Code B: Nhảy cóc từ [0,0] sang [1,0] (cách nhau cả ngàn byte). Mỗi lần đọc là 1 lần Cache Miss.

🔥 Interview Q&A

Q1: Tại sao mảng (Array) thường nhanh hơn Danh sách liên kết (Linked List)?

A: Do tính chất địa phương (Locality of Reference). Array nằm liền nhau trong RAM -> Cache Hit cao. Linked List các node nằm rải rác lung tung trong RAM -> CPU phải fetch từ RAM liên tục (Cache Miss).

Quảng cáo • Advertisement

📢 Ad Space

Google AdSense

Day 51Day 53