Context
đọc giấy tờ về tối ưu hóa bộ nhớ cache (gắn với một dòng bộ nhớ cache trong vòng ..)C - dòng bộ nhớ cache và hiệp hội
Câu hỏi đặt ra có liên quan đến bối cảnh này: mảng 1024 số nguyên.
Kích thước: bộ nhớ cache cpu 64k, dòng bộ nhớ cache 32byte, kích thước nguyên: 4 byte.
intel core 2 duo
Câu hỏi
Theo cpu của tôi, 8 số nguyên phù hợp trong một dòng bộ nhớ cache.
[0,1,2,3,4,5,6,7,8,9,10,...,1023]
^
If I want to access 4 and go downward, 3,2,1 and 0 will be loaded already. 5,6,7 are loaded uselessly.
[0,1,2,3,4,5,6,7,8,..,1023]
^
If I want to access 7 and go downward, all the next elements will be in cache already. if I want to go upward, according to my cpu I will have to load another cache line immediatly after the arr[7] read.
Tôi có chính xác không?
Đi thêm
Nhưng những gì nói với tôi rằng arr [4] không phải là ở một địa chỉ đó sẽ gây ra một dòng tải bộ nhớ cache thay vì arr [7]? Nếu tuyên bố của tôi là đúng, chúng tôi không chỉ nên xem xét sự sắp xếp trong mảng, nhưng sự liên kết toàn bộ bộ nhớ của chương trình để giảm thiểu chất thải bộ nhớ cache, phải không?
Cảm ơn. 1 cho ra khỏi tầm kiểm soát – Larry