Kiến trúc máy tính là bộ môn trong nhiều ngành về phần cứng, slide bài giảng của Gv Nguyễn Thanh Đăng hy vọng sẽ giúp bạn đọc hiểu rõ về môn Học kiến trúc máy tính, cũng như giúp các bạn sinh viên có tài liệu tham khảo từ đại học Công nghiệp thành phố Hồ Chí Minh
Trang 1HỆ THỐNG BỘ NHỚ PHÂN CẤP
GV.Ths : Nguyễn Thanh Đăng
Trang 25.1 Giới Thiệu :
Trang 35.2 Bộ nhớ Phân Cấp Và Các Khái Niệm :
- Khả năng hiệu suất của bộ nhớ hiện đại là bộ nhớ phân cấp Không phải tất cả các bộ nhớ đều được tạo ra ngang nhau,
một số kém hiệu quả hơn
- Để giải quyết sự chênh lệch này, ngày nay kết hợp các kiểu
bộ nhớ để cung cấp hiệu suất cao nhất với giá thành ít nhất Cách tiếp cận này được gọi là bộ nhớ phân cấp Bộ nhớ càng nhanh thì giá thành càng cao
- Việc sử dụng bộ nhớ chia sẻ, với mỗi tốc độ truy cập và
dung lượng khác nhau, 1 hệ thống máy tính có thể nâng cao hiệu suất trên cả khả năng có thể của chúng khi không kết
hợp các loại khác nhau lại
Trang 4Hệ thống bộ nhớ phân cấp bao gồm:
- Các thanh ghi.
- Cache.
- Bộ nhớ chính và bộ nhớ phụ.
Trang 51.DRAM :
• DRAM được cấu tạo từ các tụ điện nhỏ , đòi hỏi cung cấp điện năngliên tục mỗi vài mili giây để duy trì dữ liệu
• Các loại DRAM:
Multibank DRAM (MDRAM) :
Fast-Page Mode (FPM) DRAM :
Trang 6Extended Data Out (EDO) DRAM Burst EDO DRAM (BEDO DRAM)
Synchronous Dynamic Random Synchronous-Link (SL) DRAMAccess Memory (SDRAM)
Trang 7Double Data Rate (DDR) SDRAM
Direct Rambus (DR) DRAM
Trang 9• Tuy nhiên người thiết kế sử dụng DRAM bởi vì nó có thể lưu trữ
nhiều bit trên 1 chip, tiêu tốn ít điện năng, và tỏa nhiệt ít hơn SRAM
• Vì những lý do đó, cả hai công nghệ này được kết hợp sử dụng:
DRAM cho bộ nhớ chính và SRAM cho bộ nhớ cache
• Hoạt động cơ bản của tất cả bộ nhớ DRAM đều tương tự nhau, nhưng vẫn có nhiều đặc thù
Trang 103.Flash :
• Về mặt kỹ thuật thì bộ nhớ flash có thể được dùng như một loại
EEPROM mà ở đó nó có thể được đọc/ghi bằng điện và không mất dữ liệu khi ngừng cung cấp điện Có 2 kiểu bộ nhớ flash chính đã được tạo ra là NAND và NOR được cấu thành từ các cổng logic Bộ nhớ
flash được cấu thành từ các phần tử (cell) nhớ riêng rẽ với các đặc
tính bên trong giống như những cổng logic tương ứng đã tạo ra nó;
do đó, ta có thể thực hiện thao tác đọc/ ghi, lưu trữ dữ liệu theo từng phần tử (cell) nhớ một
• Khác với các bộ nhớ EPROMs phải được xóa trước khi được ghi lại, thì
bộ nhớ flash kiểu cổng NAND có thể được ghi và đọc theo từng khối (block) hoặc trang (page) nhớ, còn bộ nhớ flash kiểu cổng NOR thì có thể được đọc hoặc ghi một cách độc lập theo từng từ (word) hoặc
byte nhớ của máy.[2]
Trang 11• Các chip nhớ flash nhỏ được sử dụng trong bộ nhớ dữ liệu cấu hình tĩnh của máy tính, trong máy dân dụng như tivi, quạt, Các chip lớn thì dùng trong máy nghe nhạc kĩ thuật số, máy ảnh kĩ thuật số, điện thoại di động Nó cũng được sử dụng trên các máy trò chơi, thay thế cho EEPROM, hoặc cho RAM tĩnh nuôi bằng pin để lưu dữ liệu của trò chơi.
Trang 124.Đĩa Từ :
• Đĩa từ (platter): Đĩa thường cấu tạo bằng nhôm hoặc thuỷ tinh, trên bề mặt được phủ một lớp vật liệu từ tính là nơi chứa dữ liệu Tuỳ theo
hãng sản xuất mà các đĩa này được sử dụng một hoặc cả hai mặt trên
và dưới Số lượng đĩa có thể nhiều hơn một, phụ thuộc vào dung lượng
và công nghệ của mỗi hãng sản xuất khác nhau
• Mỗi đĩa từ có thể sử dụng hai mặt, đĩa cứng có thể có nhiều đĩa từ,
chúng gắn song song, quay đồng trục, cùng tốc độ với nhau khi hoạt động
• Ổ đĩa cứng, hay còn gọi là ổ cứng (tiếng Anh: Hard Disk Drive, viết tắt: HDD) là thiết bị dùng để lưu trữ dữ liệu trên bề mặt các tấm đĩa
hình tròn phủ vật liệu từ tính
Trang 13• Ổ đĩa cứng là loại bộ nhớ "không thay đổi" (non-volatile), có nghĩa là chúng không bị mất dữ liệu khi ngừng cung cấp nguồn điện cho
chúng
• Ổ đĩa cứng là một thiết bị rất quan trọng trong hệ thống bởi chúng
chứa dữ liệu thành quả của một quá trình làm việc của những người
sử dụng máy tính Những sự hư hỏng của các thiết bị khác trong hệ thống máy tính có thể sửa chữa hoặc thay thế được, nhưng dữ liệu bị mất do yếu tố hư hỏng phần cứng của ổ đĩa cứng thường rất khó lấy lại được
Trang 155.4 Bộ nhớ đệm và các cách tổ
chức bộ nhớ đệm
5.4.1 Bộ nhớ đệm( Cache)
Bộ nhớ đệm là thuật ngữ tổng quát dùng để miêu tả một nơi lưu trữ dữ liệu tạm thời
để tận dụng ưu thế của 2 nguyên tắc cục bộ về mặt thời gian và không gian
Đây là bộ nhớ bán dẫn có tốc độ nhanh và chúng được đặt đệm giữa CPU và bộ nhớ
chính nhằm tăng tốc độ truy xuất của CPU tới bộ nhớ chính
Dung lượng nhỏ hơn rất nhiều bộ nhớ chính
Tốc độ nhanh hơn rất nhiều
Trang 16 Vai trò của bộ nhớ đệm:
• Nâng cao hiệu năng hệ thống:
• Dung hòa giữa CPU có tốc độ cao và bộ nhớ chính tốc độ thấp (giảm số lượng truy cập trực tiếp của CPU vào bộ nhớ chính)
• Thời gian trung bình CPU truy cập hệ thống bộ nhớ gần bằng thời gian truy cập cache
Trang 17 Các nguyên lý hoạt động của bộ nhớ đệm:
Cache được coi là bộ nhớ thông minh:
• Cache có khả năng đoán trước yêu cầu về lệnh và dữ liệu của CPU
• Dữ liệu và lệnh cần thiết được chuyển trước từ bộ nhớ chính về cache -> CPU chỉ truy nhập cache -> giảm thời gian truy nhập bộ nhớ
Cache hoạt động dựa trên 2 nguyên lý cơ bản:
• Nguyên lý cục bộ/ lân cận về không gian (spatial locality)
• Nguyên lý cục bộ/ lân cận về thời gian (temporal locality)
Trang 18• Giả sử bộ nhớ đệm đang chứa nội dung các khối từ X1 cho đến Xn-1 Có thể thấy các khối
từ X1 đến Xn-1 không theo một trật tự nào cả Giả sử bộ nhớ cần truy xuất nội dung của
khối dịa chỉ Xn trong bộ nhớ chính, theo như nguyên tắc truy xuất bộ xử lý sẽ tìm kiếm bộ nhớ đệm đầu tiên và trong trường hợp này sẽ có một lần trật ở bộ nhớ đệm xảy ra Do đó nội dung của khối Xn sẽ được chép từ bộ nhớ chính vào một khối còn trống trong bộ nhớ đệm
Trang 19• Tổng số bit nhớ cần thiết để thực hiện một khối trong bộ nhớ đệm được tính theo công thức:
Trang 205.4.2 Bộ nhớ đệ tổ chức theo phương pháp ánh xạ trực tiếp
• Ý tưởng phương pháp ánh xạ trực tiếp
• Trong phương pháp này, mỗi khối trong bộ nhớ đệm sẽ có 1 địa chỉ xác định Tuy nhiên, để dễ phân biệt với địa chỉ của bộ nhớ chính thì địa chỉ trong bộ nhớ đệm thường được gọi là ‘chỉ số’ Khi 1 khối trong bộ nhớ chính được truy xuất, nếu nó chưa tồn tại trong bộ nhớ đệm thì nó sẽ luôn được sao chép vào khối có chỉ số được xác định băng công thức:
chỉ số khối=( địa chỉ khối)modulo(số lượng khối của bộ nhớ đệm)
Trang 21Hiện thực phương pháp ánh xạ trực tiếp
• Trong thực tế, số lượng khối trong bộ nhớ chính và bộ nhớ đệm sẽ nhiều hơn
thay vì 32 và 8 Ngoài ra 1 khối sẽ là sự kết hợp của nhiều từ nhớ
• Địa chỉ của từ nhớ sẽ là địa chỉ của byte có địa chỉ thấp nhất trong số 4 byte liên tục tạo thành từ nhớ.Tuy nhiên không phải từ nhớ liên tục nào cũng tạo thành từ một khối, nguyên tắc tạo khối từ các từ nhớ cũng giống nguyên tắc tạo khối từ
các byte tức là khối sẽ được tạo thành từ 4x n byte.VD: nếu 1 khối có kích thước
4 từ nhớ(16byte) thì địa chỉ khối phải là 0,16,32,
• Khi cần truy xuất dữ liệu là 1 từ nhớ hay một byte thì việc đầu tiên bộ xử lý cần làm là phân chia các bit địa chỉ thành vùng nhãn,chỉ số, độ dời byte
Trang 22Ảnh hưởng của kích thước khối đến tỉ lệ trúng
• Khi tăng kích thước khối thì có thể tận dụng thuộc tính cục bộ vè mặt không gian khi truy xuất bộ nhớ để giảm tỉ lệ trật Tuy nhiên, khi kích thước vùng dữ liệu của
bộ nhớ đệm cố định, tăng kích thước khối sẽ làm giảm số khối có trong bộ nhớ đệm đó, qua đó tăng tính cạnh tranh vị trí giữa các khối được chép lên bộ nhớ
chính
• Kết quả là các khối có thể bị đẩy ra khỏi bộ nhớ đệm dù các từ nhớ hoặc byte nhớ chưa được tham khảo hết
• Có thể thấy rằng khi tăng kích thước khối tù 16byte trên 1 khối thành 32 và 64
byte trên 1 khối thì tỉ lệ trật giảm trên tất cả các bộ nhớ đệm Tuy nhiên khi tiếp tục tăng thì độ giảm này không còn mà thậm chí còn tăng đối với các bộ đệm có kích thước vùng dữ liệu nhỏ như 4KB hoặc 16KB
Trang 23Ví dụ bộ nhớ đệm trong bộ xử lý Intrinsity FastMATH
• Intrinsity FastMATH là 1 hệ thống nhúng sử dụng kiến trúc MIPS và 1 hệ thống bộ đệm hiện thực theo phương pháp ánh xạ trực tiếp
• Bộ xử lý có thể truy xuất dữ liệu và lệnh đồng thời ở mỗi chu kỳ do đó có
2 bộ đệm lệnh và bộ đệm dữ liệu được sử dụng đồng thời
• Bởi vì tồn tại 2 bộ nhớ đệm độc lập nên các tín hiệu đọc ghi các bộ này là độc lập nhau Khi cần truy xuất lệnh hay dữ liệu thì địa chỉ chuyển xuống
bộ nhớ lệnh tương ứng
Trang 24Bộ nhớ đệm tổ chức theo phương pháp toàn phần
• Bộ nhớ đệm được tổ chức theo phương pháp ánh xạ trực tiếp.
• Nhược điểm: phương pháp này một khối trong bộ nhớ chính sẽ
được đặt duy nhất tại một vị trí trong bộ nhớ đệm mà vị trí này sẽchứa rất nhiều các dữ liệu khác
Trang 25• Khi truy xuất ở địa chỉ khối số 18 mặc dù còn nhiều khối
trống chưa chứa dữ liệu ( bit hơp lệ là 0) nhưng khối có địa
chỉ 22 vẵn phải thay thế để nhường chỗ cho khối có địa chỉ số
18 vì 2 khối này cùng được ánh xạ vào khối có chỉ số 2 điều này sẽ làm giảm đi khả năng tận dụng thuộc tính cục bộ về
mặt thời gian
Trang 26VD 5.6: Tính tổng số bit nhớ cần dung để thực hiện bộ nhớ đệm cóthông số như trong vd 5.3 (MIPS có bộ nhớ đệm có 1024 khối, mỗi khối chứa 8byte dữ liệu).
• Đáp án:
• Áp dụng công thức 5.1, tổng số bit cần dùng để hiện thực một khối
trong bộ nhớ đệm trong VD 5.3 theo pp ánh xạ toàn phần sẽ là:
• Số bit/khối = 1+t+d = 1+29+8 (bytes) * 8( bit/byte) = 94
Trang 275.4.4: Bộ nhớ đệm hiện thực theo phương pháp kết hợp
Trang 28Công thức:
• Chỉ số tập hợp = địa chỉ khối modulo số lượng tập hợp
• Hình ảnh minh họa của phương pháp kết hợp 4 chiều:
Trang 295.4.5.THAY TH Ế KHỐI
+ Thay thế khối một việc lựa chọn một khối trong các khối tiềm năng (candidates) trong
bộ nhớ đệm có thể dùng chứa các khối đang được đọc lên từ bộ nhớ chính trong trường hợp tất cả các khối tiềm năng đều đang chứ dữ liệu(bit hợp lệ của các khối này là 1)
+Các phương pháp lựa chọn khối được gọi là
-Giải thuật thay thế khối bộ nhớ đệm (cache replacement algorithms)
-Phương pháp thay thế khối bộ nhớ đệm (cache replacement policise)
Trang 30Các phương pháp thay thế bộ nhớ đệm chú ý :
• Phương pháp thay FIFO
• phương pháp LRU
• phương pháp giả LRU
• phương pháp ngẫu nhiên
• phương pháp tối ưu
Trang 315.4.6.CHIẾN LƯỢC CẬP NHẬT BỘ NHỚ
• Mô hình ghi gửi liệu WRITE-THROUGH
+ Là mô hình ghi dữ liện đơn giản nhất.bộ nhớ sẽ tiến hành ghi dữ liện ở cả hai mức là
bộ nhớ đệm và bộ nhớ chính mỗi khi thực hiện lệnh ghi dữ liệu
+Sự đồng nhất giữa dữ liệu giữa hai mức bộ nhớ đệm và bộ nhớ chính luôn được đảm bảo
+Hiệu suất của chiến lược write-through rất thấp ,truy xuất bộ nhớ chính tốn rất nhiều thời g ian so với bộ nhớ đệm
Trang 32Mô hình ghi dữ liệu WRITE-BACK
+Bộ xử lý chỉ cập nhật giá trị của từ nhớ trong bộ nhớ đệm mà không cập nhật giá trị
của nó trong bộ nhớ chính
+ Giá trị dữ liệu chỉ được cập nhật vào bộ nhớ khi khối chứa từ nhớ này trong bộ nhớ đệm bị thay thế
+ Việc thực hiện sẽ phức tạp hơn so với phương pháp write-through
Việc thực hiện sẽ phức tạp hơn so với phương pháp write-through
Trang 335.4.7 ĐÁNH GIÁ VÀ CẢI THIỆN HIỆU SUẤT BỘ NHỚ
ĐỆM
• Đánh giá hiệu suất bộ đệm
Để đánh giá hiệu suất của bộ đệm ,giá trị thời gian truy xuất bộ nhớ trung bình thường được dùng để đánh giá bộ nhớ đệm có thời gia truy xuất trung bình càng nhỏ càng tốt, thời gian truy xuất trung bình được tính bằng công thức:
AMAT = Hit time + Miss rate penalty
Hit time : thời gian truy xuất bộ nhớ đệm
Miss rate: tỉ lệ trật
Miss penalty: thời gian cần thiết để xử lý một lần truy xuất trật
Cải tiến hiệu xuất bộ nhớ đệm
Sử dụng bộ nhớ đệm nhiều mức
Trang 345.5 BỘ NHỚ ẢO
5.5.1 Bộ nhớ ảo và các khái niệm
5.5.2 Tích hợp bộ nhớ ảo, TLB và bộ nhớ đệm
Trang 355.5.1 Bộ nhớ ảo và các khái niệm
• Trong tin học, bộ nhớ ảo là một kĩ thuật quản lý bộ nhớ được thực hiện bởi phần mềm và phần
cứng Nó sẽ liên kết địa chỉ ô nhớ được dùng bởi phần mềm, gọi là địa chỉ ảo, tới địa chỉ vật lý trong bộ nhớ máy tính Bộ nhớ chính được các tác vụ coi như là những khoảng trống có địa chỉ liên tiếp hoặc tập hợp những vùng liên tiếp.
Trang 365.5.1 Bộ nhớ ảo và các khái niệm(tt)
• Đặc điểm:
•Bộ nhớ ảo khiến cho việc lập trình ứng dụng dễ dàng hơn bởi chúng làm ẩn đi sự phân mảnh bộ nhớ vật lý, bằng cách ủy thác cho kernel hệ điều hành sự quản lý phân cấp bộ nhớ (loại bỏ việc chương trình máy tính tự xử lý việc sử dụng chồng ô nhớ)
•Mỗi khi ứng dụng sử dụng không gian bộ nhớ được chỉ định bởi ứng dụng, bộ nhớ ảo sẽ ngăn ngừa việc phân bố lại ô nhớ hoặc cho truy
cập ô nhớ có địa chỉ ảo tương ứng
•Sự ảo hóa bộ nhớ có thể được xem như là sự tổng hợp hóa của bộ nhớkhái niệm ảo
Trang 375.5.1 Bộ nhớ ảo và các khái niệm(tt)
• Sử dụng:
• Bộ nhớ ảo là một phần không thể thiếu của một kiến trúc máy tính
hiện đại,việc sử dụng cần sử hỗ trợ của phần cứng, thông thường dưới hình thức của đơn vị quản lý bộ nhớ được tích hợp trong CPU
• Lợi ích quan trọng nhất của bộ nhớ ảo là đảm nhiệm giùm các ứng
dụng quản lý vùng bộ nhớ được chia sẻ, tăng độ an toàn cho các vùng nhớ và giúp chương trình sử dụng nhiều bộ nhớ nhiều hơn bộ nhớ vật
lý mà phần cứng máy tính có, dựa trên kĩ thuật phân trang
Trang 385.5.1 Bộ nhớ ảo và các khái niệm(tt)
• Tổ chức:
• Cần kết hợp kỹ thuật swapping đển chuyển các phần của
chương trình vào-ra giữa bộ nhớ chính và bộ nhớ phụ khi cần thiết.
• Nhờ việc tách biệt bộ nhớ ảo và bộ nhớ vật lý, có thể tổ chức một bộ nhớ ảo có kích thước lớn hơn bộ nhớ vật lý.
• Bộ nhớ ảo cho phép giảm nhẹ công việc của lập trình viên vì
họ không cần bận tâm đến giới hạn của vùng nhớ vật lý, cũng như không cần tổ chức chương trình theo cấu trúc overlays.
Trang 395.5.1 Bộ nhớ ảo và các khái niệm(tt)
• Quản lí trang và bảng phân trang:
• Một hệ thống phân trang theo yêu cầu là hệ thống sử dụng kỹ thuật phân trang kết hợp với kỹ thuật swapping Một tiến trình được xem như một tập các trang, thường trú trên bộ nhớ phụ ( thường là đĩa) Khi cần xử lý, tiến trình sẽ được nạp vào bộ nhớ chính Nhưng thay
vì nạp toàn bộ chương trình, chỉ những trang cần thiết trong thời
điểm hiện tại mới được nạp vào bộ nhớ Như vậy một trang chỉ được nạp vào bộ nhớ chính khi có yêu cầu.
• Với mô hình này, cần cung cấp một cơ chế phần cứng giúp phân biệt các trang đang ở trong bộ nhớ chính và các trang trên đĩa Có thể sử
dụng lại bit valid-invalid nhưng với ngữ nghĩa mới:
Trang 40Quản lí trang và bảng phân trang
Trang 415.5.1 Bộ nhớ ảo và các khái niệm(tt)
• valid : trang tương ứng là hợp lệ và đang ở trong bộ nhớ chính
• invalid : hoặc trang bất hợp lệ (không thuộc về không gian địa chỉ của
tiến trình) hoặc trang hợp lệ nhưng đang được lưu trên bộ nhớ phụ
• Một phần tử trong bảng trang mộ tả cho một trang không nằm trong bộ
nhớ chính, sẽ được đánh dấu invalid và chứa địa chỉ của trang trên bộ
nhớ phụ
Trang 425.5.1 Bộ nhớ ảo và các khái niệm(tt)
• Cơ chế phần cứng:
• Cơ chế phần cứng hỗ trợ kỹ thuật phân trang theo yêu cầu là sự kết hợp của cơ chế hỗ trợ kỹ thuật phân trang và kỹ thuật swapping:
• Bảng trang: Cấu trúc bảng trang phải cho phép phản ánh tình trạng
của một trang là đang nằm trong bộ nhớ chính hay bộ nhớ phụ
• Bộ nhớ phụ: Bộ nhớ phụ lưu trữ những trang không được nạp vào bộ
nhớ chính Bộ nhớ phụ thường được sử dụng là đĩa, và vùng không gian đĩa dùng để lưu trữ tạm các trang trong kỹ thuật swapping được
gọi là không gian swapping.
Trang 43Hình Bảng trang với một số trang trên bộ
nhớ phụ
Trang 445.5.1 Bộ nhớ ảo và các khái niệm(tt)
• Xử lí lỗi trang:
• Truy xuất đến một trang được đánh dấu bất hợp lệ sẽ làm phát sinh
một lỗi trang (page fault) Khi dò tìm trong bảng trang để lấy các thông
tin cần thiết cho việc chuyển đổi địa chỉ, nếu nhận thấy trang đang được yêu cầu truy xuất là bất hợp lệ, cơ chế phần cứng sẽ phát sinh một ngắt để báo cho hệ điều hành Hệ điều hành sẽ xử lý lỗi trang như sau :
Kiểm tra truy xuất đến bộ nhớ là hợp lệ hay bất hợp lệ
Nếu truy xuất bất hợp lệ : kết thúc tiến trình
Ngược lại : đến bước 3
Tìm vị trí chứa trang muốn truy xuất trên đĩa
Tìm một khung trang trống trong bộ nhớ chính :
Nếu tìm thấy : đến bước 5