Tại sao lại có nhiều loại bộ nhớ khác nhau như vậy? Đó là bởi vì công nghệ liên tục phát triển để cố gắng bắt kịp với các cải tiến trong thiết kế CPU – tốc độ của bộ nhớ phải theo kịp CPU hoặc bộ nhớ trở thành nút cổ chai. Trong những năm gần đây, chúng ta đã nhìn thấy rất nhiều cải tiến trong CPU. Như vậy bộ nhớ cũng phải phát triển để theo kịp được tốc độ của CPU, trong đó bộ nhớ chính là bộ nhớ chậm nhất. Nhưng việc cải tiến bộ nhớ chính để theo kịp với CPU không phải là vấn đề thực sự quan trọng bởi vì lợi ích của bộ nhớ đệm nhanh (cache memory) và phân cấp bộ nhớ (THE MEMORY HIERARCHY). Bộ nhớ đệm nhanh là một loại bộ nhớ nhỏ, tốc độ cao (đồng nghĩa với chi phí cao). Đó là loại bộ nhớ được sử dụng thường xuyên để truy cập dữ liệu. Việc bổ sung chi phí bằng cách sử dụng các công nghệ tiên tiến, nhanh chóng cho bộ nhớ không phải lúc nào cũng hợp lý bởi vì bộ nhớ chậm hơn có thể thường xuyên ẩn bởi hệ thống bộ nhớ đệm nhanh hiệu suất cao. Tuy nhiên, trước khi chúng ta thảo luận về bộ nhớ đệm nhanh, chúng ta sẽ giải thích các công nghệ bộ nhớ khác nhau.
Mặc dù có nhiều công nghệ bộ nhớ tồn tại nhưng chỉ có duy nhất 2 kiểu bộ nhớ cơ bản là RAM (Random Access Memory)và ROM (Read Only Memory). RAM là loại bộ nhớ đọc ghi. RAM là bộ nhớ mà một máy tính cần có. RAM được sử dụng để lưu trữ chương trình và dữ liệu cần thiết để máy tính có thể thực hiện các chương trình, nhưng RAM là bộ nhớ không ổn định và bị mất các thông tin khi điện bị ngắt. Hiện nay, có hai loại chip chính được chế tạo để sử dụng các loại RAM: Ram tĩnh và Ram động (static và dynamic RAM).
Bạn đang đọc: Các kiểu bộ nhớ – Wikipedia tiếng Việt
DRAM được thiết kế xây dựng từ những tụ điện tí hon. DRAM yên cầu phân phối điện năng liên tục mỗi vài mili giây để duy trì tài liệu. SRAM thì ngược lại, duy trì nội dung cho tới khi chừng nào vẫn còn có điện. SRAM gồm có những mạch tựa như. SRAM nhanh hơn và đắt hơn DRAM. Tuy nhiên người phong cách thiết kế sử dụng DRAM do tại nó hoàn toàn có thể tàng 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ệ tiên tiến này được tích 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 toàn bộ bộ nhớ DRAM đều tựa như nhau, nhưng vẫn có nhiều đặc trưng .Các loại DRAM :
Các loại SRAM :
- SRAM đồng bộ
- SRAM không đồng bộ
- pipeline burst SRAM
Ngoài bộ nhớ RAM, những máy tính còn chứa 1 bộ nhớ nhỏ ROM tàng trữ những thông tin quan trọng thiết yếu cho hoạt động giải trí mạng lưới hệ thống. ROM ổn đinh và không bị mất tài liệu. Loại bộ nhớ này cũng được sử dụng trong mạng lưới hệ thống nhúng hoặc bất kể mạng lưới hệ thống nào nơi mà những chương trình không cần đổi khác. Nhiều gia dụng, đồ chơi, xe hơi sử dụng ROM để duy trì thông tin khi điện bị ngắt. ROM cũng được sử dụng thoáng rộng trong máy tính và những thiết bị ngoại vi như máy in laser, trong đó lưư trữ những font trong ROM. Các loại ROM cơ bản :
- Programmable ROM (PROM) – 1 biến thể của ROM có thể được lập trình bởi người sử dụng với các thiết bị phù hợp. Trong khi ROM được cài đặt bằng phần mềm thì PROM có thể cài đặt vào chương trình vào chip. Sau khi lập trình, dữ liệu và thông tin trong PROM không thể thay đổi.
- EPROM erasable PROM, là PROM có thể xoá đi và lập trình lại (yêu cầu một công cụ đặc biệt là tia cực tím). Để lập trình lại EPROM, toàn bộ chip trước tiên phải bị xoá hoàn toàn.
- EEPROM electrically erasable PROM loại bỏ đi nhiều nhược điểm của EPROM, không cần công cụ đặc biệt để xoá (nó được thực thi bằng cách áp dụng một trường điện) và bạn chỉ có thể xoá các phần của chip, một byte tại 1 thời điểm.
- Flash memory là bộ nhớ có thêm các tính năng như ghi hoặc xoá cả 1 khối, xoá bỏ 1 byte tại 1 thời điểm giới hạn. Điều này khiến flash memory nhanh hơn EEPROM.
Phân cấp bộ nhớ[sửa|sửa mã nguồn]
Một trong những điều quan trọng được chăm sóc nhất trong sự hiểu biết năng lực hiệu suất của bộ nhớ văn minh là bộ nhớ phân cấp. Không phải toàn bộ những bộ nhớ đều được tạo ra ngang nhau, một số ít kém hiệu suất cao hơn và rẻ hơn. Để xử lý sự chênh lệch này, máy tính thời nay tích hợp những kiểu bộ nhớ để cung ứng hiệu suất cao nhất với giá tiền tối thiểu. Cách tiếp cận này được gọi là bộ nhớ phân cấp. Bộ nhớ càng nhanh thì càng đắt. Bằng việc sử dụng bộ nhớ san sẻ, với mỗi vận tốc truy vấn và dung tích khác nhau, 1 mạng lưới hệ thống máy tính hoàn toàn có thể nâng cao hiệu suất trên cả năng lực hoàn toàn có thể của chúng khi không phối hợp những loại khác nhau lại. Hệ thống bộ nhớ phân cấp gồm có những thanh ghi, cache, bộ nhớ chính và bộ nhớ phụ .Máy tính ngày này có bộ nhớ nhỏ vận tốc cao gọi là cache, nơi mà tài liệu được tàng trữ tiếp tục. Cache liên kết tới bộ nhớ lớn hơn – bộ nhớ chính, bộ nhớ có vận tốc tầm trung. Bộ nhớ này được bổ trợ bới 1 bộ nhớ phụ, phối hợp với hard disk và những phương tiện đi lại hoàn toàn có thể tháo dời khác nhau ( various removable truyền thông ). Bằng việc sử dụng mạng lưới hệ thống phân cấp, 1 bộ nhớ hoàn toàn có thể nâng cao vận tốc truy vấn, chỉ sử dụng 1 số ít nhỏ chip vận tốc nhanh. Nó được cho phép người phong cách thiết kế tạo ra máy tính hiệu suất gật đầu được với giá tiền hài hòa và hợp lý .Chúng ta phân loại bộ nhớ dựa trên ” khoảng cách ” từ nó tới bộ giải quyết và xử lý, với khoảng cách được định nghĩa bằng số vòng máy yên cầu để truy vấn. Bộ nhớ càng gần bộ giải quyết và xử lý thì càng nhanh. Và ngược lại. Công nghệ chậm sẽ sử dụng bộ nhớ ở xa còn công nghệ tiên tiến nhanh sẽ sử dụng bộ nhớ gần bộ vi giải quyết và xử lý. Công nghệ càng tốt, bộ nhớ càng nhanh và càng đắt tiền. Bộ nhớ nhanh hơn thì sẽ nhỏ hơn bộ nhớ chậm và giá tiền càng cao .Dưới đây là những thuật ngữ được sử dụng khi miêu tả bộ nhớ phân cấp :
- Hit – Dữ liệu yêu cầu ở 1 cấp độ bộ nhớ (thông thường, chúng ta quan tâm đến tỉ lệ hit chỉ cho bộ nhớ cấp cao hơn).
- Miss – Dữ liệu yêu cầu không tìm thấy trong cấp độ bộ nhớ.
- Hit rate – Tỉ lệ phần trăm truy cập bộ nhớ được tìm thấy trong 1 cấp độ bộ nhớ.
- Miss rate – Tỉ lệ phần trăm truy cập bộ nhớ không được tìm thấy trong 1 cấp độ bộ nhớ. Note: Miss Rate = 1 – Hit Rate
- Hit time – Số lần yêu cầu để truy cập thông tin yêu cầu trong 1 cấp độ bộ nhớ.
- Miss penalty – Thời gian cần thiết để xử lý 1 miss, bao gồm thay thế 1 khối trong 1 cấp độ trên của bộ nhớ, cộng với thời gian đưa dữ liệu yêu cầu tới bộ xử lý. (Thời gian để xử lý 1 miss lớn hơn time xử lý 1 hit).
Đối với tài liệu bất kỳ, bộ giải quyết và xử lý sẽ gửi nhu yếu của nó tới phần bộ nhớ nhanh nhất, nhỏ nhất ( cache, do tại register dành cho mục tiêu đặc biệt quan trọng hơn ). Nếu tài liệu được tìm thấy trong cache, nó sẽ nhanh gọn được đưa vào CPU. Nếu nó không ở trong cache, nhu yếu sẽ được gửi tới bộ nhớ thấp hơn trong mạng lưới hệ thống và quy trình tìm kiếm lại khởi đầu. Nếu tài liệu được tìm thấy ở Lever này, một khối tài liệu ở đó sẽ được đưa vào cache, và cứ thể liên tục. Ý tưởng chính ở đây là khi Lever thấp hơn của mạng lưới hệ thống phân cấp vấn đáp nhu yếu từ Lever cao hơn cho nội dung ở vị trí X, chúng cũng gửi đi cùng 1 thời gian, tài liệu được đặt ở địa chỉ X + 1, X + 2 … Cứ như vậy, trả lại hàng loạt khối tài liệu tới Lever bộ nhớ cao hơn. Hi vọng rằng tài liệu thêm này sẽ được tham chiếu tới trong tương lai gần. Bộ nhớ san sẻ thiết thực chính bới những chương trình có khuynh hướng chiếm hữu 1 vùng biết đến cục bộ ( locality ), cái mà liên tục được cho phép bộ giải quyết và xử lý truy vấn tới tài liệu được trả lại cho địa chỉ X + 1, X + 2 … Vì vậy, mặc dầu đó là 1 miss, vẫn hoàn toàn có thể có 1 số ít hit trong bộ nhớ trên khối mới được truy xuất .
Bộ nhớ đệm nhanh[sửa|sửa mã nguồn]
Bộ giải quyết và xử lý máy tính rất nhanh và liên tục đọc thông tin từ bộ nhớ có nghĩa là nó phải chờ thông tin đến vì thời hạn truy vấn bộ nhớ chậm hơn vận tốc bộ giải quyết và xử lý. Một bộ nhớ đệm là bộ nhớ rất nhỏ, trong thời điểm tạm thời và nhanh, cái mà bộ giải quyết và xử lý sử dụng để lấy thông tin mà nó cần trong một khơảng thời hạn ngắn. Có rất nhiều ví dụ xung quanh tất cả chúng ta .VD : Trong một ngôi nhà và những công cụ để trong gara và bạn cần sửa lại tầm hầm. Nó sẽ cần nhiều công cụ như : mũi khoan, bộ vặn đai ốc, cưa, ốc vít … Việc tiên phong bạn nghĩ tới là đo và cắt những tấm gỗ, bạn chạy ra ngoài gara lấy cái thước đo từ kho tàng trữ, chạy xuống tầm hầm đo gỗ rồi quay trở lại nhà xe. Bỏ cái thước dây và lấy cái cưa sau đó trở lại tầng hầm dưới đất với cái cưa và cắt gỗ. Bạn quyết định hành động vặn ốc vít nối những mảnh gỗ lại. Bạn chạy lại gara để lấy khoan quay xuống tần hầm, khoan những lỗ để đặt ốc vít trở lại nhà để xe lấy cái vặn ốc, sau đó phát hiện ra là sai size trở lại nhà để xe lấy cái khác và chạy lại. Bạn có làm theo cách này không ? Nếu cần một cái vặn ốc có lẽ rằng sẽ cần nhiều kích cỡ khác nhau tại sao không lấy hàng loạt những cái vặn ốc. Tiến thêm một bước tại sao không lấy một gói nhỏ gồm có những công cụ thiết yếu vào tầng hầm dưới đất. Nó sẽ nhanh hơn rất nhiều. Bạn chỉ cần có bộ nhớ đệm. Một công cụ để thuận tiện truy vấn và sử dụng nhanh gọn ! Những công cụ mà bạn đang có ít có năng lực hơn để sử dụng vẫn còn được lưu giữ trong một khu vực đó là đi xa hơn và yên cầu nhiều thời hạn hơn để truy vấn vào .Đây là tổng thể những gì mà bộ nhớ đệm phải làm, nó tàng trữ tài liệu được truy vấn và tài liệu hoàn toàn có thể được truy vấn bởi CPU nhanh hơn và thân thiện hơn bộ nhớ. Bộ nhớ cache thao tác trên cùng một nguyên tắc cơ bản như thể những ví dụ trước bằng cách sao chép tài liệu tiếp tục được sử dụng vào bộ nhớ cache hơn là một yên cầu quyền truy vấn vào bộ nhớ chính, để lấy những tài liệu. Copy những tài liệu cần sử dụng vào bộ đệm hơn là truy vấn tới bộ nhớ chính để truy xuất tài liệu. Bộ đệm hoàn toàn có thể được tổ chức triển khai như cuốn sổ địa chỉ .Kích cỡ của bộ nhớ cache bộ nhớ hoàn toàn có thể khác nhau về độ lớn. Một nổi bật của máy tính cá thể cấp hai ( L2 ) là bộ nhớ cache 256K hoặc 512K. Cấp bậc một ( L1 ) là bộ nhớ cache nhỏ hơn, nổi bật là 8K hay 16K. Bộ nhớ cache L1 soáng chung về việc giải quyết và xử lý, trong khi L2 cache soáng chung giữa CPU và bộ nhớ chính. Bộ nhớ cache L1 được, do đó, nhanh hơn bộ nhớ cache L2. Các mối quan hệ giữa L1 và L2 cache hoàn toàn có thể được minh họa bằng cách sử dụng của chúng tôi shop Grocery ví dụ : Nếu những shop chính là bộ nhớ, bạn hoàn toàn có thể xem xét tủ lạnh những L2 cache, và trên thực tiễn những bàn ăn bộ nhớ cache L1 .Mục đích của vùng đệm là tăng vận tốc truy vấn bộ nhớ bằng cách tàng trữ những tài liệu cần sử dụng với CPU thay vì lưu trong bộ nhớ chính. Dù kích cỡ của bộ nhớ đệm không lớn như bộ nhớ chính nhưng nó nhanh hơn. Bộ nhớ chính được tạo bằng DRAM với thời hạn truy vấn là 60 ns. Còn bộ đệm được tạo bằng SRAM truy vấn nhanh hơn DRAM với chu kỳ luân hồi ngắn hơn ( một nổi bật của thời hạn truy vấn bộ nhớ cache là 10 ns ) .Cache hiện không cần phải quá lớn để triển khai tốt. Một quy tắc chung của bộ nhớ đệm nhở đủ để cho tổng ngân sách trung bình cho mỗi bit, gần đó là của chính bộ nhớ, nhưng đủ lớn để mang lại quyền lợi. Vì bộ nhớ nhanh này là hơi đắt tiền, nó không khả thi để sử dụng công nghệ tiên tiến tìm thấy trong bộ nhớ cache bộ nhớ để thiết kế xây dựng những bộ nhớ chính .Điều gì làm cho bộ nhớ cache ” đặc biệt quan trọng ” ? Cache không được truy vấn theo địa chỉ mà được truy vấn theo nội dung. Vì nguyên do này, bộ nhớ cache đôi lúc được gọi là CAM. Theo hầu hết những chương trình lập map bộ nhớ cache, bộ nhớ cache mục phải được kiểm tra hoặc tìm kiếm nếu giá trị được nhu yếu được lưu trong bộ nhớ cache. Để đơn giản hóa việc này, quy trình tìm những tài liệu, lập map bộ nhớ đệm sử dụng những thuật toán khác nhau .
Ánh xạ bộ nhớ đệm nhanh[sửa|sửa mã nguồn]
Bộ nhớ đệm nhanh tàng trữ những tài liệu có ích tuy nhiên nó sẽ trở thành vô ích nếu CPU không tìm thấy nó. Khi truy vấn vào tài liệu hoặc những tập lệnh, CPU lần tiên phong tạo ra một địa chỉ bộ nhớ chính. Nếu tài liệu đã được sao chép vào bộ nhớ cache, những địa chỉ của tài liệu trong bộ nhớ cache không giống như là địa chỉ chính của bộ nhớ. Ví dụ : tài liệu được cấp phép tại địa chỉ trong bộ nhớ chính là 2E3 hoàn toàn có thể được cấp phép rất sớm trong bộ nhớ đệm. Làm thế nào CPU tìm ra tài liệu khi nó đã được sao chép vào bộ nhớ đệm ? CPU sử dụng một chương trình ánh xạ ” quy đổi ” những địa chỉ của bộ nhớ chính vào một vị trí bộ nhớ cache .Việc quy đổi đia chỉ được triển khai bằng cách vào trong những bit trong bộ nhớ địa chỉ chính. Chúng tôi chia những bit ra làm hai phần riêng không liên quan gì đến nhau gọi là những trường. Tùy thuộc vào chương trình ánh xạ, chúng tôi hoàn toàn có thể có hai hoặc ba trường. Làm thế nào chúng tôi sử dụng những trường này nhờ vào vào chương trình ánh xạ đang được sử dụng. Các chương trình ánh xạ xác lập nơi mà những tài liệu được đặt khởi đầu khi nó được sao chép vào bộ nhớ cache và cũng hoàn toàn có thể cung ứng một chiêu thức cho CPU để tìm kiếm trước đó đã sao chép tài liệu khi tìm kiếm bộ nhớ đệm .Làm thế nào để tất cả chúng ta sử dụng được những trường trong bộ nhớ địa chỉ chính. Một trường trong bộ nhớ địa chỉ chính chỉ ra cho ta thấy cái tài liệu ở bên trong nếu nó ở trong bộ nhớ cache goi là cache hit nếu không gọi là cache miss. Các khối đệm tham chiếu được kiểm tra nếu nó hợp lệ. Kết thúc nó sẽ đưa ra những bít tương ứng với mỗi khối đệm. Giá trị Bit không nghĩa là khối đệm đó không hợp lệ, và phải truy vấn bộ nhớ chính. Bit một có nghĩa là hợp lệ. Sau đó tất cả chúng ta so sánh thẻ trong khối đệm tới những thẻ của địa chỉ. Nếu những thẻ giống nhau ta hoàn toàn có thể tìm ra khối bộ đệm mong ước ( chúng tôi có một bộ nhớ cache hit ). Lúc này tất cả chúng ta cần xác lập từ mong ước của khối. Tất cả những chương trình ánh xạ đều yêu cầu trường từ .Ba chương trình ánh xạ bộ nhớ chính :
- Cache ánh xạ trực tiếp
- Ánh xạ trực tiếp sử dụng tiếp cận module. Bởi vì có nhiều khối bộ nhớ chính hơn bộ nhớ đệm. Cần rõ ràng rằng các khối bộ nhớ chính cấp phát cho bộ nhớ đệm. Ánh xạ trực tiếp khối X của bộ nhớ chính tới khối Y của bộ nhớ đệm, mod N với N là tổng số khối trong bộ nhớ đệm.
- Cả hai khối ‘0’, ’10’ đều trỏ tới khối ‘0’ của khối ‘0’ của bộ đệm làm thế nào để phân biệt. Cả hai khối đều được lưu trong bộ đệm và được nhận ra bằng các thẻ được khai báo trước.
- Để thực hiện ánh xạ trực tiếp các bit đại chỉ bộ nhớ chính được chia làm ba trường. Độ dài của mỗi khối phụ thuộc vào đặc điểm vật lý của bộ nhớ chính và đệm. Trường word hay offset chứa các từ để nhận dạng các khối và chứa số bit tương ứng. Khối ‘0’ chứa word trong bộ nhớ chính và được nhận ra = 00000000.Khi một khối của bộ nhớ chính được copy vào bộ nhớ cache, trường tag chứa cái khối và mã để nhận ra khối này. Tổng cộng có ba trường
- Bộ nhớ đệm nhanh kết hợp hoàn toàn (Fully Associative Cache)
- Bộ nhớ đệm nhanh ánh xạ trực tiếp không đắt như các bộ đệm khác vì kịch bản ánh xạ không đòi hỏi bất kỳ sự tìm kiếm. Khi địa chỉ bộ nhớ chính được chuyển sang bộ nhớ đệm, CPU biết chính xác vị trí để tìm trong bộ đệm bằng cách kiểm tra đơn giản số bit trong các trường. Gần giống cuốn sổ địa chỉ các trang thường có chỉ mục theo alphabetic.
- Sử dụng ánh xạ tương đối địa chỉ bộ nhớ chính được chia ra làm hai phần: tag, word hình 6.8 trường word chứa ba bit nhưng trường tag là mười một bit. Khi bộ đệm được tìm kiếm, trường tag của bộ nhớ chính sẽ được so sánh với trường tag đúng của bộ đệm. Nếu không đúng ta sẽ có cache miss.
- Tạo bộ nhớ tương ứng: Bộ đệm tương đối nhanh, phức tạp nhưng nó rất đắt. Mặc dù ánh xạ trực tiếp không đắt nhưng nó rất hạn chế giới hạn bộ đệm sử dụng hỗ trợ chạy 1 chương trình sử dụng khối ‘0’, khối ’16’ sau đó thực thi các câu lệnh. Bộ nhớ đệm nhanh kết hợp hoàn toàn cho phép một khối từ bộ nhớ chính có thể ở bất cứ đâu. Tuy nhiên nó yêu cầu thẻ lớn được chứa khối thêm vào đó yêu cầu phần cứng để tìm tất cả các khối của tạm thời.
- Tạo bộ nhớ đệm nhanh tương ứng
- Bộ nhớ đệm nhanh tương đối nhanh, phức tạp nhưng nó rất đắt. Mặc dù ánh xạ trực tiếp không đắt nhưng nó rất hạn chế giới hạn bộ đệm sử dụng hỗ trợ chạy một chương trình sử dụng khối ‘0’, khối ’16’ sau đó thực thi các câu lệnh. Bộ nhớ đệm nhanh kết hợp hoàn toàn cho phép một khối từ bộ nhớ chính có thể ở bất cứ đâu. Tuy nhiên nó yêu cầu thẻ lớn được chứa khối thêm vào đó yêu cầu phần cứng để tìm tất cả các khối của tạm thời
- Ngoài ra còn chương trình ánh xạ thứ ba là N-way set associative cache map-ping kết hợp của hai phương pháp trên giống ánh xạ trực tiếp sử dụng địa chỉ để ánh xạ tới khối. Khác thay vì ánh xạ tới một khối đơn thì nó ánh xạ tới một tập các khối. Tất cả các khối phải có cùng kích cỡ
Chính sách sửa chữa thay thế[sửa|sửa mã nguồn]
Trong bộ đệm ánh xạ trực tiếp nếu có sự sự không tương đồng giữa những khối đệm mà chỉ có một hành vi hoàn toàn có thể triển khai. Khối đã sống sót trong bộ đệm sẽ bị cho ra ngoài cache để tạo phòng cho khối mới. Tiến trình đó là sự sửa chữa thay thế. Với ánh xạ trực tiếp không cần chủ trương thay thế sửa chữa vì việc cấp phép mỗi khối mới là xác lập lại. Tuy nhiên với fully associative và tạo bộ đệm tương ứng thì cần có giả thuật sửa chữa thay thế để xác lập khối bị loại khỏi cache .
Thời gian truy vấn hiệu suất cao[sửa|sửa mã nguồn]
Hành động phân cấp bộ nhớ được tính bằng thời hạn truy vấn hiệu suất cao ( EAT ). VD : thời hạn truy vấn cache là 10 ns, và bộ nhớ chính là 200 ns độ cache hit là 99 % .Công thức tính EAT :H : cache access hit
AccessC: cache access time
AccessMM : main memory access timeCông thức này hoàn toàn có thể lan rộng ra ra để vận dụng ở bộ nhớ tầng ba, tầng bốn .
Khi nào bộ đệm bị hỏng[sửa|sửa mã nguồn]
Khi có nhiều chương trình được thực thi thì bộ đệm sẽ thao tác rất tốt, tuy nhiên nếu có nhiều chương trình thực thi lỗi được chạy thì bộ đệm bị hỏng và việc phân cấp bộ nhớ rất chậm .
Chính sách ghi bộ đệm[sửa|sửa mã nguồn]
Để xác lập khối để sửa chữa thay thế người thiết kề phải quyết định hành động làm gì với những khối bẩn của bộ nhớ đệm hoặc là khối bị sửa. Khi tiến trình ghi tới bộ nhớ chính, tài liệu hoàn toàn có thể ghi vào bộ nhớ đệm Có hai chủ trương ghi cơ bản : • Write-through : update cả bộ nhớ đệm và bộ nhớ chính mỗi lần ghi. Ghi chậm hơn write-back nhưng bảo vệ bộ đệm tương thích với bộ chính không thuận tiện là phải truy vấn tới bộ nhớ chính • Write – back : update những khối trong bộ nhớ chính khi những khối trong bộ nhớ đệm bị loại khỏi cache. Nhanh hơn write-throught do không tốn thời hạn ghi ra bộ nhớ đệm. Không thuận tiện vì tài liệu bộ đệm và bộ nhớ chính hoàn toàn có thể không cùng giá trị khi một tiến trình bị hỏng trước khi ghi tới bộ nhớ chính thực thi xong, tài liệu ở bộ đệm bị mất .
Bộ nhớ ảo[sửa|sửa mã nguồn]
Bộ nhớ ảo là bộ đệm trong máy tính giúp máy tính chạy nhanh hơn giống như bộ đệm. Nhờ bộ nhớ ảo mà RAM hoàn toàn có thể sử dụng tốt hơn, chạy ứng dụng nặng. Phân trang trên 1 vùng đĩa cứng để lưu dữ liệu đã giải quyết và xử lý, giảm gánh nặng cho RAM. Ghi nhớ rằng địa chỉ của những thanh ghi phải được chuyển qua bộ đệm để CPU giải quyết và xử lý .Một số thuật ngữ :
- Địa chỉ Ảo: Địa chỉ logic mà tiến trình dùng.
- Địa chỉ Vật lý: Địa chỉ thật sự trên RAM.
- Ánh xạ: Chuyển từ những địa chỉ ảo sang địa chỉ thật, gần giống với ánh xạ bộ nhớ đệm.
- Khung phân trang: Những trang kích thước bằng nhau được chia ra từ bộ nhớ chính.
- Trang: Những đoạn nhớ trong bộ nhớ ảo lưu trên đĩa cứng.
- Phân Trang: Tiến trình sao lưu trang ảo từ đĩa cứng vào khung trang trong bộ nhớ chính.
- Phân mảnh: Bộ nhớ trở nên không cần thiết.
- Sai sót trang: 1 sự kiện xảy ra khi trang yêu cầu không có trong bộ nhớ chính và phải copy từ đĩa cứng vào bộ nhớ chính.
Ý tưởng khá đơn giản: Khởi tạo vùng nhớ trên bộ nhớ vật lý để xử lý, lưu giữ thông tin trong một bảng. Mỗi tiến trình đều có một bảng riêng gồm N dòng, N là số trang ảo mà tiến trình cần. Mỗi trang có 2 thuộc tính: bit và số trang. Trang ảo cùng kích cỡ với trang vật lý. Bộ nhớ tiến trình được chia thành những trang cùng kích cỡ cố định lưu giữ thông tin tiến trình để xử lý.
Các bước truy cập địa chỉ ảo:
- Trích số trang, offset từ địa chỉ ảo. Dịch số trang sang bộ nhớ thực bằng cách truy suất bảng trang.
- Tìm kiếm số trang trong bảng trang.
- Kiểm tra bit của trang đó. Nếu bit = 0, hệ thống tự sinh ra 1 trang lỗi và hệ điều hành phải tìm được trang được đề nghị trên đĩa tron cây khung trang.
- Sao lưu và cập nhật lại bảng trang trong bộ nhớ chính.
- Nếu bit=1 tức là trang trong bộ nhớ chính.
- Thay thế số trang ảo bằng số trang thực.
- Truy xuất dữ liệu ở trang vậy lý thực và điền vào trang ảo Địa chỉ ảo gồm 8 bit và chia thành 2 trường. Bộ nhớ chính có 4 trang, bộ nhớ ảo ánh xạ lên bộ nhớ chính.
Các trang trong bảng trang được lưu lại trong khung trang theo bit mà bộ nhớ ảo ánh xạ vào .
- Vd: bit 0 bộ nhớ ảo ánh xạ vào bit 2 bộ nhớ thực. Khung trang số 2 được điền vào bảng trang, do nó tồn tại trên bộ nhớ chính nên bit được ghi là 1. 3 bit đầu trong 8 bit bộ nhớ ảo dành cho số trang. 5 bit sau dành cho offset được tính theo số bù 2 được ghi vào thanh ghi cơ sở.
- Vd: 000 01101 = #13. Địa chỉ 0 của tiến trình chứa dữ liệu A được ánh xạ qua bộ nhớ chính tại bit thứ 4. CPU sẽ phải chuyển từ địa chỉ ảo 0 sang địa chỉ vật lý 4.
Bảng trang lưu khung trang được ánh xạ từ những bít địa chỉ từ bộ nhớ ảo sang bộ nhớ chính : vd trang 0 ánh xạ sang trang 2, bit trong bảng trang là 1 ( do trên bộ nhớ vật lý ). Ánh xạ thanh ghi 4 bits từ bộ nhớ ảo sang bộ nhớ chính .
- Vd: 1010 trang thứ 6 trong bộ nhớ ảo sang khung trang thứ 3 trong bộ nhớ chính. 1 địa chỉ ảo có 13 bits, 3 bits đầu dành cho số trang và 10 bits sau cho offset. 1 địa chỉ thực có 12 bits, 2 bits đầu là khung trang trong bộ nhớ chính, 10 bits sau cho offset. Khung trang càng lớn thì bảng trang càng ít nhưng sẽ lãng phí bộ nhớ nếu quá lớn.
Thời gian truy xuất phân trang[sửa|sửa mã nguồn]
EAT = Effective Access Time. Chúng ta cần thanh ghi EAT khi sử dụng bộ nhớ ảo. Khi 2 vùng nhớ vật lý được truy suất, 1 tham chiếu tới bảng trang, 1 tham chiếu đến tài liệu mong ước. Giả sử bộ nhớ chính truy suất cần 200 ns và tỷ suất lỗi khung trang là 1 %, 99 % còn lại ta tìm được trang cần trong bộ nhớ. Cần 10 ms để truy suất 1 trang không có trong bộ nhớ gồm có chuyển trang, update trang và truy suất tài liệu. EAT =. 99 ( 200 ns + 200 ns ) +. 01 ( 10 ms ) = 13.960 ns. Thậm chí nếu 100 % trang ở trong bộ nhớ chính thì : EAT = 1.00 ( 200 ns + 200 ns ) = 400 ns .
Truy xuất bảng trang phải chi phí thời gian truy suất bộ nhớ chính vì nó được lưu trên bộ nhớ chính Có thể làm tăng tốc độ nhờ tìm kiếm bảng trang nhờ bộ đệm chuyển đổi translation look-aside buffer – bộ đệm chuyển đổi.
Các bước là : tìm số trang, offset từ địa chỉ ảo, tìm số trang ảo trong TLB, nếu thấy thì điền offset vào khung trang vật lý và truy suất vùng nhớ. Nếu không thấy thì qua bảng trang tìm kiếm trong bộ nhớ chính, nếu không có trong bộ nhớ chính tạo trang lỗi và khởi động lại khi trang đó được tìm thấy .
Kết hợp bộ đệm, tìm kiếm bộ đệm, phân trang[sửa|sửa mã nguồn]
Bởi vì một bảng tìm kiếm bộ đệm hoàn toàn có thể gây lẫn lộn, đưa nhiều thông tin gây nhầm lẫn. Giải pháp là tập hợp tổng thể những giải pháp lại. Khi CPU tạo ra 1 địa chỉ nó là địa chỉ chương trình hoặc là địa chỉ ảo, địa chỉ ảo này phải được chuyển thành địa chỉ thật trước khi nó được sử dụng. Có 2 cách : sử dụng bảng dịch tìm kiếm bộ đệm để tìm khung trang mới được tàng trữ gồm có số trang, khung trang. Nếu khung trang bị bỏ lỡ thì hoàn toàn có thể dùng bảng trang để tìm khung trang tương ứng trong bộ nhớ chính. Số khung trang này sau đó sẽ được tích hợp với offset trong địa chỉ ảo để tạo ra địa chỉ thật .Có hai năng lực để lấy tài liệu :
- Tìm kiếm để xem có bộ nhớ cache dữ liệu.
- Trên một bộ nhớ cache bỏ lỡ, hãy vào phần chính của bộ nhớ vị trí khác để lấy lại dữ liệu (thường bộ nhớ đệm được cập nhật vào thời điểm này là tốt nhất).
Thuận lợi, khó khăn vất vả của phân trang, bộ nhớ ảo[sửa|sửa mã nguồn]
Trong Phần “Thời gian truy suất phân trang”, chúng tôi đã thảo luận cách thức triển khai thực hiện thông qua bộ phân trang. Cho biết thêm một tham chiếu bộ nhớ khi truy cập vào dữ liệu. Tuy nhiên, ngay cả với một tỉ lệ cao nhấn trong bộ đệm chuyển đổi, quá trình này vẫn còn dịch phí.
Bất lợi khác của bộ nhớ ảo và phân trang là tiêu tốn tài nguyên hơn (bộ nhớ để lưu trữ trên trang bảng). Trong trường hợp (nhiều chương trình chạy 1 lúc), các bảng trang có thể mất một phần của bộ nhớ vật lý. Bộ nhớ ảo yêu cầu phần cứng và hệ điều hành hỗ trợ.
Lợi ích của sử dụng bộ nhớ ảo phải lớn hơn bất lợi trong việc sử dụng mạng lưới hệ thống máy tính. Đơn giản là chương trình không còn bị số lượng giới hạn bởi những số lượng bộ nhớ vật lý có sẵn. Bộ nhớ ảo được cho phép tất cả chúng ta chạy những chương trình cá thể thứ mà địa chỉ ảo lớn hơn địa chỉ vật lý ( Trong thực tiễn, một trong những quy trình này cho phép san sẻ bộ nhớ vật lý với chính nó ). Làm cho nó thuận tiện hơn nhiều để viết những chương trình do những lập trình viên không còn hoàn toàn có thể lo ngại về những địa chỉ vật lý khoảng trống hạn chế .Bởi vì mỗi chương trình yên cầu ít bộ nhớ vật lý, bộ nhớ ảo cũng được cho phép những chương trình cùng một lúc. Điều này được cho phép tất cả chúng ta san sẻ những máy tính trong quy trình có tổng số địa chỉ khoảng trống kích cỡ vượt quá size bộ nhớ vật lý, dẫn đến tăng sử dụng CPU và mạng lưới hệ thống trải qua bộ nhớ ảo .
Phân trang là phương thức quản lý bộ nhớ phổ biến nhất nhưng vẫn còn các cách khác, tiêu biểu là phân đoạn. Thay vì chia địa chỉ ảo thành những trang kích thước bằng nhau, địa chỉ thật thành những khung trang, địa chỉ ảo được chia thành luận lý, đơn vị độ dài hoặc các đoạn.
Bộ nhớ vật lý không thật sự phân chia hoặc phân vùng. Khi 1 đoạn cần được đưa vào vùng nhớ chính, hệ điều hành sẽ tìm kiếm vùng nhớ trống đủ lớn để lưu thông tin phân đoạn đó. Mỗi phân đoạn có địa chỉ cơ sở, được tạo trong bộ nhớ, giới hạn kích cỡ.
Mỗi chương trình có thể có nhiều phân đoạn, bây giờ được kết hợp thành bảng phân đoạn thay bảng trang. Bảng phân đoạn đơn giản là tập hợp những cặp cơ sở cho mỗi phân đoạn. Bộ nhớ có thể truy xuất và phiên dịch bằng cách cung cấp một số vùng nhớ và offset trong phân đoạn. Kiểm tra lỗi được tổ chức để chắc chắn rằng Offset đảm bảo các giá trị ràng buộc. Nếu có, thì giá trị cơ sở cho phân đoạn
(được tìm thấy trong bảng phân đoạn) sẽ được điền vào phần bù, nhường cho địa chỉ vật lý thật.
Giống như phân trang, phân đoạn cũng có những vùng nhớ phân mảng. Phân trang tạo ra những vùng nhớ đó vì khung trang hoàn toàn có thể khởi tạo 1 tiến trình mà không cần những thuộc tính của khung trang. Phân đoạn lại khác, chứa những phân mảnh ở ngoài. Những phân đoạn được tạo và hủy, những vùng nhớ được giải phóng và chuẩn hóa lại dẫn đến lỗi trong bộ nhớ. Thực tế có rất nhiều vùng nhớ nhỏ nhưng không đủ lớn để lưu những thuộc tính của phân đoạn .Sự độc lạ giữa phân mảnh trong và ngoài là với phân mảng ngoài, có đủ khoảng trống nhớ để tàng trữ cho tiến trình, nhưng khoảng trống này không liền kề nhau mà là số lượng lớn của nhiều khoảng trống nhỏ, những lỗ hổng không được sử dụng. Với phân mảnh trong, bộ nhớ đơn thuần là không sống sót chính bới mạng lưới hệ thống đã khởi tạo quá nhiều vùng nhớ cho 1 tiến trình mà nó không thiết yếu. Để vô hiệu phân mảnh ngoài, mạng lưới hệ thống sử dụng bộ thu dọn rác. Tiến trình này đơn thuần vô hiệu những vùng nhớ chiếm đóng để chúng nhỏ hơn, phân mảnh lại thành lớn hơn và có công dụng hơn .Sự phối hợp giữa phân đoạn và phân trang rất tiện ích chính bới nó được cho phép những phân đoạn từ phía người dùng và phân trang từ phía mạng lưới hệ thống .
Tổng quan bộ nhớ ảo[sửa|sửa mã nguồn]
Bộ nhớ bao gồm: bộ đệm, bộ nhớ chính và bộ nhớ ảo trên đĩa cứng. Bộ đệm lưu trữ những thông tin thường xuyên sử dụng của vùng nhớ chính để CPU xử lý. Bộ đệm có thể dùng nhiều cách ánh xạ, theo cơ chế FIFO, LRU(rất tốt cho ứng dụng nhưng khó bổ sung). Một biện pháp thành công khác là dùng bộ nhớ ảo, bộ nhớ ảo cho phép chạy những chương trình mà địa chỉ ảo cần thiết lớn hơn địa chỉ thật. Cho phép nhiều tiến trình chạy cùng 1 lúc. Trong đó TLB được dùng để lưu trữ những cặp địa chỉ ảo/thật được sử dụng. Bộ nhớ ảo chuyển đổi từ địa chỉ ảo sang địa chỉ thật, xử lý những trang lỗi trên đĩa thay vì bộ nhớ chính.
Mối quan hệ giữa bộ nhớ chính và bộ nhớ ảo gần giống với quan hệ giữa bộ nhớ chính và bộ đệm. Thực tế TLB là bộ đệm. Một điều quan trọng để nhận thấy là địa chỉ ảo phải được chuyển dịch sang địa chỉ vật lý trước khi làm bất cứ việc gì và đó là việc mà TLB làm. Mặc dù bộ đệm và phân trang vùng nhớ gần giống nhau nhưng các đối tượng lại khác nhau. Bộ đệm tăng khả năng truy suất bộ nhớ chính trong khi đó bộ nhớ ngoài tăng kích cỡ bộ nhớ chính.
Một ví dụ trong thực tiễn về quản trị bộ nhớ[sửa|sửa mã nguồn]
Bởi vì Pentium bộc lộ những đặc thù tiêu biểu vượt trội của quản trị bộ nhớ tân tiến, tất cả chúng ta sẽ trình diễn một cái nhìn khai quát về cách mà bộ giải quyết và xử lý xử lý với bộ nhớ, Kiến trúc Pentium được cho phép 32 bit địa chỉ ảo và 32 bit địa chỉ vật lý. Nó dùng hoặc 4 KB hoặc 4 MB kích cỡ trang khi sử dụng phân trang. Phân trang và phân khúc ( segmentation ) hoàn toàn có thể vận dụng trong những tích hợp khác nhau, gồm có unsegmented, paged memory ; segmented, unpaged memory. Pentium có 2 cache L1 và L2, kích cỡ 32 byte. L1 ngay cạnh bộ giải quyết và xử lý, L2 thì giữa bộ giải quyết và xử lý và bộ nhớ. L1 cache thậm chí còn là 2 cache, Pentium chia L1 cache thành những cache nhỏ hơn được dùng để tổ chức triển khai lệnh ( I-cache ) và một cái để tổ chức triển khai tài liệu ( D-cache ). Cả hai L1-cache sử dụng bit LRU cho những thoả thuận với khối thay thế sửa chữa. Mỗi L1 cache có 1 TLB ( translation look-aside buffer – bộ đệm quy đổi – Phương thức tăng vận tốc tra cứu page table bằng cách lưu lại hầu hết giá trị tra cứu trang gần đây trong page table cache ) : D-cache TLB có 64 mục còn I-cache có 32 mục. Cả hai TLB đều có 4 cách thiết lập và sử dụng 1 LRU giả tạo thay thế sửa chữa. Cả hai L1 cache đều sử dụng 2 cách để thiết lập ánh xạ. Để quản trị truy vấn tới bộ nhớ, I-cache và L2 cache sử dụng giao thức MESI. Mỗi dòng cache có 2 bit để lưu những trạng thái của MESI : M : modified biến hóa ( cache khác với bộ nhớ chính ), E : exclusive không đồng ý ( cache không bị biến hóa và giống bộ nhớ ), S : shared ( line / block hoàn toàn có thể san sẻ với line / block cache khác ), I : invalid ( line / block không có trong cache ) .
Bộ nhớ được sắp xếp theo kiểu phân cấp với bộ nhớ lớn hơn trở nên rẻ hơn, chậm hơn, bộ nhớ nhỏ hơn thì nhanh hơn, đắt hơn. Trong 1 bộ nhớ phân cấp đặc trưng ta hoàn toàn có thể thấy 1 cache, bộ nhớ chính, bộ nhớ phụ ( thường là ổ đĩa ). Điều này giúp những lập trình viên cảm thấy ấn tượng với bộ nhớ lớn và nhanh mà không cần chăm sóc thông tin truyền giữa những Lever khác nhau của mạng lưới hệ thống này .
Cache hoạt động như 1 bộ nhớ đệm. Để giữ các khối được sử dụng thường xuyên của bộ nhớ chính và ở gần CPU. Một mục tiêu của bộ nhớ phân cấp là giúp cho các bộ xử lý cảm thấy thời gian truy cập hiệu quả gần như thời gian truy cập cache. Mục tiệu này phụ thuộc vào các chương trình đang được thực hiện, kích cỡ và tổ chức của cache và các chính sách thay thế. Bộ xử lý liên quan được tìm thấy trong cache được gọi là cache hit(lượt truy cập), ngược lại cache miss. Trên một miss, dữ liệu bị mất được lấy lại từ bộ nhớ chính và toàn bộ khối có chứa dữ liệu sẽ được tải vào cache.
Tổ chức của cache quyết định hành động phương pháp CPU dùng để tìm kiếm cache cho nhiều địa chỉ bộ nhớ khác nhau. Cache được tổ chức triển khai theo nhiều cách : ánh xạ trực tiếp, tích hợp trọn vẹn, thiết lập tích hợp. Ánh xạ trực tiếp cache không cần thuật toán sửa chữa thay thế, tuy nhiên phối hợp trọn vẹn và thiết lập phối hợp phải sử dụng FIFO, LRU và những chủ trương thay thế sửa chữa khác để quyết định hành động khối nào bị xoá khỏi cache để có chỗ trống cho một khối mới, nếu như cache bị full. LRU cho năng lực hiệu suất cao cao nhưng khó thực thi .Một tiềm năng khác của bộ nhớ phân cấp là lan rộng ra bộ nhớ chính bằng cách sử dụng đĩa cứng, gọi là bộ nhớ ảo. Bộ nhớ ảo được cho phép chạy những chương trình trên những bộ nhớ địa chỉ ảo lớn hơn bộ nhớ vật lý. Nó cũng được cho phép nhiều quy trình chạy đồng thời. Nhược điểm của bộ nhớ ảo với phân trang ( bộ nhớ đệm ) gồm có tiêu tốn nhiều tài nguyên hơn ( tàng trữ những bảng page ) và truy vấn bộ nhớ nhiều hơn ( để truy vấn đến bảng page ). Bộ nhớ ảo cũng gánh thêm tính năng biên dịch để quy đổi địa chỉ ảo sang địa chỉ vật lý. Quan hệ giữa bộ nhớ ảo và bộ nhớ chính tương tự như như quan hệ giữa bộ nhớ chính và cache. Khái niệm về bộ nhớ cache và TLB thường gây nhầm lẫn. Trong thực tiễn, TLB là một cache. Điều đó rất quan trọng để nhận ra rằng địa chỉ ảo phải được biên dịch sang địa chỉ vật lý trước khi triển khai những việc khác, và đó chính là những gì TLB triển khai. Cho dù cache và paged memory có vẻ như giống nhau, nhưng vẫn có sự độc lạ : cache tăng hiệu suất cao thời hạn truy vấn tới bộ nhớ chính trong khi đó phân trang lại tăng kích cỡ bộ nhớ chính .
- Memory Lưu trữ 2011-04-09 tại Wayback Machine – Chapter 6, The Essentials of Computer Organization and Architecture, Linda Null and Julia Lobur.
Source: kubet
Category: Tải Phầm Mềm
Leave a Reply