Như với bộ nhớ truy cập ngẫu nhiên thông thường, mỗi vị trí đều có cơ chế định địa chỉ riêng và thời gian truy xuất là không đổi, không phụ thuộc vào vị trí hoặc các kiểu truy cập trước
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC
Kiến Trúc Máy Tính
BÁO CÁO MÔN HỌC Ngành: HỆ THỐNG THÔNG TIN QUẢN LÝ
Giảng viên: Cô Phạm Huyền Linh
Sinh viên thực hiện: Nguyễn Đức Thiện
HÀ NỘI – 2022
Trang 3Lời cảm ơn
Lời đầu tiên, em xin gửi lời cảm ơn chân thành nhất đến cô Phạm Huyền Linh.Trong quá trình học tập và tìm hiểu bộ môn Kiến Trúc Máy Tính, em đã nhận được sự quan tâm giúp đỡ, hướng dẫn rất tận tình và tâm huyết của cô Cô đã giúp em tích luỹ thêm nhiều kiến thức hữu ích thông qua môn học này
Môn Kiến Trúc Máy Tính là một môn học thú vị, vô cùng bổ ích và có tính thực tếcao Và để có thể ứng dụng môn học này một cách thành thục trong cuộc sống sẽ đòi hỏi một quá trình học tập, rèn luyện và tích luỹ kinh nghiệm cả trong và ngoài giảng đường Em rất mong nhận được những lời góp ý của cô để giúp hoàn thiện bài báo cáo và nắm vững hơn các kiến thức của môn học
Em xin chân thành cảm ơn!
Hà Nội, tháng 02 năm 2022
Sinh viên
Nguyễn Đức Thiện
Trang 4Hiệu năng của máy tính luôn là vấn đề được quan tâm nhất của cả người dùng và nhà thiết kế Một trong những thành phần giúp tăng
hiệu năng của máy tính chính là Bộ nhớ đệm (Cache memory) Bài
báo của em sẽ phân tích các thành phần của bộ nhớ đệm và các cáchthức triển khai của bộ nhớ đệm trong hệ thống máy tính
Trang 5Mục lục
Mở đầu ……… ……… 2
Chương 1: Tổng quan về bộ nhớ máy tính……… 3
Đặc điểm của bộ nhớ……… ……….3
Hệ thống phân cấp bộ nhớ……… ………3
Chương 2: Nguyên lý bộ nhớ đệm……… 7
Chương 3: Các thành phần trong thiết kế bộ nhớ đệm………… 11
Địa chỉ bộ nhớ đệm ……… ……… 11
Kích thước bộ nhớ đệm……….12
Chức năng ánh xạ……… 13
Thuật toán thay thế………18
Chính sách ghi………19
Kích thước line……… 20
Số lượng cache………20
Tài liệu tham khảo: ……….……… 22
Trang 7Mở đầu
Mặc dù bộ nhớ có vẻ là một phần cơ bản trong cấu trúc máy tính, tuy nhiên bộnhớ máy tính lại thể hiện một phạm vi tương đối rộng về chủng loại, công nghệ, cách tổ chức, hiệu năng và chi phí của bất kì tính năng nào trong hệ thống máy tính Không một công nghệ riêng biệt nào được tối ưu để thoả mãn các yêu cầu về bộ nhớ cho hệ thống Do đó, một hệ thống máy tính đặc trưng được trang bị một hệ thống phân cấp của hệ thống con của bộ nhớ, cả trong vàngoài máy tính
Báo cáo này sẽ tập trung vào các thành phần bên trong của bộ nhớ cụ thể là bộ nhớ đệm Báo cáo sẽ bắt đầu bằng việc phân tính các đặc điểm chính của bộ
Trang 8Thuật ngữ location (vị trí) trong hình trên biểu thị cho đó là bộ nhớ ngoài
(external) hay trong (internal) của máy tính Bộ nhớ trong của máy tính
thường được hiểu là bộ nhớ chính, nhưng đó chỉ là một loại bộ nhớ trong Bộ
xử lý sẽ cần có bộ nhớ cục bộ của nó, hay còn gọi là các thanh ghi Thêm vào
đó, bộ điều khiển của bộ xử lý có thể cần các bộ nhớ ngoài Cache là một loại
bộ nhớ trong Bộ nhớ ngoài bao gồm các thiết bị lưu trữ ngoại vi như là đĩa cứng /mềm được kết nối với bộ xử lý thông qua bộ điều khiển I/O
Một đặc điểm dễ thấy của bộ nhớ là dung lượng (capacity) Với bộ nhớ
trong, nó có thể biểu diễn thông qua các bytes hoặc words Độ dài thông thường của word là 8, 16 hay 32 bits
Một thuật ngữ cần biết đến là unit of transfer (đơn vị truyền) Với bộ nhớ
trong, unit of transfer bằng với số đường điện vào và ra khỏi module bộ nhớ
Nó cũng có thể bằng với độ dài word, nhưng thường lớn hơn, như là 64, 128 hay 256 bits Để làm rõ điểm này, hãy phân tích ba phần của bộ nhớ trong:
- Word: Đơn vị mặc định của tổ chức bộ nhớ Kích thước của word thường
bằng với số bits được sử dụng để đại diện cho số nguyên và cho độ dài câu lệnh Tuy nhiên, cũng có một vài ngoại lệ Ví dụ, CRAY C90 có độ dài word là 64 bits nhưng sử dụng 46 bits đại diện số nguyên Intel x86 sử dụng đa dạng độ dài câu lệnh với nhiều bytes, và kích thước word là 32 bits
- Đơn vị địa chỉ (Addressable unit): Trong một vài hệ thống, đơn vị địa chỉ
là word, nhiều hệ thống cho phép đánh địa chỉ ở cấp độ byte Bất cứ
trường hợp nào, mối quan giữa độ dài trong bits A của một địa chỉ và số lượng N của đơn vị địa chỉ là 2 A =N.
- Đơn vị truyền (Unit of transfer): Với bộ nhớ chính, đó là số lượng bits
được đọc hay ghi vào bộ nhớ tại một thời điểm Đơn vị truyền không được bằng một word hay một đơn vị địa chỉ Với bộ nhớ ngoài, dữ liệu thường được truyền lớn hơn một word, và được gọi là blocks
Một cách phân biệt khác giữa các loại bộ nhớ là phương thức truy cập các
đơn vị dữ liệu
- Truy cập tuần tự: Bộ nhớ được tổ chức thành các đơn vị dữ liệu, gọi là
bản ghi Truy cập cần được thực hiện theo một trình tự tuyến tính cụ thể Thông tin địa chỉ được lưu trữ và sử dụng để tách các bản ghi và hỗ trợ quá trình truy xuất Một cơ chế đọc ghi chia sẻ được sử dụng, và nó phải được chuyển từ vị trí hiện tại đến vị trí mong muốn, chuyển và từ chối
Trang 9từng bản ghi trung gian Do đó, thời gian để truy cập một bản ghi bất kì cóthể khác nhau
- Truy cập trực tiếp: Như với truy cập tuần tự, truy cập trực tiếp sử dụng
cơ chế đọc ghi chia sẻ Tuy nhiên, mỗi block hay bản ghi có một địa chỉ riêng biệt dựa trên vị trí vật lý
- Truy cập ngẫu nhiên: Mỗi địa chỉ trên bộ nhớ là duy nhất, sử dụng cơ chế
địa chỉ wired-in Thời gian để truy cập một vị trí là không phụ thuộc và các lần truy cập trước đó và không đổi Do đó, mỗi vị trí có thể được chọn một cách ngẫu nhiên và được đánh địa chỉ và truy cập trực tiếp Bộ nhớ chính và một vài hệ thống đệm sử dụng truy cập ngẫu nhiên
- Liên kết: Đây là một loại truy cập ngẫu nhiên của bộ nhớ mà nó cho phép
người ta so sánh các vị trí bit mong muốn trong một word và thực hiện điều này cho tất cả các word đồng thời Do đó, một word được truy xuất dựa trên một phần nội dung của nó chứ không phải địa chỉ Như với bộ nhớ truy cập ngẫu nhiên thông thường, mỗi vị trí đều có cơ chế định địa chỉ riêng và thời gian truy xuất là không đổi, không phụ thuộc vào vị trí hoặc các kiểu truy cập trước đó Bộ nhớ cache có thể sử dụng truy cập liên kết
Với góc nhìn người dùng, hai đặc điểm quan tronng nhất bộ nhớ là dung lượng và hiệu năng Ba thông số hiệu năng được sử dụng là:
- Thời gian truy cập (độ trễ): Với bộ nhớ truy cập ngẫu nhiên, đây là thời
gian cần thiết để thực hiện thao tác đọc hoặc ghi, đó là, thời gian từ thời điểm một địa chỉ được hiển thị trong bộ nhớ đến thời điểm dữ liệu được lưu trữ hoặc sẵn sàng để sử dụng Đối với bộ nhớ truy cập không ngẫu nhiên, thời gian truy cập là thời gian cần thiết để định vị cơ chế độc ghi ở
vị trí mong muốn
- Chu kì bộ nhớ: Khái niệm này chủ yếu được áp dụng cho bộ nhớ truy cập
ngẫu nhiên và bao gồm thời gian truy cập cộng với bất kỳ thời gian bổ sung nào cần thiết trước khi có thể bắt đầu truy cập lần thứ hai Lưu ý rằng thời gian chu kỳ bộ nhớ liên quan đến bus hệ thống, không phải bộ
xử lý
- Tốc độ truyền tải: đây là tốc độ mà dữ liệu có thể được chuyển vào hoặc
ra khỏi một đơn vị bộ nhớ Đối với bộ nhớ truy cập ngẫu nhiên, nó bằng 1/(chu kì bộ nhớ) Đối với bộ nhớ truy cập không ngẫu nhiên, công thức sau đây giữ nguyên: Tn = TA + n/R
Trang 10TA = thời gian truy cập trung bình.
n = Số lượng bits
R = tốc độ truyền tải, bits trên giây
Có rất nhiều loại bộ nhớ vật lý đã được sử dụng Phổ biến nhất hiện nay là bộnhớ bán dẫn, bộ nhớ bề mặt từ tính, được sử dụng cho đĩa và băng, quang học quang từ
Hệ thống phân cấp bộ nhớ
Có những hạn chế về thiết kế đối với bộ nhớ của máy tính có thể được tóm gọn bằng ba câu hỏi: Dung lượng bao nhiêu ? Nhanh như thế nào? Chi phí ra sao?
Câu hỏi đầu tiên phần nào đã được giải đáp Nếu với dung lượng tương ứng,các ứng dụng có thể sẽ được phát triển để sử dụng nó Câu hỏi tiếp theo, Theo một cách nào đó có thể dễ dàng trả lời hơn Để đạt được hiệu năng cao nhất, bộ nhớ phải có khả năng theo kịp bộ xử lý Có nghĩa là, khi bộ xử lý đang thực hiện các lệnh, chúng ta sẽ không muốn nó phải tạm dừng để cho các lệnh khác Câu hỏi cuối cùng còn phải được xem xét Đối với một hệ thống thực tế, chi phí của bộ nhớ phải hợp lý tương xứng với các thành phần khác
Như dự đoán, có sự đánh đổi giữa ba đặc điểm chính của bộ nhớ: dung lượng, thời gian truy cập và chi phí Nhiều công nghệ khác nhau được sử dụng để triển khai các hệ thống bộ nhớ, và trên toàn bộ các công nghệ này các mối quan hệ sau được giữ nguyên:
- Thời gian truy cập nhanh hơn, chi phí tăng trên mỗi bit;
- Dung lượng lớn hơn, chi phí mỗi bit nhỏ hơn;
- Dung lượng lớn hơn, thời gian truy cập chậm hơn
Một vài tình huống mà nhà thiết kế cần phải đối mặt có thể kể đến khá rõ ràng Nhà thiết kế muốn sử dụng các công nghệ cung cấp cho bộ nhớ dung lượng lớn, vì dung lượng là cần thiết và chi phí cho mỗi bit thấp Tuy nhiên,
để đáp ứng các yêu cầu về hiệu năng, nhà thiết kế cần sử dụng các bộ nhớ đắttiền, dung lượng tương đối thấp với thời gian truy cập ngắn
Trang 11Cách thoát khỏi tình thế tiến thoái lưỡng nan này không phải dựa vào một thành phần hoặc công nghệ đơn lẻ, mà là sử dụng một hệ thống phân cấp bộ nhớ Một hệ thống phân cấp điển hình được minh họa trong hình dưới đây khi sử dụng hệ thống phân cấp những điều sau đây sẽ xảy ra:
1 Giảm chi phí trên mỗi bit
2 Tăng dung lượng
3 Tăng thời gian truy cập
4 Giảm tần suất truy cập bộ nhớ của bộ xử lý
Do đó, các bộ nhớ nhỏ hơn, đắt hơn, nhanh hơn được bổ sung bởi những bộ nhớ lớn hơn, rẻ hơn, chậm hơn Chìa khoá tạo nên sự thành công của cách tổ chức này là thành phần thứ (4): giảm tần suất truy cập Sử dụng bộ nhớ 2 cấp
để giảm thiểu thời gian truy cập trung bình hoạt động chỉ khi các điều kiện từmột đến bốn được áp dụng Bằng việc sử dụng đa dạng công nghệ, nhiều hệ thống nhớ đã thoả mãn điều kiện 1 đến 3 May mắn là điều kiện 4 rất dễ để
Trang 12trăm truy cập vào từng cấp thấp hơn đáng kể so với cấp trên.
Chương 2: Nguyên lý bộ nhớ đệm
Bộ nhớ đệm được thiết kế để kết hợp các bộ nhớ có thời gian truy cập tốc
độ cao, đắt tiền với các bộ nhớ có tốc độ thấp hơn và ít tiền hơn Khái niệmnày được minh họa trong hình dưới đây Có một bộ nhớ chính tương đối lớn và trận cùng với một bộ nhớ đệm nhỏ hơn, nhanh hơn Bộ nhớ đệm chứa một bản sau các phần của bộ nhớ chính Khi bộ xử lý cố gắng đọc từ
bộ nhớ, việc kiểm tra sẽ được thực hiện để xác định xem dữ liệu đó có trong bộ nhớ đệm hay không Nếu có dữ liệu sẽ được chuyển đến bộ xử lý.Nếu không, một block bộ nhớ chính, bao gồm một số dữ liệu cố định, đượcghi vào bộ nhớ đệm sau đó chuyển đến bộ xử lý
Trang 13Hình dưới đây mô tả cấu trúc của hệ thống bộ nhớ đệm trên bộ nhớ chính
Trang 14một địa chỉ n bit duy nhất Đối với mục đích ánh xạ, bộ nhớ này được coi
là bao gồm một số block có độ dài cố định gồm K word mỗi block Tức là
có M = 2n / K block trong bộ nhớ chính Bộ nhớ đệm bao gồm m block, được gọi là line Mỗi line chứa K word, cộng thêm một vài bit tag Mỗi linecũng bao gồm các bit điều khiển, như bit để xác định liệu line có được thayđổi từ khi được ghi vào bộ nhớ đệm Độ dài của line, không bao gồm bit điều khiển được gọi là kích thước line Kích thước line có thể là 32 bit, với mỗi word là một byte; trong trường hợp đó kích thước line là 4 byte Số lượng line được cho là nhỏ hơn rất nhiều so với số lượng block của bộ nhớ chính Ở bất kì thời điểm nào, một vài block con của bộ nhớ được truyền tới một trong các line của bộ nhớ đệm Bởi vì có nhiều block hơn trong line, một line độc lập không thể được chỉ định cho một block cụ thể vĩnh viễn Do đó, mỗi line bao gồm một tag nhằm phân biệt các block được lưu trữ Tag thường là một phần của địa chỉ bộ nhớ chính
Hình dưới đây miêu tả thao tác đọc Bộ xử lý tạo địa chỉ đọc của một word.Nếu word đó đã được lưu trữ trong bộ đệm, nó sẽ được chuyển đến bộ xử
lý Nếu không, block chưa word đó sẽ được lưu vào bộ đệm, và word đó
sẽ được chuyển tới bộ xử lý Hin
Trang 15Hình trên cũng cho thấy hai thao tác cuối cùng diễn ra đồng thời và tương ứng với cách tổ chức trong hình dưới đây
Trang 16Trong cách tổ chưc này, bộ nhớ đệm kết nối với bộ xử lý thông qua các line
dữ liệu, điều khiển, và địa chỉ Line dữ liệu và địa chỉ cũng gắn với dữ liệu
và địa chỉ đệm và được gắn với bus hệ thống từ bộ nhớ chính Khi bộ nhớ đệm được truy cập, các dữ liệu và địa chỉ đệm được gọi đến chỉ trong bộ nhớ chính và bộ nhớ đệm Khi bộ nhớ đệm truy cập dữ liệu bị thiếu, địa chỉ được lưu vào bus hệ thống và trả ngược về thông qua dữ liệu đệm đến
cả bộ nhớ đệm và bọ xử lý Trong một cách tổ chức khác, bộ nhớ đệm đượcthêm vào giữa bộ xử lý và bộ nhớ chính để dùng với mọi line địa chỉ, dữ liệu và điều khiển Ở trường hợp cuối cùng, với mỗi lần thiếu dữ liệu trong bộ nhớ đệm, word sẽ được ghi vào bộ đệm và chuyển tới bộ xử lý
Chương 3: Các thành phần trong thiết
kế bộ nhớ đệm
Địa chỉ bộ nhớ đệm
Hầu hết các bộ xử lý không mã hoá và bộ xử lý nhúng đều hỗ trợ bộ nhớ
ảo Về bản chất, bộ nhớ ảo là một nơi cho phép các chương trình định địa chỉ cho bộ nhớ một cách logic mà không quan tâm đến dung lượng của bộ nhớ chính Khi bộ nhớ ảo được sử dụng, các trường địa chỉ trong câu lệnh máy tính sẽ chứa các địa chỉ ảo Để đọc và ghi từ bộ nhớ chính, đơn vị tổ chức phần cứng bộ nhớ (hardware memory management unit - MMU) sẽ dịch mỗi địa chỉ ảo thành địa chỉ vật lý trong bộ nhớ chính
Trang 17Khi bộ nhớ ảo được sử dụng, nhà thiết kế hệ thống có thể chọn đặt bộ nhớ đệm giữa bộ xử lý và đơn vị quản lý phần cứng bộ nhớ (MMU) hoặc giữa MMU và bộ nhớ chính
Một bộ nhớ đệm logic, hay còn còn là bộ nhớ đệm ảo, lưu dữ liệu bằng địa chỉ ảo Bộ xử lý sẽ truy cập bộ nhớ đệm trực tiếp không cần thông qua MMU Một bộ nhớ đệm vật lý lưu dữ liệu sử dụng địa chỉ vật lý của bộ
Trang 18hơn bộ nhớ vật lý, bởi vì bộ nhớ đệm có thể phản hồi trước khi MMU thực hiện dịch địa chỉ Nhược điểm của nó là trên thực tế hầu hết các hệ thống
bộ nhớ ảo cung cấp cho mỗi ứng dụng cùng một không gian địa chỉ bộ nhớ ảo Tức là mỗi ứng dụng đều có bộ nhớ ảo bắt đầu từ địa chỉ 0 Do đó, với cùng một địa chỉ ảo trong hai ứng dụng khác nhau lại trỏ đến hai địa chỉ vật lý khác nhau Bộ nhớ đệm cần phải được xoá hoàn toàn khi chuyển đổi ứng dụng hoặc các bit bổ sung phải được thêm vào mỗi line của bộ đệm để xác định không gian địa chỉ ảo tương ứng
Kích thước bộ nhớ đệm
Thành phần thứ 2 của bộ nhớ đệm là kích thước bộ nhớ Chúng ta muốn kích thước bộ nhớ đệm nhỏ để có thể chi phí trung bình trên mỗi bit gần với bộ nhớ chính và đủ lớn để thời truy cập trung bình tiệm cận với bộ nhớđệm Có nhiều lý do để giảm kích thước bộ nhớ đệm Bộ nhớ đệm càng lớnthì số lượng cổng cũng gia tăng khi định địa chỉ của bộ nhớ đệm Kết quả
là với bộ nhớ đệm lớn thì tốc độ sẽ chậm hơn với bộ nhớ nhỏ
Chức năng ánh xạ
Bởi vì các line của bộ nhớ đệm ít hơn block của bộ nhớ chính, một thuật toán được sử dụng để map giữa các block bộ nhớ với line bộ nhớ đệm Hơn nữa, cần một phương tiện để xác định block nào của bộ nhớ chính đang chiếm line của bộ nhớ đệm Lựa chọn chức năng ánh xạ quyết định cách tổ chức bộ nhớ đệm Ba kỹ thuật có thể sử dụng là: Trực tiếp, liên kết
và liên kết tập hợp Trong mỗi trường hợp, chúng ta xem xét cấu trúc chung và sau đó là ví dụ cụ thể
Trang 19Ánh xạ trực tiếp Đây là kỹ thuật đơn giản nhất, ánh xạ mỗi block của bộ
nhớ chính tới một line của bộ nhớ đệm Hình dưới đây biểu diễn ánh xạ cho m blcok đầu tiên của bộ nhớ chính Mỗi block ánh xạ đến một line duynhất của bộ nhớ đệm