Lời nói đầu Khoa học kỹ thuật ngày càng phát triển kéo theo đó là những nhu cầu sử dụng máy của con người ngày càng cao. Việc nghiên cứu và thiết kế bộ nhớ phân cấp cũng như các thiết bị lưu trữ có vai trò đặc biệt quan trọng trong quá trình nghiên cứu thiết kế các hệ thống máy tính. Tối ưu hoá được các thành phần bộ nhớ không những giúp các tiến trình thực hiện của hệ thống được thực hiện một cách hiệu quả mà còn đảm bảo giám sát được các quá trình xử lý đồng thời. Ngoài ra trong thời đại bùng nổ của công nghệ thông tin, các thiết bị lưu trữ cũng cần phải đáp ứng được với các yêu cầu ngày càng tăng dẫn đến sự ra đời của các công nghệ lưu trữ mới. Với đề tài “ Thiết kế bộ nhớ phân cấp” nhóm thực hiện muốn đưa ra các vấn đề khi phân tích, thiết kế các bộ nhớ phân cấp và mô tả các tổng quan về các thiết bị lưu trữ và những hạn chế khi thiết kế các bộ nhớ phân cấp cũng như các thiết bị lưu trữ. Nhóm thực hiên: Hoàng Minh Chiến Kiều Văn Đạt Nguyễn Văn Minh Trần Quang Nguyên Kiều Mạnh Thưởng Phùng Đôn Tình 1.GIỚI THIỆU Chắc hẳn trong chúng ta khi sử dụng máy tính đều mong muốn có được một bộ nhớ có dung lượng lớn, tốc độ truy cập nhanh và giá rẻ. Như¬ng nếu bộ nhớ càng lớn thì tốc độ của CPU bị kìm hãm do việc truy cập bộ nhớ lâu hơn. Một giải pháp trong vấn đề này là phân cấp bộ nhớ. Bộ nhớ đệm (cache) đư¬ợc đặt vào giữa CPU và bộ nhớ chính để làm tăng tốc độ thông tin. Thay vì lấy thông tin từ bộ nhớ chính CPU lấy thông tin từ bộ nhớ đệm. Nguyên lý quy chiếu vùng (cục bộ hóa tham chiếu bộ nhớ) được sử dụng để tăng tốc độ thao tác với thiết bị nhớ. Theo nguyên tắc này dữ liệu thường đựơc sử dụng nằm ở vùng nhớ nhỏ sẽ truy nhập nhanh hơn. Nói cách khác trong một khoảng thời gian ngắn CPU chỉ truy nhập các thông tin trong một khối nhớ cục bộ. Hình 1: Các cấp bộ nhớ Bộ nhớ cache được sử dụng để lưu trữ các lệnh và các dữ liệu thường được sử dụng nhiều. Việc truy nhập đến bộ nhớ chính (RAM) chỉ xảy ra khi không tìm thấy thông tin cần trong Cache. 2. SƠ LƯỢC VỀ CACHE Cache là mức nhớ thấp nhất trong việc phân cấp bộ nhớ nơi mà địa chỉ của CPU chỉ tới đầu tiên. Do bộ nhớ được phân cấp nhiều mức nên đã khắc phục được hạn chế về tốc độ của máy tính khi dung lượng nhớ tăng lên. Khi CPU truy cập bộ nhớ có 2 khả năng xảy ra: Nếu từ nhớ có trong cache gọi là cache hit Nếu từ nhớ không có trong cache gọi là cache miss CPU truy cập bộ nhớ cache theo từ nhớ, bộ nhớ chính được chia thành các khối nhớ có kích thước bằng nhau gọi là block nhớ . Các khối nhớ mà CPU sắp truy cập sẽ được chuyển từ bộ nhớ chính và đặt vào bộ nhớ cache, khi đó CPU lấy thông tin từ bộ nhớ cache nhanh hơn rất nhiều so với việc lấy từ bộ nhớ chính . Vì vậy bộ nhớ cache còn được gọi là bộ nhớ truy cập nhanh. Thời gian cần phải có cho một cache miss phụ thuộc vào độ rộng băng của bộ nhớ thời gian trễ của bộ nhớ. Thời gian trễ của bộ nhớ quyết định thời gian tìm từ đầu tiên của block và độ rộng băng quyết định thời gian tìm phần còn lại của block. Tuy nhiên không phải tất cả những objects referenced mà chương trình cần đều ở bộ nhớ chính. Nếu máy tính có bộ nhớ ảo thì một vài objects có thể nằm trên đĩa. 3. HOẠT ĐỘNG CỦA CACHE Mức cache – bộ nhớ trong trong bảng các cấp bộ nhớ có cơ cấu vận hành trong suốt đối với bộ xử lý. Với thao tác đọc bộ nhớ, bộ xử lý gửi một địa chỉ và nhận một dữ liệu từ bộ nhớ trong. Với thao tác ghi bộ nhớ, bộ xử lý viết một dữ liệu vào một ô nhớ với một địa chỉ được chỉ trong bộ nhớ. Để cho chương trình vận hành bình thường thì cache phải chứa một phần con của bộ nhớ trong để bộ xư lý có thể thâm nhậm vào các lệnh hoặc các dữ liệu thường dùng từ bộ nhớ cache. Do dung lượng của bộ nhớ cache nhỏ nên nó chỉ chứa một phần chương trình nằm trong bộ nhớ trong. Để đảm bảo sự đồng nhất giữa nội dung của cache và bộ nhớ trong thì cache và bộ nhớ trong phải có cùng cấu trúc. Việc chuyển dữ liệu giữa cache và bộ nhớ trong là việc tải lên hay ghi xuống các khối dữ liệu. Mỗi khối chứa nhiều từ bộ nhớ tùy thuộc vào cấu trúc bộ nhớ cache. Sự lựa chọn kích thước của khối rất quan trọng cho vận hành của cache có hiệu quả. Hình 2: Trao đổi dữ liệu giữa các thành phần CPU – Cache – Bộ nhớ trong 4. HẠN CHẾ CACHE MISS. Việc giảm cache miss là rất cần thiết trong việc truy cập bộ nhớ của bộ nhớ CPU. Nhưng thực hiện cache cần đảm bảo có những cải tiến miss penalty (số chu kỳ dừng của bộ nhớ) có thể có ích như là cải thiện miss rate. Đặc biệt xu hướng phát triển của công nghệ là tộc độ xử lý nhanh hơn tốc độ truy cập DRAM. Dưới đây là năm cách tối ưu hóa: 4.1. Sử dụng cache đa mức. Nhiều công nghệ giảm Cache miss ảnh hưởng đến CPU. Các công nghệ này bỏ qua CPU mà tập trung vào giao diện giữa Cache và bộ nhớ chính.
Lời nói đầu Khoa học kỹ thuật ngày phát triển kéo theo nhu cầu sử dụng máy người ngày cao Việc nghiên cứu thiết kế nhớ phân cấp thiết bị lưu trữ có vai trị đặc biệt quan trọng trình nghiên cứu thiết kế hệ thống máy tính Tối ưu hố thành phần nhớ khơng giúp tiến trình thực hệ thống thực cách hiệu mà cịn đảm bảo giám sát q trình xử lý đồng thời Ngoài thời đại bùng nổ công nghệ thông tin, thiết bị lưu trữ cần phải đáp ứng với yêu cầu ngày tăng dẫn đến đời công nghệ lưu trữ Với đề tài “ Thiết kế nhớ phân cấp” nhóm thực muốn đưa vấn đề phân tích, thiết kế nhớ phân cấp mô tả tổng quan thiết bị lưu trữ hạn chế thiết kế nhớ phân cấp thiết bị lưu trữ Nhóm thực hiên: Hồng Minh Chiến Kiều Văn Đạt Nguyễn Văn Minh Trần Quang Ngun Kiều Mạnh Thưởng Phùng Đơn Tình 1.GIỚI THIỆU Chắc hẳn sử dụng máy tính mong muốn có nhớ có dung lượng lớn, tốc độ truy cập nhanh giá rẻ Nhưng nhớ lớn tốc độ CPU bị kìm hãm việc truy cập nhớ lâu Một giải pháp vấn đề phân cấp nhớ Bộ nhớ đệm (cache) đặt vào CPU nhớ để làm tăng tốc độ thơng tin Thay lấy thơng tin từ nhớ CPU lấy thơng tin từ nhớ đệm Nguyên lý quy chiếu vùng (cục hóa tham chiếu nhớ) sử dụng để tăng tốc độ thao tác với thiết bị nhớ Theo nguyên tắc liệu thường đựơc sử dụng nằm vùng nhớ nhỏ truy nhập nhanh Nói cách khác khoảng thời gian ngắn CPU truy nhập thông tin khối nhớ cục Hình 1: Các cấp nhớ Bộ nhớ cache sử dụng để lưu trữ lệnh liệu thường sử dụng nhiều Việc truy nhập đến nhớ (RAM) xảy khơng tìm thấy thơng tin cần Cache SƠ LƯỢC VỀ CACHE Cache mức nhớ thấp việc phân cấp nhớ nơi mà địa CPU tới Do nhớ phân cấp nhiều mức nên khắc phục hạn chế tốc độ máy tính dung lượng nhớ tăng lên Khi CPU truy cập nhớ có khả xảy ra: - Nếu từ nhớ có cache gọi cache hit - Nếu từ nhớ khơng có cache gọi cache miss CPU truy cập nhớ cache theo từ nhớ, nhớ chia thành khối nhớ có kích thước gọi block nhớ Các khối nhớ mà CPU truy cập chuyển từ nhớ đặt vào nhớ cache, CPU lấy thơng tin từ nhớ cache nhanh nhiều so với việc lấy từ nhớ Vì nhớ cache gọi nhớ truy cập nhanh Thời gian cần phải có cho cache miss phụ thuộc vào độ rộng băng nhớ thời gian trễ nhớ Thời gian trễ nhớ định thời gian tìm từ block độ rộng băng định thời gian tìm phần cịn lại block Tuy nhiên tất objects referenced mà chương trình cần nhớ Nếu máy tính có nhớ ảo vài objects nằm đĩa HOẠT ĐỘNG CỦA CACHE Mức cache – nhớ trong bảng cấp nhớ có cấu vận hành suốt xử lý Với thao tác đọc nhớ, xử lý gửi địa nhận liệu từ nhớ Với thao tác ghi nhớ, xử lý viết liệu vào ô nhớ với địa nhớ Để cho chương trình vận hành bình thường cache phải chứa phần nhớ để xư lý thâm nhậm vào lệnh liệu thường dùng từ nhớ cache Do dung lượng nhớ cache nhỏ nên chứa phần chương trình nằm nhớ Để đảm bảo đồng nội dung cache nhớ cache nhớ phải có cấu trúc Việc chuyển liệu cache nhớ việc tải lên hay ghi xuống khối liệu Mỗi khối chứa nhiều từ nhớ tùy thuộc vào cấu trúc nhớ cache Sự lựa chọn kích thước khối quan trọng cho vận hành cache có hiệu Chuyển từ Bộ xử lý Chuyển khối Cache Bộ nhớ Hình 2: Trao đổi liệu thành phần CPU – Cache – Bộ nhớ HẠN CHẾ CACHE MISS Việc giảm cache miss cần thiết việc truy cập nhớ nhớ CPU Nhưng thực cache cần đảm bảo có cải tiến miss penalty (số chu kỳ dừng nhớ) có ích cải thiện miss rate Đặc biệt xu hướng phát triển công nghệ tộc độ xử lý nhanh tốc độ truy cập DRAM Dưới năm cách tối ưu hóa: 4.1 Sử dụng cache đa mức Nhiều công nghệ giảm Cache miss ảnh hưởng đến CPU Các công nghệ bỏ qua CPU mà tập trung vào giao diện Cache nhớ Sự khác lớn tốc độ nhớ xử lý đưa đến câu hỏi “Nên đưa cache tốc độ nhanh để phù hợp với tốc độ CPU hay Cache lớn để vượt qua khác biệt (về tốc độ truy nhập xử lý) CPU nhớ chính” Câu trả lời hai giải pháp Thêm mức Cache vào Cache ban đầu đơn giản hoá nhớ Mức thứ nhớ Cache đủ nhỏ để phù hợp với tốc độ CPU Mức thứ hai đủ lớn đạt nhiều thơng tin lấy từ nhớ giảm miss penalty Mặc dù khái niệm thêm mức nhớ khác vào nhớ phân cấp đắn làm việc phân tích CPU trở nên phức tạp 4.2 Critical word first - Early restart Cơng nghệ Cache đa mức địi hỏi phải có phần cứng đặc biệt để giảm miss penalty, cơng nghệ khơng thiết phải có phần cứng mạnh Khả CPU cần đủ để đọc từ ‘word’ Block thời điểm Không phải chờ đủ Block tải xuống trước gửi tìm kiếm ‘word’ khởi động CPU Có hai bước sau: Critical word first: Tìm miss ‘word’ từ nhớ gửi đến CPU, cho phép CPU tiếp tục thực điền đầy Block Cơng nghệ cịn có tên gọi tìm ‘word’ trước Early restart: khởi động CPU đọc không chờ đủ khối Nhìn chung cơng nghệ phù hợp với thiết kế nhớ Cache có kích thước Block đủ lớn 4.3 Ưu tiên đọc miss Điều tối ưu hố đọc trước ghi hồn thành Xem xét ghi đệm với ghi xuyên qua Cache Write-through (ghi Cache nhớ chính) Cách đơn giản song song đọc miss chờ đến đệm trống Luân phiên kiểm tra nội dung đệm đọc miss khơng có xung đột hệ thống nhớ cho phép tiếp tục đọc miss 4.4 Liên kết đệm đọc Công nghệ bao gồm ghi đệm Ghi xuyên qua Cache dựa vào đệm ghi, tất thông tin lưu trữ phải gửi đến mức thấp nhớ phân cấp Như đề cập trên, việc ghi Cache sử dụng đệm Block thay đệm ghi trống liệu tất địa ghi lên đệm CPU tiếp tục làm việc đệm ghi sẵn sàng ghi ‘word’ lên nhớ Nếu đệm bao gồm Block khác, điạ kiểm tra, địa liệu tích hợp gọi liên kết ghi Nếu đệm đầy CPU phải chờ đệm giải phóng hết Chú ý ghi vào/ra thường tham chiếu đến không gian địa nhớ Địa vào/ra cho phép ghi liên kết 4.5 Victim Cache Một cách tiếp cận để có Miss penalty thấp lưu lại liệu loại bỏ khỏi Cache trường hợp cần sử dụng lại Hình - Victim Cache bao gồm Block loại khỏi Cache GIẢM MISS RATE Các phương pháp truyền thống để cải thiện cách hoạt động Cache giảm miss rate, có kỹ thuật thực việc Để thấu hiểu nguyên nhân gây lỗi bắt đầu với việc xếp tất lỗi vào loại đơn giản Bắt buộc: truy cập đến Block khơng từ Cache Block mang vào Cache Điều gọi lỗi tham khảo Dung lượng: Nếu Cache không chứa tất Block cần trình thực chương trình Xung đột: Nếu kế hoạch xắp xếp Block thiết lập thành tổ chức ánh xạ trực tiếp, lỗi xung đột xảy lỗi đưa phục hồi nhiều Block ánh xạ tới thiết lập Các lỗi gọi va đập lỗi giao thoa lỗi Điều lý giải va chạm Cache liên kết đầy đủ lỗi Nway, Cache liên kết thiết lập có nhiều N yêu cầu vài tập phổ biến Hình mơ tả mối quan hệ thường xuyên tỷ lệ lỗi, hỏng hóc yếu tố “C”: lỗi cưỡng xảy la nhiều Cache, lỗi dung lượng xảy Cache liên kết đầy đủ, lỗi xung đột xảy từ liên kết đủ đến liên kết 8–way, 4-way Sau mức xung đột: 8-way: Lỗi va chạm có sẵn way 4-way: Lỗi va chạm có sẵn 2-way: Lỗi va chạm có sẵn 1-way: Lỗi va chạm có sẵn trực tiếp) liên kết đầy đủ (không va chạm) tới 8liên kết từ 8-way đến 4-way liên kết từ 4-way đến 2-way liên kết từ 2-way đến 1-way (ánh xạ Nếu nhớ mức nhỏ so với chương trình chạy tỷ lệ phần trăm việc chuyển liệu bị hỏng mức phân cấp Bộ nhớ phân cấp gọi thrash Bởi có nhiều thay yêu cầu thrashing nghĩa máy tính chạy mức độ tốc độ thấp nhớ chậm lỗi phần mào đầu Các phương pháp khác nhằm cải thiện 3C làm cho Block lớn làm giảm lỗi bắt buộc Song lại thấy Block lớn lại làm tăng số kiểu lỗi khác 3C làm cho ta hiểu lỗi đơn giản lại bị giới hạn, đưa cho ta nhìn rõ ràng hoạt động trung bình song lại khơng giải thích lỗi riêng Ví dụ thay đổi kích cỡ Cache, lỗi va đập thay đổi giống lỗi dung lượng Từ lúc kích thước Cache liên quan đến nhiều Block hơn, theo cách lỗi chuyển từ lỗi dung lượng đến lỗi va đập làm thay đổi kích thước Cache Chú ý 3C bỏ qua điều khoản thay khó để dập khn Tóm lại khơng có ý nghĩa đáng kể Trong trường hợp thay đổi cách giải thực dẫn đến thái độ không qui tắc làm giảm lỗi liên kết rộng, điều mâu thuẫn với phương pháp (một số đề xuất dùng vết địa để xác định xếp tối ưu ngăn ngừa lỗi xếp từ phương pháp 3C) Rất nhiều kỹ thuật làm giảm miss rate lại làm tăng điểm lỗi số lần va đập Dùng kỹ thuật để giải vấn đề song phải chống lại cân với mục tiêu tồn hệ thống chạy nhanh Hình 4: Mối quan hệ thường xuyên tỷ lệ lỗi, hỏng hóc yếu tố “C” 5.1 Kích thước Block lớn Con đường đơn giản để làm giảm tỷ lệ lỗi tăng kích thước Block lớn Hình đưa cân băng kích thước Block với tỷ lệ lỗi cho thiết lập chương trình cỡ Cache Tăng kích thước Block làm giảm lỗi bắt buộc Việc giảm xảy theo nguyên lý phận: vị trí thời gian khơng gian Tăng kích thước Block làm tăng vị trí khơng gian Tại thời điểm đó, tăng kích thước Block làm tăng điểm lỗi làm giảm tăng kích thước Block làm tăng lỗi va đập, chí lỗi dung lượng Cache nhỏ Rõ ràng có lý để tăng kích thước Block lại làm tăng tỷ lệ lỗi dẫn đến điều không làm giảm tỷ lệ lỗi tăng thời gian truy nhập nhớ trung bình tăng điểm lỗi nặng giảm tỷ lệ lỗi Hình 5: Sự cân băng kích thước Block với miss rate cho thiết lập chương trình cỡ Cache 5.2 Cache lớn Hiển nhiên giảm lỗi dung lượng làm tăng dung lượng Cache Mặt hạn chế thời gian va đập dài hơn, giá cao Kỹ thuật ưa chuộng đặc biệt Off-chip Cache Kích thước Cache L2 L3 năm 2001 tương đương với kích thước nhớ máy tính mơ tả phần đầu 5.3 Liên kết cao Đầu tiên thiết lập liên kết 8-way cho mục đích thực hành có ảnh hưởng giảm lỗi tính qua việc sử dung Cache liên kết đầy đủ Có thể thấy khác biệt so sánh 8-way tới cột lỗi dung lượng hình 1.4, lỗi dung lượng tính qua việc sử dụng Cache liên kết đầy đủ Quan sát thứ gọi cache rule of thumb tìm thấy phía bên bảng Cache ánh xạ trực tiếp kích thước N tỷ lệ lỗi Cache liên kết thiết lập 2-way kích thước N/2 Nó giữ kích thước Cache nhỏ 128 Kbyte Để cải thiện khía cạnh thời gian truy nhập nhớ trung bình dẫn đến gây lãng phí khác Tăng kích thước Block giảm Miss rate lại làm tăng điểm lỗi liên kết lớn làm tăng thời gian va đập Kể từ sức ép việc thiết kề nhớ Cache đơn tương thích với chu kỳ xử lý nhanh lại làm tăng liên kết lợi cho điểm lỗi 5.4 Dự đoán giả ngẫu nhiên Cache Một phương pháp khác làm giảm lỗi va đập chưa trì tốc độ va đập Cache ánh xạ trực tiếp Trong phương pháp dự đoán, bit thêm vào để đoán trước việc thiết lập truy nhập Cache Dự báo có nghĩa ghép thiết lập để dễ dàng cho việc lựa chọn thiết lập mong muốn so sánh Tag đơn thực chu kỳ đồng hồ Các nghiên cứu liên quan gọi liên kết giả ngẫu nhiên liên kết cột Sự truy cập bắt nguồn từ nhớ ánh xạ trực tiếp cho va đập Trên lỗi, trước đến mức thấp phân cấp nhớ cổng Cache thứ dược kiểm tra xem không Một cách thức đơn giản để đảo ngược hầu hết bit có nghĩa trường số để tìm Block giả ngẫu nhiên Cache liên kết giả ngẫu nhiên có thời gian va đập lúc nhanh lúc chậm, đáp ứng với va đập thường xuyên va đập ngẫu nhiên tới điểm lỗi Hình mô tả số lần liên quan, mối nguy hiểm xảy nhiều lần va đập nhanh nhớ Cache ánh xạ trực tiếp trở nên va đập chậm Cache liên kết giả ngẫu nhiên Chất lượng bị suy giảm trình tối ưu Đề nghị thứ hai để giữ nhớ Cache đơn giản sử dụng ánh xạ trực tiếp Một thuận lợi nhớ Cache giúp cho người thiết kế gối chồng lên Tag kiểm tra với việc truyền liệu Điều làm giảm Hit time có hiệu Do đó, tần suất chu kỳ hoạt động nhanh thúc đẩy thiết kết nhớ Cache nhỏ đơn giản cho nhớ Cache L1, Cache L2 Một tiếp cận để định nghĩa vai trò Hit time trước hết việc xây dựng xử lý để dùng công cụ CAD CACTI, chương trình dự đốn thời gian truy cập cấu trúc nhớ Cache thay đổi lên vi xử lý CMOS vòng 10% cơng cụ CAD chi tiết Vì cỡ đặc điểm tối thiểu vậy, dự Hit time nhớ cache phản phân loại kích cỡ nhớ Cache, liên hợp số lượng cổng đọc/viết 7.2 Tránh số trình dịch địa nhớ Cache Một nhớ Cache đơn giản nhỏ phải đối mặt với việc truyền tin ảo từ CPU đến địa vật lý để truy cập nhớ Bộ xử lý xem nhớ mức khác việc phân cấp nhớ địa nhớ ảo mà tồn đĩa phải bị ánh xạ vào nhớ chủ Thông thường ta sử dụng địa ảo cho nhớ Cache, từ xung đột thông thường nhiều lỗi Những nhớ Cache gọi nhớ Cache ảo với nhớ Cache vật lý sử dụng để định nhớ Cache cũ mà sử dụng địa vật lý Như tìm hiểu việc phân loại nhiệm vụ quan trọng: đánh số nhớ Cache so sánh địa Do vấn đề liệu địa ảo vật lý dùng lập hướng dẫn nhớ Cache liệu biểu đồ ảo thực có sử dụng so sánh TagMột lý bảo vệ Bảo vệ mức độ tứng trang kiểm tra phần việc dịch địa ảo tới địa vật lý phải đảm bảo khơng vấn đề Một giải pháp để copy thông tin bảo vệ từ TLB lỗi, thêm vào miền để nắm giữ chúng kiểm tra truy cập đến nhớ Cache có địa ảo Một lý khác thời điểm xảy chuyển mạch, địa ảo đề cập đến địa vật lý khác nhau, yêu cầu nhớ Cache cần động Lý thứ nhớ Cache ảo không thông dụng hệ thống hoạt động chương trình sử dụng dùng địa ảo khác cho địa vật lý Những địa đúp gọi đồng nghĩa bí danh ảnh hưởng đến liệu nhớ Cache ảo, sửa sai Với nhớ Cache vật lý, điều không xảy từ truy cập bị chuyển sang khối nhớ Cache vật lý Các giải pháp phần cứng cho vấn đề đồng nghĩa gọi anti-aliasing đảm bảo khối nhớ Cache địa chỉvật lý Phần cuối mối quan tâm với địa ảo vào/ra chúng dùng địa vật lý yêu cầu ánh xạ địa ảo để tác động đến Cache ảo Một thay đổi nhớ ảo vật lý dùng phần page offset phần xác định hai để số nhớ Cache Tại thời điểm mà nhớ Cache bị đọc sử dụng số, phần ảo địa dịch Tag sử dụng địa vật lý Sự thay đổi cho phép nhớ Cache bắt đầu so sánh Tag với địa vật lý Để giới hạn số ảo này, Tag vật lý luân phiên ánh xạ trực tiếp Cache khơng lớn kích thước page Sự tích hợp giữ số phần vật lý địa chưa hỗ trợ mở rộng dung lượng Cache 7.3 Truy nhập Cache Pipelined Kỹ thuật đơn giản để Cache pipelined truy xuất hiệu tiềm tàng xung đột Cache mức đa chu kỳ đồng hồ, đưa chu kỳ thời gian nhanh xung đột chậm Ví dụ Pipelined cho Pentium lấy chu kỳ đồng hồ để truy nhập vào thị Cache, với Pentium Pro, Pentium III lấy chu kỳ Pentium lấy chu kỳ Sự phân tách làm tăng giai đoạn Pipelined ảnh hưởng đến bất lợi nhánh dự đoán chu kỳ đồng hồ kết việc Load sử dụng liệu Chú ý kỹ thuật thực làm tăng băng thông phần thị mà chúng làm giảm xung đột tiềm tàng nhớ Cache 7.4 Vết Cache Một thử thách nỗ lực tìm kiếm song song mức thị thị chu kỳ để cung cấp thị đầy đủ với tất chu kỳ không độc lập Một giải pháp gọi Cache trace thay giới hạn cache block tới vùng khơng gian, Trace cache tìm chuỗi động thị kể nhánh có để tải vào Cache block Tên mạch liệu từ cache block chứa vết động thị thực thi xác nhận CPU chứa chuỗi tĩnh thị xác nhận nhớ Rõ ràng trace cache có cấu ánh xạ địa phức tạp địa khơng dài xếp tới bội số kích thước ‘word’ Tuy nhiên chúng khơng đem lại lợi ích khơng tận dụng phần chia sẻ liệu Cache thị Các block dài Cache qui định đưa vào từ nhánh có sẵn tỷ lệ phần chia block bao trùm khơng gian Cache khơng lấy Tương tự block bới nhánh có sẵn Do tỷ lệ chia block bị lãng phí Các nhánh có sẵn thay đổi đột ngột đến 10 thị Trace cache lưu trữ thị từ điểm cuối nhánh tới đầu trace tránh phần mào đầu vết Mức độ trace cache lưu trữ thị loại đa tần thị Cache Các nhánh kiến tạo nên kết lựa chọn khác thị trở thành phần Cache riêng rẽ bao gồm không gian Cache BỘ NHỚ CHÍNH VÀ CÁCH TỔ CHỨC HIỆU QUẢ Bộ nhớ mức mơ hình phân cấp Bộ nhớ đáp ứng yêu cầu Cache phục vụ cho giao diệ vào/ra Nó đích đến đầu vào giống điểm gốc đầu Hiệu đo nhớ nhấn mạnh trễ băng thơng (băng thông nhớ số byte đọc ghi đơn vị thời gian) Như truyền thống, khả trễ nhớ mối quan tâm Cache băng thơng nhớ lại mối quan tâm thiết bị ngoại vi vi xử lý Mặc dù Cache quan tâm làm trễ chậm nhớ Xong hầu hết lại dễ dàng tăng băng thông nhớ với cách tổ chức làm giảm trễ Phổ biến Cache mức L2 kích thước Block chúng lớn dễ dàng đạt việc tăng băng thông nhớ cách thuận lợi Có thể tổ chức lại nhớ làm giảm khe hở CPU-DRAM cách đơn giản tạo Cache lớn thêm nhiều mức Cache khác cách sinh lợi giảm thiểu khe hở nói Sáng kiến tổ chức lại nhớ cần thiết Trong phần nghiên cứu cách thức tổ chức nhớ để tăng băng thông Giả sử ta cho hiệu việc tổ chức lại nhớ là: chu kỳ đồng hồ cho việc gửi địa 56 chu kỳ đồng hồ cho thời gian truy nhập ‘word’ chu kỳ đồng hồ cho gửi ‘word’ liệu Cho trước Block ‘word’, ‘word’ byte, Miss penalty 4x(4+56+4) 256 chu kỳ đồng hồ với băng thông nhớ 1/8 byte (32/256) chu kỳ đồng hồ Giá trị trường hợp lỗi Hình 1.9 cho thấy vài tuỳ chọn nhớ nhanh Ba giải pháp cho kỹ thuật nhớ chung Hình 9: Ba ví dụ độ rộng Bus, độ rộng nhớ xen để đạt băng thông nhớ rộng (a) thiết kế đơn giản với độ rộng ‘word’ nhiều (b) mở rộng nhớ, Bus L2 hẹp L1, (c) cho thấy Bus Cache hẹp với nhớ xen 8.1 Mở rộng nhớ Cache lớp thường tổ chức với độ rộng vật lý ‘word’ hầu hết CPU truy nhập Hình 1.9 (a) cho thấy tăng gấp đôi hay gấp bốn Cache nhớ làm tăng tương tự băng thông nhớ Với nhớ có độ rộng ‘word’ Miss penalty rơi vào khoảng từ đến 64 256 chu kỳ đồng hồ độ rộng ‘word’ Miss penalty rơi vào khoảng từ 14 đến 64 Băng thơng 1/4 byte chu kỳ đồng hồ độ rộng ‘word’ 1/2 byte chu kỳ đồng hồ độ rơng ‘word’ Đó chi phí cho đường kết nối rộng CPU nhớ, điển hình gọi nhớ Bus CPU truy nhập vào Cache qua ‘word’ khơng cần ghép Cache CPU ghép nằm luồng cảnh báo định thời Cache L2 trợ giúp từ ghép L1 Cache không luồng cảnh báo Khi nhớ mở rộng, mặt hạn chế việc tăng lên thấp gấp đôi độ rông tăng gấp đôi hay Thêm vào nhớ với phần kiểm tra lỗi gặp khó khăn việc ghi liệu tới phần chia khối bảo vệ, giống byte Sự dừng lại liệu phải đọc mã lỗi tính toán lưu lại liệu ghi Nếu việc kiểm tra lỗi thực tồn băng thơng, độ rộng nhớ bị giảm tần số trình tự “Read modifywrite” phần ghi thêm phần cần ghi Rất nhiều thiết kế cho việc mở rộng nhớ có phần kiểm tra nhớ riêng rẽ ‘word’ hầu hết 8.2 Bộ nhớ xen lẫn đơn giản Tăng kích thước biện pháp để cải thiện băng thơng, xong cịn có cách khác để cải thiện trễ song song cách sử dụng nhiều Chip hệ thống nhớ, Chip nhớ tổ chức thành băng để đọc ghi lúc nhiều ‘word’ thời điểm ‘word’ Cuối mục đích nhớ xen làm cải thiện trễ băng thông nhớ tất Chip hệ thống, trái lại hầu hết hệ thống nhớ chứa ‘word’ yêu cầu Có nguyên lý ảnh hưởng đến khả nhớ hệ thống, ảnh hưởng đến định khác phụ thuộc quan hệ quan trọng khả chống lại thực thi Vì Bank có độ rộng ‘word’ độ rộng Cache Bus không thay đổi địa gửi tới số Bank cho phép đọc cách đồng thời Hình 1.9(c) mơ tả cách tổ chức Hình 10: Bộ nhớ đường riêng rẽ Mục tiêu hệ thống nhớ đưa thông tin từ Bank, chu kỳ đồng hồ tới truy xuất liên tiếp Để xem có cơng thức hình dung có vài Bank so với chu kỳ đồng hồ để truy cập nhớ từ 64 bit Bank với lần truy cập 10 chu kỳ đồng hồ Sau 10 chu kỳ CPU lấy ‘word’ Bank 0, sau Bank tác động đến ‘word’ mà muốn CPU nhận ‘word’ Bank khác Tại chu kỳ 18, CPU đứng cửa Bank đợi ‘word’ CPU đợi chu kỳ 20 xuất Kể từ muốn nhiều Bank chu kỳ đồng hồ để đợi Tuy nhiên dung lượng Chip nhớ tăng lên có số Chip có kích thước với nhớ, nên việc tạo Bank lãng phí Ví dụ nhớ 512MB giữ 256 Chip nhớ 4MB (4bit) dễ dàng tổ chức thành 16 Bank 16 Chip nhớ Tuy nhiên có 16x64MB (4bit) Chip nhớ cho 64MB tạo nên Bank giới hạn Rất nhiều nhà sản xuất muốn có nhớ tuỳ chọn dựa phương thức Việc có số Chip điểm không thuận lợi Bank nhớ xen Chip tổ chức với đường rộng 16M x 16bit Điểm không thuận lợi thứ Bank nhớ khó mở rộng nhớ Hệ thống nhớ phải hỗ trợ đời Chip nhớ thay đổi điều khiển nhớ xen dựa kích thước vật lý nhớ, hai 8.3 Bank nhớ độc lập Nguồn gốc thúc đẩy cho việc tăng Bank nhớ băng thông cao truy nhập liên tục xen rẽ Phần cứng khơng khó q Bank chia sẻ địa đường với điều khiển nhớ cho phép Bank chia liệu Bus nhớ Tổng quát hoá xen rẽ cho phép nhiều truy nhập độc lập, nơi có nhiều điều khiển nhớ cho phép Bank hoạt động độc lập Mỗi Bank cần địa đường riêng biệt Bus liệu riêng Ví dụ thiết bị đầu vào dùng điều khiển Bank, đọc Cache dùng khác, ghi Cache lại dùng khác Như thiết kế tạo chiều với Bank nhớ, khơng nhiều nơi đọc hỗ trợ cổng nhớ mang lại lợi ích nhỏ truy nhập chồng lấp truyền Đa xử lý chia sẻ nhớ chung để cung cấp thêm Bank nhớ CÔNG NGHỆ BỘ NHỚ Các vấn đề cơng nghệ nhớ: Access time: thời gian kể từ có yêu cầu nhận liệu Cycle time: Khoảng thời gian cho phép tối thiểu lần đọc liệu 9.1 Công nghệ DRAM (Dynamic RAM) Đây nhớ cho máy tính (Desktop Server) Được thiết kế dạng ma trận đó, phần (1/2) số bit địa ô nhớ số hàng phần lại cột Việc đọc liệu chia thành bước: RAS (Row Access Strobe) CAS (Column Access Strobe) DRAM sử dụng Transistor cho bit liệu Khi liệu đọc liệu ô nhớ bị phải “nạp lại” Dữ liệu phải khôi phục lại “mất lượng” tối thiểu ms Theo quy luật Amdahl: dung lượng nhớ nên tăng tuyến tính với tốc độ CPU: 1.000 MIPS (Milion Instruction Per Second) nên có 1.000 Megabyte nhớ Tốc độ DRAM tăng chậm 9.2 Công nghệ SRAM (Static RAM) DRAM địi hỏi liệu phải khơi phục sau đọc SRAM khơng (do thường sử dụng Transistor để lưu bit) SRAM cần lượng để lưu thơng tin khơng địi hỏi phải Refresh liệu nhiều DRAM (do bị lượng) DRAM thiết kế để phục vụ tốn dung lượng/giá thành cịn SRAM phục vụ tốn dung lượng/tốc độ SRAM khơng sử dụng cách đánh địa nhân bội (Multiplexor) SRAM nhanh đắt DRAM 9.3 Công nghệ nhớ xử lý nhúng Thường dùng cho máy tính nhúng Có đại diện ROM Flash Memory ROM ghi vào thời điểm sản xuất, sử dụng transistor cho bit thông tin Dữ liệu ghi ROM khơng bị “thất thốt” khơng bị phá hủy Với Flash Memory liệu thay đổi sau sản xuất không bị trình sử dụng Nó có tốc độ đọc tương đương với DRAM tốc độ ghi chậm (10-100 lần) 9.4 Các phương pháp tăng tốc độ nhớ Chip DRAM chuẩn Fast Page Access: Sử dụng đệm bit (theo hàng) Synchronous DRAM (SDRAM): Tối ưu truy nhập DRAM điều khiển nhớ qua kỹ thuật đồng bộ, có ghi (có khả lập trình) để ghi số byte cần phải đọc nhờ gửi nhiều byte số xung nhịp với yêu cầu DDR - Double Data Rate: Truyền liệu theo cạnh lên xuống xung nhịp đồng hồ DRAM (nhân tốc độ) Các kỹ thuật thực nguyên lý băng thông nhớ cách bổ sung phép tính logic, chấp nhận tăng chút giá thành để có kết tốt đáng kể băng thông 9.5 Tăng tốc độ nhớ giao diện DRAM - RAMBUS Hoạt động hệ thống nhớ thay thành phần nhớ: Chip cấy thêm giao diện tốc độ cao Thế hệ RAMBUS thứ thay RAS/CAS Bus cho phép sử dụng thời gian từ gửi địa nhận liệu (RDRAM) Thế hệ RAMBUS thứ hai (Direct - DRDRAM) sử dụng Bus lệnh riêng cho truy nhập hàng, cột thay sử dụng phương pháp Multiplex thông thường 10 BỘ NHỚ ẢO 10.1 Yêu cầu đời nhớ ảo Máy tính chạy nhiều tiến trình với nhớ riêng Chi phí q lớn giành tồn khơng gian địa nhớ máy tính (tồn địa chỉ) cho tiến trình thực ra, tiến trình thường sử dụng phần (đôi nhỏ) không gian đia máy Điều dẫn đến yêu cầu cần phải có chế chia sẻ phần nhỏ nhớ vật lý cho tiến trình Một lựa chọn nhớ ảo - chia nhớ thành khối phân phối cho tiến trình Điều dẫn đến yêu cầu mơ hình bảo vệ, giới hạn tiến trình truy nhập phần nhớ Mặc dù việc sử dụng nhớ ảo thiết yếu máy tính ngày nay, việc chia sẻ nhớ khơng phải ngun nhân dẫn đến việc đời nhớ ảo Nguyên nhân sau: Nếu chương trình lớn nhớ vật lý lập trình viên phải tìm cách chia chương trình thành phần nhỏ, nạp, thực giải phóng phần tùy theo yêu cầu chương trình Lập trình viên phải chắn chương trình khơng thử sử dụng nhớ lớn nhớ vật lý máy tính cụ thể Các Overlay phải nạp vào thời diểm đắn… Bộ nhớ ảo thiết kế để giải phóng nhà lập trình khỏi vấn đề này: Tự động quản lý mức cấu trúc phân cấp nhớ: nhớ lưu trữ thứ cấp Hình 11: Chương trình với khơng gian nhớ ảo liên tục bên trái bao gồm trang A, B,C, D vị trí thực chúng: nhớ vật (A, B,C) ổ đĩa (D) 10.2 Mô tả nhớ ảo Bộ nhớ ảo có nhiều điểm tương đồng với nhớ Cache: Page, Segment tương đương với Block Page fault Address fault tương đương với Cache miss CPU thực dịch địa ảo sang địa vật lý nằm nhớ Sự thay trang địa ảo thực hệ điều hành Không gian địa CPU định kích thước nhớ ảo Bộ nhớ ảo bao gồm khối có kích thước cố định (page) khối có kích thước khác (segment) Việc sử dụng nhớ với khối có kích thước cố định hay không ảnh hưởng đến thiết kế CPU Một số máy tính ngày thiết kế theo hướng lai ghép segment page có hướng page có kích thước nhân bội kích thước nhỏ a Block đặt đâu nhớ chính: Hệ điều hành cho phép đặt nhớ vị trí nhớ b Làm để tim block nhớ chính: Phương pháp phân trang hay phân đoạn dựa cấu trúc liệu đánh số theo số (định danh) trang đoạn Cấu trúc liệu chứa địa vật lý block Đối với phương pháp phân đoạn, địa offset cộng vào địa vật lý segent để có địa vật lý thực Hình 12:Ánh xạ địa ảo sang địa vật lý thông qua bảng số trang Cấu trúc liệu chứa địa vật lý page (thường lấy từ bảng page) Số phần tử trang tương ứng với số trang vùng khơng gian địa ảo Ví dụ: Nếu ta có 32 bit địa ảo với 4KB trang byte cho phần tử kích thước bảng page (232/212)x22 = 222 hay 4MB Để giảm kích thước bảng này, số máy tính áp dụng hàm “băm” để đánh địa ảo Phương pháp cho phép cấu trúc dự liệu số trang vật lý nhớ Số nhỏ nhiều so với số trang ảo Ví dụ: Nếu có 512MB nhớ vật lý cần 1MB (8x512MB/4 KB) để làm bảng trang byte bổ sung sử dụng cho địa ảo Kiến trúc HP/IA-64 cho phép sử dụng phương pháp truyền thống phương pháp nghịch đảo nên nhà lập trình hệ điều hành lựa chọn phương pháp c Cách thay khối khơng tìm thấy địa chỉ: Hệ điều có nhiệm vụ giảm tối đa lỗi page fault (khơng tìm thấy trang) nên hầu hết hệ điều hành hướng việc thay dựa nguyên tắc thay khối sử dụng (LRU - Least-Recent Used) Một số xử lý cho phép sử dụng bit để mô tả việc khối sử dụng hay không hệ điều hành theo chu kỳ đặt lại bit Bằng cách này, hệ điều hành theo dõi mức độ sử dụng trang để đưa định thay d Việc ghi liệu thực nào: Do tốc độ đĩa cứng chậm so với nhớ nên tất xử lý sử dụng phương pháp ghi trả sau (Write-back) Ngồi ra, xử lý cịn sử dụng ‘Dirty bit’ để xác định xem vùng nhớ có bị thay đổi khơng để định ghi thông tin lên đĩa (khi block bị thay thế) 10.3 Các kỹ thuật dịch nhanh (từ địa ảo sang địa vật lý) Việc sử dụng trang nhớ đồng nghĩa với việc truy nhập nhớ dài gấp đơi bình thường phải thực hai động tác: Một lần để lấy địa vật lý lần để truy nhập ô nhớ Một phương án giải lưu lại lần diễn dịch cuối việc ánh xạ bỏ qua địa truy nhập có trang giống trang vừa dùng Mộ phướng án chung sử dụng nguyên tắc địa phương hoá (như việc sử dụng nhớ phân cấp Cache) cách lưu lại thông tin diễn dịch địa vùng Cache đặc biệt Translation Look-aside Buffer (TLB) hoạt động theo nguyên tắc nhớ Cache 10.4 Lựa chọn kích thước trang nhớ Một tham số quan trọng kiến trúc máy tính kích thước trang nhớ Lựa chọn liên quan đến xu hướng lựa kích thước trang nhớ lớn hay nhỏ Các lợi ích dùng kích thước trang nhớ lớn: Cho phép sử dụng Cache lớn có số Cache hit cao Có hiệu di chuyển trang lớn từ nhớ thức cấp đến nhớ ngước lại Do số lượng hạn chế TLB mà việc sử dụng trang lớn khiến cho việc ánh xạ địa có hiệu hơn, giảm số lần TLB miss Các lợi ích dùng kích thước trang nhớ nhỏ tiết kiệm nhớ giảm số lượng vùng nhớ phân mảnh Các thiết kế xử lý gần chuyển sang hỗ trợ trang nhớ có kích thước trang khác 10.5 Tổng kết nhớ ảo nhớ Cache Địa ảo chia thành phần đánh số trang ảo offset Số trang gửi đến TLB để diễn dịch địa vât lý offset gửi đên L1 số Cache Qua cách thực mơ tả hình vẽ, hệ thống nhớ định việc đọc liệu từ cache L1 hay L2 hay từ nhớ để gửi đến CPU Hình 13:Sơ đồ tổng quan nhớ phân cấp nhớ ảo 11 CHẾ ĐỘ BẢO VỆ Việc phát kiến đa lập trình máy tính chạy nhiều chương trình tương tranh dẫn đến yêu cầu chế độ bảo vệ chia sẻ nhiều chương trình Các yêu cầu liên quan chặt chẽ với nhớ ảo máy tính ngày Đa lập trình dẫn đến khái niệm tiến trình yêu cầu chuyển điều khiển từ tiến trình sang tiến trình khác Một tiến trình cần phải làm việc xác cho dù thực liên tục từ đầu hay liên tục bị ngắt tiến trình khác Các nhà thiết kế CPU hệ điều hành có trách nhiệm đảm bảo cho tiến trình thực chuẩn xác Các nhà thiết kế máy tính cần phải đảm bảo thơng tin tiến trình CPU lưu nạp trở lại Thiết kế hệ điều hành phải đảm bảo tiến trình khơng thể can thiệp vào q trình tính tốn Cách an tồn lưu tồn thơng tin tiến trình vào đĩa khiến cho thời gian thực bị kéo dài Vấn đề giải cách phân vùng nhớ hệ điều hành, nhờ trạng thái tiến trình đặt nhớ Điều đặt yêu cầu nhà thiết kế xử lý phải có chế bảo vệ để tiến trình khơng thể sửa đổi thơng tin Bên cạnh việc bảo vệ đó, máy tính cần phải cho phép chia sẻ mã chương trình liệu tiến trình phép trao đổi thơng tin tiến trình để tiết kiệm nhớ có thơng tin giống hệt Cơ chế bảo vệ đơn giản cặp ghi kiểm tra địa để chắn địa hợp lệ, nằm khoản địa Base Bound: Base Address Bound Do số hệ thống, địa số dương cộng vào địa Base nên điều kiện kiểm tra cịn: Base + Address Bound Nếu tiến trình người dùng mà thay đối ghi Base Bound khơng cịn chế độ bảo vệ Tuy nhiên hệ điều hành lại phải có khả đổi ghi để chuyển đổi tiến trình Như thiết kế xử lý cần phải đảm bảo yêu cầu để hệ điều hành thực bảo vệ tiến trình: Có chế độ bảo vệ cho tiến trình: người dùng hệ điều hành (Kernel) Cung cấp phần trạng thái CPU mà tiến trình người dùng sử dụng khơng thể ghi Trạng thái bao gồm ghi Base/Bound, chế độ User/Supervisor, cho phép/ không cho phép ngoại lệ… Cung cấp chế để CPU chuyển từ chế độ User sang Supervisor ngược lại Bộ nhớ ảo đưa phương án “tinh xảo” so vói mơ hình đơn giản Địa CPU ánh xạ từ địa ảo sang địa vật lý, việc tạo hội cho phần cứng có khả kiểm duyệt lỗi chương trình thực chế bảo vệ tiến trình Phương án đơn giản bổ sung cờ hiệu page segment Ví dụ, hệ điều hành gán cờ hiệu Read-only cho page nhớ chứa mã chương trình “bắt giữ” cố gắng thay đổi page nhớ Động tác dịch địa kết hợp với tín hiệu chế độ User/Kernel giúp cho việc phát truy nhập nhớ không hợp lệ trước chúng thực Các tiến trình cịn bảo vệ việc sử dụng bảng page nhớ riêng (mỗi phần tử trỏ đến page khác nhau) Một số CPU bổ sung chế bảo vệ theo vòng (Ring) cho phép mở rộng mức độ bảo vệ từ mức lên nhiều vịng Các vịng có mức độ “tin cậy” cao vịng ngồi Tuy nhiên, thực tế, việc bổ sung thêm nhiều mức bảo vệ chưa cải tiến tốt mơ hình hai lớp Một phương án khác sử dụng “chìa” chế khóa Tuy nhiên phương án địi hỏi hỗ trợ lớn từ phía phần cứng ... dụng nhớ lớn nhớ vật lý máy tính cụ thể Các Overlay phải nạp vào thời diểm đắn… Bộ nhớ ảo thiết kế để giải phóng nhà lập trình khỏi vấn đề này: Tự động quản lý mức cấu trúc phân cấp nhớ: nhớ. .. nhớ thấp việc phân cấp nhớ nơi mà địa CPU tới Do nhớ phân cấp nhiều mức nên khắc phục hạn chế tốc độ máy tính dung lượng nhớ tăng lên Khi CPU truy cập nhớ có khả xảy ra: - Nếu từ nhớ có cache... - Nếu từ nhớ khơng có cache gọi cache miss CPU truy cập nhớ cache theo từ nhớ, nhớ chia thành khối nhớ có kích thước gọi block nhớ Các khối nhớ mà CPU truy cập chuyển từ nhớ đặt vào nhớ cache,