hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Cấu trúc dữ liệu và giải thuật
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
      • NodeJS
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
      • MongoDB
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
      • Spring Boot
    • Lập trình C#
      • Lập Trình C# Cơ Bản
      • ASP.NET Core MVC
    • Lập trình Python
    • Git và Github
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
    • Mạng và truyền thông
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Kiến trúc máy tính
Kiến trúc máy tính – Bài 4: RAM, cache và bộ nhớ ảo khác nhau thế nào?
Kiến trúc máy tính: CPU, RAM, ALU, bus và bộ nhớ cache

Kiến trúc máy tính – Bài 4: RAM, cache và bộ nhớ ảo khác nhau thế nào?

  • 19-10-2026
  • Toanngo92
  • 0 Comments

RAM 16 GB, SSD 512 GB và cache CPU vài MB không phải những con số có thể thay thế cho nhau. Bài này giải thích hệ thống phân cấp bộ nhớ, cách cache giúp CPU và vì sao bộ nhớ ảo không đơn giản là “RAM lấy từ ổ đĩa”.

Dành cho người mới: đọc ví dụ trước, sau đó đối chiếu với sơ đồ và thuật ngữ. Các mô hình đơn giản trong bài dùng để học nguyên lý, không mô tả đầy đủ mọi CPU hay hệ điều hành.

Trong bài này

  1. Từ tệp trên SSD đến dữ liệu CPU sử dụng
  2. Cache: giữ dữ liệu gần nơi cần xử lý
  3. RAM khác ROM và firmware ra sao?
  4. Bộ nhớ ảo trước hết là một cách tổ chức địa chỉ
  5. Ví dụ dịch địa chỉ theo trang
  6. Page fault có luôn là lỗi và luôn phải đọc đĩa?
Các cấp thanh ghi, cache, RAM, SSD và ví dụ dịch địa chỉ ảo 5000 thành 29576.
Hình 4. Sơ đồ minh họa nguyên lý; không phải sơ đồ đấu nối phần cứng thực tế.

Mục lục

  • Từ tệp trên SSD đến dữ liệu CPU sử dụng
  • Cache: giữ dữ liệu gần nơi cần xử lý
  • RAM khác ROM và firmware ra sao?
  • Bộ nhớ ảo trước hết là một cách tổ chức địa chỉ
  • Ví dụ dịch địa chỉ theo trang
  • Page fault có luôn là lỗi và luôn phải đọc đĩa?
  • Những điều cần nhớ
  • Tài liệu đọc thêm

Từ tệp trên SSD đến dữ liệu CPU sử dụng

Một tệp có thể nằm lâu dài trên SSD. Khi ứng dụng cần xử lý, dữ liệu được đưa vào những vùng bộ nhớ do hệ điều hành quản lý. CPU thường truy cập thông qua hệ thống cache rồi tới RAM khi cần; các giá trị dùng trực tiếp trong phép tính nằm ở thanh ghi. Đây là đường đi khái quát, có thể có nhiều bộ đệm và tối ưu khác.

TầngVai tròGiữ dữ liệu khi mất điện?
Thanh ghiGiá trị CPU dùng trực tiếp.Thông thường không.
Cache CPUGiữ bản sao các khối dữ liệu hoặc lệnh để truy cập nhanh.Thông thường không.
RAM chínhBộ nhớ làm việc của hệ thống.RAM thông dụng không.
SSD/HDDLưu tệp, chương trình và dữ liệu lâu dài.Có, khi ghi đã hoàn tất bền vững.

Xu hướng chung là tầng gần CPU nhanh hơn, nhỏ hơn và đắt hơn trên mỗi đơn vị dung lượng. Đây không phải một bảng thời gian cố định: tốc độ thực tế phụ thuộc loại thiết bị, truy cập tuần tự hay ngẫu nhiên và nhiều yếu tố khác.

Cache: giữ dữ liệu gần nơi cần xử lý

Nếu chương trình vừa đọc một phần tử mảng, khả năng nó đọc phần tử bên cạnh thường khá cao. Nếu vừa dùng một biến, nó có thể dùng lại biến đó. Hai ý tưởng này gọi là tính cục bộ không gian và thời gian. Cache giữ các khối, thường gọi cache line, để khai thác tính cục bộ.

  • Cache hit: dữ liệu cần tìm có trong cấp cache đang xét.
  • Cache miss: không có ở cấp đó; hệ thống tìm ở cấp tiếp theo và có thể nạp khối vào cache.

L1, L2 và L3 là những tên cấp cache thường gặp, nhưng số cấp và cách chia sẻ khác nhau giữa các CPU. Không nên hiểu cache là một thư mục người dùng có thể tùy ý mở để xem mọi dữ liệu trong CPU.

Ba cách tổ chức thường học là ánh xạ trực tiếp, liên kết đầy đủ và liên kết theo tập. Chúng quyết định một khối có thể đặt vào vị trí nào. Với người mới, điều quan trọng trước hết là hiểu hit/miss; cách tính tag, index và offset có thể học ở phần chuyên sâu.

Write-through chuyển tiếp việc ghi xuống cấp dưới; write-back có thể giữ dữ liệu đã sửa trong cache và ghi xuống sau. Việc ghi lại có thể xảy ra do thay thế, yêu cầu đồng bộ hoặc cơ chế hệ thống khác, không chỉ khi dòng cache bị thay thế.

RAM khác ROM và firmware ra sao?

RAM thường dùng để nói về bộ nhớ đọc/ghi đang làm việc, điển hình là DRAM trên máy cá nhân. SRAM thường được dùng cho cache. ROM theo nghĩa gốc là bộ nhớ chỉ đọc; firmware hiện nay thường nằm trong bộ nhớ flash có thể cập nhật, nên không nên nói mọi firmware nằm trong một ROM tuyệt đối không sửa được.

Khi nhìn sơ đồ chip nhớ 4K × 8 bit, hãy đọc là 4096 vị trí, mỗi vị trí 8 bit. Tổng dung lượng là 4096 byte, tức 4 KiB. Với mô hình đánh địa chỉ từng vị trí này cần 12 bit địa chỉ vì 2¹² = 4096. Đừng nhầm 4K là 4000 trong bài toán cấu trúc chip nhớ.

Bộ nhớ ảo trước hết là một cách tổ chức địa chỉ

Chương trình sử dụng địa chỉ ảo trong không gian địa chỉ của tiến trình. Phần cứng quản lý bộ nhớ và hệ điều hành phối hợp ánh xạ sang các vùng vật lý phù hợp, đồng thời kiểm soát quyền truy cập. Hai tiến trình có thể dùng cùng một giá trị địa chỉ ảo nhưng được ánh xạ tới những vùng vật lý khác nhau.

Nhờ cơ chế này, hệ điều hành có thể bảo vệ tiến trình, chia sẻ có kiểm soát và chỉ đưa một phần dữ liệu vào RAM khi cần. Có thể dùng tệp trên ổ lưu trữ làm nơi hậu thuẫn cho một số trang, nhưng không phải toàn bộ bộ nhớ ảo đều là tệp hoán trang. Bộ nhớ ảo cũng không làm SSD nhanh bằng RAM.

Vì vậy, phát biểu “bộ nhớ ảo chỉ là lấy ổ cứng làm RAM” bỏ sót vai trò ánh xạ địa chỉ và bảo vệ bộ nhớ.

Ví dụ dịch địa chỉ theo trang

Giả sử kích thước trang là 4096 byte và chương trình truy cập địa chỉ ảo 5000. Chia 5000 cho 4096: số trang ảo là 1, độ dời trong trang là 904. Nếu bảng trang ánh xạ trang 1 tới khung vật lý 7 thì địa chỉ vật lý là 7 × 4096 + 904 = 29576.

Địa chỉ ảo 5000
  → trang 1, offset 904
  → bảng trang: trang 1 ánh xạ tới khung 7
  → địa chỉ vật lý 29576

Đây là ví dụ số học, không phải địa chỉ thật của một ứng dụng. TLB lưu đệm các bản dịch địa chỉ gần đây; cache dữ liệu lưu các khối dữ liệu. Hai khái niệm có liên quan hiệu năng nhưng không giữ cùng loại thông tin.

Page fault có luôn là lỗi và luôn phải đọc đĩa?

Không. Một truy cập có thể cần hệ điều hành bổ sung ánh xạ hoặc cung cấp trang. Một số trường hợp được xử lý từ dữ liệu đã ở RAM hoặc tạo trang mới, không cần đọc ổ lưu trữ. Trường hợp cần lấy nội dung từ tệp hậu thuẫn thường chậm hơn đáng kể. Truy cập không hợp lệ hoặc vi phạm quyền có thể dẫn tới ngoại lệ mà chương trình không xử lý được.

Trên Windows có phân biệt soft fault và hard fault; hard fault không đồng nghĩa RAM bị hỏng. Hãy đọc ý nghĩa chỉ số trong công cụ giám sát, không suy đoán từ tên. Khi RAM chịu áp lực và hệ thống phải trao đổi nhiều với ổ lưu trữ, ứng dụng có thể chậm rõ rệt.

Tự kiểm tra: vì sao nâng dung lượng SSD không tự tăng dung lượng RAM? Vì sao thêm RAM đôi khi giúp mở nhiều ứng dụng hơn nhưng không làm một phép tính CPU nhanh gấp đôi?

Những điều cần nhớ

  • RAM, cache và lưu trữ có vai trò khác nhau.
  • Bộ nhớ ảo bao gồm ánh xạ địa chỉ và bảo vệ, không chỉ hoán trang xuống ổ đĩa.
  • Page fault không phải lúc nào cũng cần đọc đĩa hoặc báo hỏng phần cứng.

Tài liệu đọc thêm

  • Intel — tài liệu kiến trúc Intel 64 và IA-32
  • Microsoft Learn — không gian địa chỉ ảo
  • Microsoft Learn — working set, soft fault và hard fault

← Bài trước · Bài tiếp theo →

Bài viết liên quan:

Kiến trúc máy tính: CPU, RAM, ALU, bus và bộ nhớ cache
Kiến trúc máy tính – Bài 6: Từ kiến trúc PC đến x86-64 và ARM hiện nay
Kiến trúc máy tính: CPU, RAM, ALU, bus và bộ nhớ cache
Kiến trúc máy tính – Bài 5: Thiết bị vào/ra, ngắt, DMA và RAID
Kiến trúc máy tính: CPU, RAM, ALU, bus và bộ nhớ cache
Kiến trúc máy tính – Bài 3: CPU điều khiển và trao đổi dữ liệu qua bus thế nào?
Kiến trúc máy tính: CPU, RAM, ALU, bus và bộ nhớ cache
Kiến trúc máy tính – Bài 2: CPU thực hiện phép tính 5 + 3 như thế nào?
Kiến trúc máy tính: CPU, RAM, ALU, bus và bộ nhớ cache
Kiến trúc máy tính – Bài 1: Máy tính hoạt động như thế nào?

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 05: Đơn vị và kích thước: px, rem, %, min và max

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 02: Selector và class: chọn đúng phần tử cần sửa

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 01: Kết nối CSS với HTML và sửa quy tắc đầu tiên

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 20: Hoàn thiện website và sửa lỗi bằng DevTools

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 03: Vì sao CSS không có tác dụng? Cascade và specificity

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×