Phân cấp bộ nhớ trong ARM Cortex-A8 và Intel core i7
Trang 1Đề tài : Phân cấp bộ nhớ trong ARM Cortex-A8 và Intel core i7
Kiến trúc máy tính
Giảng viên hướng dẫn: Tạ Thị Kim Huệ
Trang 2Phân cấp bộ nhớ trong ARM Cortex-A8, Intel core i7
1 ARM Cortex - A8
2 Intel Core i7
Trang 3 ARM Cortex-A8 được phát triển dựa trên kiến trúc ARMv7: tốc độ có thể đạt từ 600MHz đến hơn 1GHz.
ARM Cortex-A8 được ứng dụng nhiều trong các thiết bị đầu cuối hiện nay như: netbook, máy in, điện thoại thông minh, tivi kỹ thuật số
ARM Cortex-A8 có 2 mức cache cho hiệu suất tối ưu trong các hệ thống hiệu năng cao
Trang 4ARM Cortex-A8
L1 gồm một cặp cache (gồm instruction và data)
Có 4 cách thiết lập được lựa chọn từ kích thước 16KB hoặc 32KB
Chúng đều được gắn trường tag dùng để xác định chỉ số của instructon và data
Cả intructon caches và data caches đều có khả năng cung cấp 2 word/cycle cho tất cả các nguồn yêu cầu
Data caches có thể cung cấp 4 word/cycle cho bộ nhớ truy cập NEON hoặc VFP
Trang 5 Caches mức L1 cũng thực hiện các tính năng phát hiện lỗi chẵn lẻ Mục đích để tăng khả năng chịu lỗi bộ nhớ
Ở mức L1 intruction caches và data caches hỗ trợ phát hiện chẵn lẻ trên mảng dữ liệu: có 1 bit chẵn lẻ cho mỗi byte dữ liệu Đối với data caches, vì có những bit không mang dữ liệu trong mảng dữ liệu, bit chẵn lẻ tương ứng sẽ loại bỏ những bit không mang dữ liệu
Lỗi chẵn lẻ được báo cáo bởi việc truy instruction caches, các kết quả sẽ bị hủy bỏ
Lỗi chẵn lẻ được báo cáo bởi data caches truy cập dữ liệu không chính xác bị hủy bỏ
Trang 7 Cache ở mức L2 được phân chia thành nhiều banks để cho phép hoạt động song song
Cấp độ thứ nhất là mảng tag được chia thành nhiều banks
để cho phép lên đến 2 yêu cầu có thể truy cập vào các banks tag khác nhau của bộ nhớ caches L2 cùng 1 lúc
Cấp độ thứ 2 là mỗi banks tag được chia thành nhiều banks data để cho phép truyền tải các truy cập và banks data
Trang 8ARM Cortex-A8
Các bộ điều khiển bộ nhớ cache L2 hỗ trợ các giao việc thực hiện từ 1 công cụ lập trình nạp trước (PLE)
Các L2 PLE có 2 kênh cho phép 2 khối di chuyển dữ liệu đến hoặc từ bộ nhớ cache L2 RAM
Các L2 PLE cũng hỗ trợ khả năng bảo vệ dữ liệu một cách cụ thể bộ nhớ cache L2
Nếu phần mềm yêu cầu dữ liệu luôn luôn vẫn còn cư trú trong các cách cache L2, phần mềm có thể khóa các bộ nhớ cache cách cụ thể cho mỗi kênh khi chuyển PLE dữ liệu đến hoặc từ bộ nhớ cache L2 RAM
Khóa của một cách cụ thể chỉ đảm bảo rằng các PLE là trong RAM bộ nhớ cache L2 sau khi hoàn thành Nếu cách này không được khóa, nó có thể là phần mềm có thể đã bị đuổi hoặc thay thế dữ liệu với các cách mà các PLE được chuyển giao dữ liệu
Trang 9 Các bộ nhớ L2 hỗ trợ phát hiện chẵn lẻ trên các mảng tag
Các mảng dữ liệu có thể hỗ trợ chẵn lẻ hoặc Error Correction Code (ECC) Nếu hỗ trợ ECC được thực hiện, hai chu kỳ phụ được thêm vào các đường ống L2 để thực hiện các chức năng kiểm tra và sửa chữa
Ngoài ra, ECC giới thiệu vài chu kỳ để hỗ trợ điều kiện đọc-ghi-sửa đổi khi một tập hợp con của các dữ liệu được bảo hiểm theo logic ECC được cập nhật
Trang 10Intel Core i7
Vi kiến trúc Intel® mới nhất trên quy trình sản xuất 22 nm cung cấp các cải tiến đáng kể về hiệu suất - bao gồm bảo mật, thời lượng pin và đồ họa được cải thiện nhiều - cho trải nghiệm điện toán không phải thỏa hiệp
Với những tính năng chính như Công nghệ siêu phân luồng Intel®, cho phép mỗi lõi bộ xử lý làm việc đồng thời trên hai nhiệm vụ để đa nhiệm nhiều hơn, đến đồ họa Intel® Iris™ cho hình ảnh 3D tuyệt đẹp và nhanh hơn, chỉnh sửa ảnh và video tiên tiến hơn, bộ xử lý Intel® Core™ i7 thế hệ thứ 4 cung cấp hiệu năng tốt nhất trong cùng dòng sản phẩm cho những tác vụ có yêu cầu cao nhất
Trang 11 Core i7 có thể hỗ trợ tối đa ba kênh bộ nhớ , mỗi kênh gồm một bộ riêng biệt của DIMMs , và trong số đó có thể truyền song song.
Sử dụng DDR3-1066( DIMM PC8500 ), Core i7 có một băng thông bộ nhớ tối đa ~ 25 GB/giây
Core i7 sử dụng 48-bit địa chỉ ảo và 36-bit địa chỉ vật lý, năng suất một bộ nhớ vật lý tối đa 36 GB
Trang 12Intel Core i7
Quản lý bộ nhớ của core i7 được xử lý bằng một cấu trúc TLB 2 mức
Đặc điểm của cấu trúc TLB của Core i7, mức 1 gồm 2 phần riêng biệt là vùng nhớ lệnh và vùng nhớ dữ liệu, mức 2 chứa cả lệnh và dữ liệu
Trang 13 Hệ thống phân cấp Cache của Core i7: gồm 3 cấp L1, L2, L3.
Các mức cache L1, L2, L3 sử dụng write-back và kích thước mỗi block là 64bytes
L1, L2 là riêng biệt cho mỗi lõi, L3 được chia sẻ đều cho các lõi, mỗi lõi là 2MB
Trang 14Intel Core i7
Khi một lệnh đọc dữ liệu từ một vị trí bộ nhớ có sử dụng loại write-back (WB), bộ xử lý sẽ cho nó trong bộ nhớ cache và
bộ nhớ Trình tự truy cập và tra cứu trong trường hợp độ trễ lớn nhất
Độ trễ thực tế có thể khác nhau tùy thuộc vào hàng đợi chiếm bộ nhớ cache, công suất last level cache (LLC), thành phần bộ nhớ , và các thông số của chúng
Trang 15 Các LLC đã bao gồm tất cả các cấp bộ nhớ cache trên nó - dữ liệu chứa trong cache lõi cũng phải nằm trong LLC
Mỗi dòng bộ nhớ cache trong LLC giữ một dấu hiệu của các lõi có thể có dòng này trong cache L2 và L1 của họ
Nếu có một dấu hiệu trong LLC rằng lõi khác có thể giữ đường dây quan tâm và trạng thái của nó có thể phải thay đổi,
có một tra cứu vào L1 và L2 DCache của các lõi quá
Việc tra cứu là gọi là "dirty" nếu dữ liệu sửa đổi này phải được tải xuống Stores
Trang 16Intel Core i7
Cache L1 quản lý tất cả các tải và lưu trữ các yêu cầu từ tất cả các loại thông qua các cấu trúc dữ liệu nội bộ của mình
Các L1 DCache duy trì các yêu cầu mà không thể được phục vụ ngay lập tức để hoàn thành
Một số lý do cho những đề nghị bị chậm: cache bị trượt, truy cập không đồng chỉnh mà chia tách trên dòng bộ nhớ cache, dữ liệu không sẵn sàng để được chuyển tiếp từ một cửa hàng trước
Trang 17 Các Data Translation Lookaside Buffer (DTLB) có thể thực hiện ba tuyến tính để dịch địa chỉ vật lý mỗi chu kỳ, hai cho các địa chỉ tải và một cho một địa chỉ cửa hàng.
Nếu địa chỉ là mất tích trong DTLB, bộ vi xử lý trông cho nó trong Share Translation Lookaside Buffer (STLB), nắm giữ
dữ liệu và địa chỉ lệnh dịch
Các hình phạt của một lỡ DTLB rằng số truy cập STLB là bảy chu kỳ
Trang 18Intel Core i7
Nếu một lệnh tải sau một lệnh lưu trữ và tải lại các dữ liệu mà lưu trữ ghi vào bộ nhớ, dữ liệu có thể chuyển trực tiếp từ các hoạt động cửa hàng để tải
Quá trình này, được gọi là lưu trữ để tải chuyển tiếp ,lưu chu kỳ bằng cách cho phép tải để có được các dữ liệu trực tiếp
từ các hoạt động cửa hàng thay vì thông qua bộ nhớ
Trang 19 Một hoạt động không tải có thể phụ thuộc vào một lệnh lưu trữ trước Nhiều microarchitectures chặn tải cho đến khi tất
cả các địa chỉ lưu trữ trên được biết đến
Các disambiguator bộ nhớ dự đoán mà tải sẽ không phụ thuộc vào bất kỳ cửa hàng trước đó
Khi disambiguator dự đoán rằng một tải không có một sự phụ thuộc như vậy, tải trọng mất dữ liệu từ bộ nhớ cache dữ liệu L1 ngay cả khi các địa chỉ cửa hàng là không rõ Này ẩn thời gian chờ tải Cuối cùng, dự đoán được xác minh
Nếu một cuộc xung đột thực tế được phát hiện, việc tải và tất cả các hướng dẫn thành công được tái thực hiện
Trang 20Intel Core i7
Dữ liệu có thể được suy đoán nạp vào L1 DCache sử dụng phần mềm tìm nạp trước, nạp trước phần cứng, hoặc bất kỳ
sự kết hợp của cả hai
Mục tiêu của nạp trước là để tự động dự đoán dữ liệu của chương trình là về để tiêu thụ
Nếu dữ liệu này không phải là gần bằng với lõi thực hiện hoặc bộ nhớ cache bên trong, prefetchers mang nó từ các cấp tiếp theo của hệ thống phân cấp bộ nhớ cache và bộ nhớ
Trang 21 Nạp trước có tác dụng sau:
Cải thiện hiệu suất nếu dữ liệu được sắp xếp tuần tự theo thứ tự được sử dụng trong chương trình.
Có thể gây suy giảm hiệu suất nhẹ do các vấn đề băng thông, nếu mô hình truy cập là thưa thớt thay vì địa phương.
Trong những dịp hiếm hoi, nếu thiết lập làm việc của thuật toán được điều chỉnh để chiếm hầu hết các bộ nhớ cache và nạp trước không cần thiết đuổi dòng yêu cầu của chương trình, phần cứng nạp trước có thể gây suy giảm hiệu suất nghiêm trọng
do dung lượng cache L1.
Trang 22Thank You !