Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

Translation Lookaside Buffer (TLB), một thành phần được sử dụng trong các hệ thống con quản lý bộ

nhớ để cải thiện thời gian truy cập cho các mục trong bảng trang trong hệ điều hành.

Trong thiết lập quản lý bộ nhớ truyền thống, mỗi quy trình có bảng trang riêng, chứa các mục ánh xạ
địa chỉ bộ nhớ ảo thành địa chỉ bộ nhớ vật lý (số khung). Việc truy cập các mục này bao gồm việc đọc
từ bảng trang nằm trong bộ nhớ chính. Tuy nhiên, điều này phát sinh chi phí đáng kể về thời gian truy
cập, gần gấp đôi thời gian để truy cập dữ liệu trong bộ nhớ chính.

Để giảm thiểu chi phí này, TLB được giới thiệu như một cơ chế bộ đệm. TLB hoạt động như một bộ
đệm tốc độ cao cho các mục trong bảng trang, nằm giữa CPU và bộ nhớ chính. Nó lưu trữ các mục
trong bảng trang được truy cập gần đây, tận dụng tính chất tốc độ cao của nó để cung cấp thời gian
truy cập nhanh hơn so với việc tìm nạp các mục trực tiếp từ bộ nhớ chính.

Tuy nhiên, TLB có những hạn chế, chủ yếu là do giá thành cao. Kết quả là TLB có dung lượng hạn chế
so với bộ nhớ chính. Hạn chế này đòi hỏi các chính sách quản lý và thay thế hiệu quả để đảm bảo
rằng các mục trong bảng trang phù hợp nhất được lưu trữ trong TLB nhằm tối đa hóa hiệu quả của nó
trong việc giảm chi phí thời gian truy cập.

Đoạn văn này đi sâu hơn vào chức năng và thiết lập của Translation Lookaside Buffer (TLB), tập trung
vào phương pháp truy cập và quy trình thiết lập của nó.

**Phương thức truy cập TLB:**

- TLB được mô tả là một thiết bị lưu trữ bộ nhớ (MEMPHY) được trang bị cơ chế ánh xạ để liên kết
nội dung với thông tin định danh.

- Nó tận dụng các kỹ thuật ánh xạ bộ nhớ đệm từ các khóa học phần cứng máy tính, bao gồm ánh xạ
trực tiếp, ánh xạ liên kết tập hợp hoặc ánh xạ liên kết đầy đủ.

**Cài đặt TLB:**

- TLB chứa các mục trong bảng trang được sử dụng gần đây.

- Khi CPU tạo địa chỉ ảo, nó sẽ kiểm tra TLB.

- Nếu có một mục trong bảng trang (TLB hit), số khung tương ứng sẽ được truy xuất.
- Nếu không tìm thấy mục bảng trang (TLB miss), số trang được dùng làm chỉ mục để truy cập bảng
trang trong bộ nhớ chính. Nếu trang không có trong bộ nhớ chính thì sẽ xảy ra lỗi trang và TLB được
cập nhật với mục nhập trang mới.

**TLB Hit:**

- CPU tạo địa chỉ ảo.

- TLB được kiểm tra (mục nhập hiện tại).

- Số khung (frame) tương ứng được lấy ra.

**TLB Miss:**

- CPU tạo địa chỉ ảo.

- TLB đã được kiểm tra (không có mục nhập).

- Số trang khớp với bảng trang trong bộ nhớ chính.

- Số khung (frame) tương ứng được lấy ra.

Hơn nữa, đoạn văn này gợi ý một phương pháp thiết kế ánh xạ bộ đệm, nhấn mạnh rằng vì TLB
được chia sẻ bởi tất cả các quy trình hệ thống và hoạt động ở cấp độ CPU nên mã định danh quy
trình (pid) là cần thiết để ánh xạ hiệu quả. Nó cũng lưu ý rằng thiết kế không cố định nhưng cung cấp
đề xuất dựa trên ID tiến trình (pid) và số trang để tối ưu hóa việc sử dụng TLB.

-------------------------------------------------------------------------------------------------------------

Đoạn lý thuyết này đề cập đến cách mà các hoạt động của TLB (tlballoc/tlbfree/tlbread/tlbwrite) diễn
ra trước khi bộ địa chỉ được gán cho các trang nhớ (memory paging) bắt đầu hoạt động
(__alloc/__free/__read/__write). Khi người dùng gửi các yêu cầu về bộ nhớ, hệ thống sẽ chuyển
qua các tầng này theo một trình tự cụ thể, và sau đó trình tự này lại được thực hiện ngược lại khi
địa chỉ nhận được.

Bởi vì mô hình lập trình của hệ thống có tính phân cấp, nếu cảm thấy cần thiết, bạn có thể triển khai
các cập nhật TLB CACHED trong bất kỳ module nào (tlb hoặc mm-vm) thông qua việc bypassing giữa
các module. Một bit được thiết kế sẽ được dành riêng cho mục đích thao tác trang, và chúng tôi hy
vọng rằng phần được dành này sẽ hữu ích.
Trong một hoạt động tổng quát (thay thế xxx bằng alloc/free/read/write), các thao tác TLB sẽ được
thực hiện trước, sau đó mới đến các hoạt động liên quan đến việc gán bộ địa chỉ cho các trang nhớ.
Điều này giúp tối ưu hóa hiệu suất của hệ thống và giảm thiểu thời gian truy cập vào bộ nhớ chính.

Các hoạt động cụ thể được mô tả như sau:

1. **__alloc (Allocate):**

- Khi một quá trình cần tạo một trang mới trong không gian địa chỉ của nó, hoạt động __alloc sẽ
được gọi.

- Trong ngữ cảnh của TLB, trước khi trang mới được tạo, hệ thống sẽ cần cập nhật TLB để đảm bảo
rằng nó sẽ biết vị trí mới của trang này trong bộ nhớ vật lý.

2. **__free (Free):**

- Khi một trang không còn cần thiết nữa và được giải phóng, hoạt động __free sẽ được gọi.

- Trong ngữ cảnh của TLB, khi một trang được giải phóng, thông tin về trang này cũng cần được loại
bỏ hoặc cập nhật trong TLB để tránh sự không nhất quán hoặc lỗi.

3. **__read (Read):**

- Khi quá trình muốn đọc dữ liệu từ một vị trí cụ thể trong không gian địa chỉ của nó, hoạt động
__read sẽ được gọi.

- Trong ngữ cảnh của TLB, trước khi quá trình có thể đọc dữ liệu, nó cần biết vị trí của trang tương
ứng trong bộ nhớ vật lý. TLB được sử dụng để kiểm tra xem thông tin này đã được lưu trữ trong TLB
hay không.

4. **__write (Write):**

- Khi quá trình muốn ghi dữ liệu vào một vị trí cụ thể trong không gian địa chỉ của nó, hoạt động
__write sẽ được gọi.

- Trong ngữ cảnh của TLB, quá trình cần biết vị trí của trang tương ứng trong bộ nhớ vật lý trước khi
thực hiện ghi. TLB cũng được sử dụng để kiểm tra xem thông tin này đã được lưu trữ trong TLB hay
không, để giảm thiểu thời gian truy cập vào bộ nhớ chính.

Đoạn lý thuyết này đề cập đến việc phát triển tiên tiến hơn trong cộng đồng phát triển thực tế, trong
đó không gắn liền với TLB mà thay vào đó là một phương pháp bộ nhớ cache cơ bản mà các nhà sản
xuất cạnh tranh về hiệu suất và tỷ lệ trúng đúng.
**Tạo cache:**

- Trong một hệ thống thực sự, trước khi xóa hoặc cập nhật nhẹ nội dung cache, họ duy trì một phiên
bản hoặc thế hệ cache có tên (ví dụ như tlb_gen) và xác minh rằng thế hệ này đã trải qua sự thay đổi
đáng kể về bộ nhớ. Tuy nhiên, điều này có thể được loại bỏ cho yêu cầu tối thiểu.

**Ngưỡng vùng địa phương: (critical section)**

- Để duy trì các mục TLB đã được phân bổ phù hợp với vùng địa phương hiện tại, chúng ta thêm một
mục sau khi một truy xuất bộ nhớ đạt đến một ngưỡng nhất định.

**Bảng trang nhiều cấp:**

- Bảng trang nhiều cấp có thể hiệu quả hơn khi không gian địa chỉ ảo nhỏ hoặc trung bình. TLB nên
được sử dụng hiệu quả hơn với bảng trang nhiều cấp bằng cách giảm số lượng mục cần tìm kiếm. Tuy
nhiên, việc triển khai bảng trang nhiều cấp phức tạp hơn.

Tóm lại, đoạn này giải thích về cách các hệ thống thực tế có thể cải thiện hiệu suất và tỷ lệ trúng đúng
của bộ nhớ cache bằng cách sử dụng các kỹ thuật như duy trì phiên bản cache, xác định ngưỡng vùng
địa phương và sử dụng bảng trang nhiều cấp một cách hiệu quả.

Question: What will happen if the multi-core system has each CPU core can be run in
a different context, and each core has its own MMU and its part of the core (the TLB)?
In modern CPU, 2-level TLBS are common now, what is the impact of these new
memory hardware configurations to our translation schemes?

Câu hỏi: Điều gì sẽ xảy ra nếu hệ thống đa lõi có mỗi lõi CPU có thể chạy trong một bối cảnh khác
nhau và mỗi lõi có MMU riêng và một phần lõi của nó (TLB)? Trong CPU hiện đại, TLBS 2 cấp hiện nay
đã phổ biến, tác động của các cấu hình phần cứng bộ nhớ mới này đối với sơ đồ dịch thuật của chúng
ta là gì?

Trong hệ thống đa lõi trong đó mỗi lõi CPU có thể chạy trong một bối cảnh khác nhau và có Bộ quản
lý bộ nhớ (MMU) và Bộ đệm tra cứu dịch thuật (TLB) riêng, một số hàm ý sẽ nảy sinh:

1. **Cách ly giữa các lõi CPU:** Mỗi lõi CPU hoạt động độc lập với MMU và TLB riêng. Điều này cho
phép cách ly tốt hơn giữa các lõi, vì mỗi lõi có thể có không gian địa chỉ và cơ chế dịch thuật riêng. Nó
làm giảm sự tranh chấp về các mục TLB giữa các lõi, điều này có thể cải thiện hiệu năng hệ thống tổng
thể.
2. **Sự gắn kết TLB:** Với mỗi lõi có TLB riêng, việc duy trì sự gắn kết TLB trở thành một mối quan
tâm. Khi một lõi sửa đổi mục nhập bảng trang, TLB của các lõi khác có thể cần được cập nhật để phản
ánh sự thay đổi. Việc đảm bảo sự gắn kết TLB có thể phức tạp và có thể yêu cầu cơ chế đồng bộ hóa
phần mềm hoặc hỗ trợ phần cứng bổ sung.

3. **Hiệu quả của sơ đồ dịch:** Với các CPU hiện đại thường sử dụng TLB 2 cấp, tác động lên sơ đồ
dịch có thể khác nhau:

- **Tỷ lệ trúng TLB được cải thiện:** TLB đa cấp có thể dẫn đến tỷ lệ trúng TLB cao hơn vì chúng
mang lại sự linh hoạt hơn trong việc quản lý các mục nhập TLB một cách hiệu quả.

- **Giảm chi phí dịch thuật:** Với mỗi lõi có TLB riêng, chi phí dịch thuật có thể giảm xuống vì mỗi
lõi có thể duy trì ánh xạ dịch riêng của mình một cách độc lập.

- **Sự phức tạp trong quản lý TLB:** Việc quản lý TLB trên nhiều lõi và cấp độ có thể gây ra sự
phức tạp trong các chính sách và thuật toán quản lý TLB. Sự phối hợp giữa TLB và cấu trúc bảng trang
có thể trở nên phức tạp hơn để đảm bảo truy cập bộ nhớ hiệu quả.

Nhìn chung, trong khi các hệ thống đa lõi với MMU và TLB riêng lẻ mang lại lợi ích về khả năng cách ly
và có khả năng cải thiện hiệu suất, chúng cũng đưa ra những thách thức liên quan đến sự gắn kết TLB
và độ phức tạp trong quản lý. Việc tận dụng hiệu quả các tính năng CPU hiện đại như TLB đa cấp đòi
hỏi phải cân nhắc cẩn thận trong việc thiết kế sơ đồ dịch thuật và chiến lược quản lý bộ nhớ.

Phần này giới thiệu khái niệm kiểm soát cấu hình bằng cách sử dụng các định nghĩa không đổi để
quản lý các tính năng khác nhau trong hệ thống, đặc biệt tập trung vào việc triển khai theo định
hướng phân trang. Dưới đây là bảng phân tích các điểm chính:

1. **Tính năng cách ly:** Cách tiếp cận này bao gồm việc cách ly từng tính năng thông qua hệ thống
cấu hình. Bằng cách đó, sự can thiệp giữa các mô-đun chương trình hướng tính năng sẽ được giảm
thiểu. Điều này có nghĩa là các hệ thống con khác nhau có thể được duy trì riêng biệt trong một phiên
bản duy nhất của cơ sở mã.

2. **Tận dụng Cơ chế Cấu hình:** Cơ chế cấu hình cho phép kiểm soát các khía cạnh khác nhau của
chương trình mô phỏng. Việc kiểm soát này được thực hiện dễ dàng thông qua việc sử dụng các định
nghĩa hằng số, thường được quản lý trong tệp có tên include/os-cfg.h. Tệp này đóng vai trò là vị trí
trung tâm để định cấu hình các tham số và cài đặt khác nhau liên quan đến chương trình mô phỏng.

3. **Ứng dụng vào Quản lý bộ nhớ phân trang:** Mặc dù cách tiếp cận kiểm soát cấu hình áp dụng
rộng rãi cho việc phát triển hệ thống, phần này đặc biệt tập trung vào ứng dụng của nó vào quản lý
bộ nhớ phân trang. Nó gợi ý rằng nếu một người đang làm việc trên các phần khác, chẳng hạn như
phần lập lịch, thì nên giữ nguyên các cài đặt mặc định và tránh thực hiện các thay đổi đáng kể đối với
các giá trị cấu hình liên quan đến quản lý bộ nhớ phân trang.

Tóm lại, phần này nhấn mạnh tầm quan trọng của kiểm soát cấu hình trong việc quản lý các tính năng
khác nhau của hệ thống và nhấn mạnh ứng dụng của nó để quản lý bộ nhớ phân trang trong bối cảnh
phát triển hệ thống.

You might also like