06B3
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.



 
Trang ChínhPortalLatest imagesTìm kiếmĐăng kýĐăng Nhập

 

 Tìm hiểu cách làm việc của bộ nhớ Cache

Go down 
Tác giảThông điệp
dangnh
Thành Viên Vàng
Thành Viên Vàng
dangnh


Tổng số bài gửi : 323
Điểm : 40
Thanks : 2
Join date : 07/09/2008
Age : 35
Đến từ : 06b3 FITHOU

Tìm hiểu cách làm việc của bộ nhớ Cache Empty
Bài gửiTiêu đề: Tìm hiểu cách làm việc của bộ nhớ Cache   Tìm hiểu cách làm việc của bộ nhớ Cache I_icon_minitimeThu Sep 18, 2008 12:23 am

Một máy tính sẽ hoàn toàn vô dụng nếu bạn không bắt bộ vi xử lý (CPU) thực hiện một nhiệm vụ nào đó. Công việc sẽ được thực hiện thông qua một chương trình, chương trình này lại gồm rất nhiều các chỉ lệnh để ra lệnh cho CPU làm việc.

CPU lấy các chương trình từ bộ nhớ RAM. Tuy nhiên có một vấn đề với bộ nhớ RAM đó là khi nguồn nuôi của nó bị cắt thì các thành phần dữ liệu được lưu trong RAM cũng sẽ bị mất – chính điều này nên một số người nói rằng bộ nhớ RAM là một môi trường “dễ bay hơi”. Các chương trình và dữ liệu như vậy phải được lưu trên môi trường không “dễ bay hơi” sau khi tắt máy tính (giống như các ổ đĩa cứng hay các thiết bị quang như đĩa CD và DVD).

Khi kích đúp vào một biểu tượng trong Windows để chạy một chương trình nào đó. Các chương trình thông thường được lưu trên ổ đĩa cứng của máy tính, khi được gọi nó sẽ được nạp vào bộ nhớ RAM sau đó từ bộ nhớ RAM, CPU nạp chương trình thông qua một mạch có tên gọi là memory controller, thành phần này được đặt bên trong chipset (north bridge chip- chíp cực bắc) trên các bộ vi xử lý Intel hoặc bên trong CPU trên các bộ vi xử lý AMD. Trong hình 1 chúng tôi đã tóm tắt sơ qua nguyên tắc làm việc này (với các bộ vi xử lý AMD bạn hãy bỏ qua phần chipset đã được vẽ).

Tìm hiểu cách làm việc của bộ nhớ Cache 22612002wb9

Hình 1: Cách dữ liệu được truyền tải đến CPU

CPU không thể tìm nạp dữ liệu trực tiếp từ các ổ đĩa cứng vì tốc độ truy suất dữ liệu của ổ đĩa cứng là quá thấp với nó, thậm chí nếu nếu bạn có cả ổ đĩa cứng với tốc độ truy suất lớn nhất. Hãy lấy một số ví dụ làm dẫn chứng cho điều này, ổ cứng SATA-300 – một loại ổ đĩa cứng có tốc độ nhanh nhất hiện đang được cung cấp ngày nay đến phần lớn người dùng – có tốc độ truyền tải theo lý thuyết là 300 MB/s. Một CPU chạy với tốc độ 2GHz với đường dữ liệu* 64-bit sẽ truyền tải dữ liệu bên trong với tốc độ 16GB/s – như vậy là lớn gấp 50 lần.

- Đường dữ liệu: Các đường giữa các mạch bên trong CPU. Chỉ cần một phép toán đơn giản bạn cũng có thể biết được rằng mỗi CPU có một số đường dữ liệu khác nhau bên trong, mỗi một đường trong chúng lại có chiều dài khác nhau. Ví dụ với các bộ vi xử lý AMD thì đường dữ liệu giữa L2 memory cache và L1 memory cache có độ rộng 128-bit, trong khi đó của Intel là 256-bit. Đây chỉ là giải thích con số mà chúng tôi đã công bố trong đoạn trên không cố định, nhưng dẫu sao CPU luôn nhanh hơn rất nhiều so với các ổ đĩa cứng.

Sự khác nhau trong tốc độ cũng bắt nguồn từ một thực tế đó là các ổ đĩa cứng còn bao gồm cả hệ thống cơ khí, các hệ thống cơ khí này bao giờ cũng chậm hơn hệ thống điện tử thuần túy, các thành phần cơ khí phải chuyển động để dữ liệu mới có thể được đọc ra (điều này chậm hơn rất nhiều so với việc chuyển động của điện tử). Hay nói cách khác, bộ nhớ RAM là 100% điện tử, có nghĩa là nó sẽ nhanh hơn tốc độ của ổ đĩa cứng và quang.

Tuy nhiên đây chính là vấn đề, thậm chí bộ nhớ RAM nhanh nhất cũng không nhanh bằng CPU. Nếu bạn sử dụng các bộ nhớ DDR2-800, chúng truyền tải dữ liệu ở tốc độ 6.400 MB/s – 12.800 MB/s nếu sử dụng chế độ hai kênh. Thậm chí con số này còn có thể lên đến 16GB/s trong ví dụ trước, vì các CPU hiện nay còn có thể tìm nạp dữ liệu từ L2 memory cache ở tốc độ 128- bit hay 256-bit, chúng ta đang nói về 32 GB/s hoặc 64 GB/s nếu CPU làm việc bên trong với tốc độ 2GHz. Bạn không nên lo lắng về những vấn đề với “L2 memory cache”, chúng tôi sẽ giải thích vấn đề này sau. Tất cả những gì bạn cần nhớ là bộ nhớ RAM chậm hơn CPU.

Bằng cách đó, tốc độ truyền tải có thể được tính bằng sử dụng công thưc dưới đây (trong tất cả các ví dụ từ đầu tới giờ, “dữ liệu trên một clock” vẫn được tính bằng “1”):

[Tốc độ truyền tải] = [Độ rộng (số lượng bít)] x [tốc độ clock] x [dữ liệu trên một clock] / 8

Vấn đề không chỉ dừng lại ở tốc độ truyền tải mà còn cả độ trễ. Độ trễ (thời gian truy cập) là lựợng thời gian mà bộ nhớ giữ chậm trong việc chuyển ngược trở lại dữ liệu mà CPU đã yêu cầu trước đó – điều này không thể thực hiện được ngay lập tức. Khi CPU yêu cầu chỉ lệnh (hoặc dữ liệu) được lưu tại một địa chỉ nào đó thì bộ nhớ sẽ giữ chậm một khoảng thời gian để phân phối lệnh này (hoặc dữ liệu) trở ngược lại. Trên các bộ nhớ hiện nay, nếu nó được dán nhãn có CL bằng 5 (CAS Latency, đây chính là độ trễ mà chúng ta đang nói đến) thì điều đó có nghĩa rằng bộ nhớ sẽ cung cấp dữ liệu đã được yêu cầu sau 5 chu kỳ clock nhớ - nghĩa là CPU sẽ phải chờ đợi.

Việc chờ đợi sẽ làm giảm hiệu suất của CPU. Nếu CPU phải đợi đến 5 chu kỳ clock để nhận được chỉ lệnh hoặc dữ liệu mà nó đã yêu cầu thì hiệu suất của nó sẽ chỉ còn 1/5 so với hiệu suất sử dụng bộ nhớ có khả năng cung cấp dữ liệu tức thời. Nói theo cách khác, khi truy cập bộ nhớ DDR2-800 với CL5 thì hiệu suất của CPU bằng với hiệu suất của CPU làm việc với bộ nhớ 160 MHz (800 MHz / 5) với khả năng cung cấp dữ liệu tức thời. Trong thế giới thực, việc giảm hiệu suất không nhiều vì các bộ nhớ làm việc dưới chế độ có tên gọi là chế độ truyền loạt (burst mode), ở nơi mà dữ liệu được tập trung lần thứ hai có thể được cung cấp một cách ngay lập tức, nếu dữ liệu này được lưu trên một địa chỉ nối tiếp nhau (thường thì chỉ lệnh của chương trình nào đó được lưu trong các địa chỉ liên tục). Điều này được diễn tả bằng công thức “x-1-1-1” (có nghĩa “5-1-1-1” là cho bộ nhớ dùng trong ví dụ của chúng ta), có nghĩa là dữ liệu đầu tiên được cung cấp sau 5 chu kỳ xung clock, nhưng từ dữ liệu thứ hai trở đi thì chúng được cung cấp chỉ trong một chu kỳ clock – nếu nó được lưu trên địa chỉ liên tiếp giống như những gì chúng ta đã nói.
Về Đầu Trang Go down
http://06b3.friendhood.net/forum.htm
dangnh
Thành Viên Vàng
Thành Viên Vàng
dangnh


Tổng số bài gửi : 323
Điểm : 40
Thanks : 2
Join date : 07/09/2008
Age : 35
Đến từ : 06b3 FITHOU

Tìm hiểu cách làm việc của bộ nhớ Cache Empty
Bài gửiTiêu đề: Tìm hiểu cách làm việc của bộ nhớ Cache (Phần 2)   Tìm hiểu cách làm việc của bộ nhớ Cache I_icon_minitimeThu Sep 18, 2008 6:27 pm

Lịch sử về Cache nhớ trên các máy tính cá nhân (PC)

Bộ nhớ Cache được sử dụng đầu tiên trên các máy tính thời 386DX. Mặc dù bản thân CPU không có bộ nhớ Cache bên trong nhưng mạch hỗ trợ của nó - chipset – có một bộ điều khiển Cache nhớ. Vì điều đó nên Cache nhớ ở thời điểm này nằm ở bên ngoài CPU và mang tính tùy chọn, nghĩa là nhà sản xuất bo mạch chủ có thể thêm vào hoặc không. Nếu bạn có một bo mạch chủ mà không có bộ nhớ Cache thì máy tính của bạn sẽ chậm hơn rất nhiều so với các máy tính có thành phần này. Số lượng bộ nhớ Cache được cung cấp khác nhau và phụ thuộc vào model của bo mạch chủ và các giá trị điển hình cho thời điểm đó là 64 KB và 128 KB. Cũng ở thời điểm này, bộ điều khiển Cache nhớ đã sử dụng một kiến trúc được biết đến với tên “write-through”, dùng cho các hoạt động ghi – nghĩa là khi CPU muốn lưu dữ liệu trong bộ nhớ thì bộ điều khiển Cache nhớ sẽ cập nhật bộ nhớ RAM ngay lập tức.

Với các bộ vi xử lý 486DX, Intel đã bổ sung thêm một số lượng nhỏ (8KB) Cache nhớ bên trong mỗi CPU. Cache nhớ bên trong này được gọi là L1 (level 1) hay “internal”, còn các Cache nhớ bên ngoài được gọi là (level 2) hay “external”. Số lượng và sự tồn tại của Cache nhớ bên ngoài phụ thuộc vào model của bo mạch chủ. Số lượng điển hình cho thời điểm đó là 128 KB và 256 KB. Sau đó các mô hình 486 đã bổ sung thêm kiến trúc Cache “write back”, đây là kiến trúc đã được sử dụng cho đến ngày nay, các hoạt động ghi của bộ nhớ RAM không được cập nhật ngay tức khắc mà CPU lưu dữ liệu trên Cache nhớ và bộ điều khiển nhớ sẽ cập nhật bộ nhớ RAM chỉ khi không có Cache.

Sau đó với các bộ vi xử lý Pentium đầu tiên, Intel đã tạo hai Cache nhớ bên trong tách biệt nhau, một cho các chỉ lệnh và một cho dữ liệu (ở thời điểm này mỗi Cache nhớ là 8 KB). Kiến trúc này vẫn được sử dụng cho đến ngày nay và đó chính là tại sao đôi khi bạn vẫn thấy Cache nhớ L1 tồn tại được ghi 64 KB + 64 KB (ví dụ) – điều này là vì có một Cache chỉ lệnh L1 64KB và một Cache nhớ dữ liệu L2 64KB. Chúng tôi sẽ giải thích cho các bạn về sự khác nhau của hai loại Cache nhớ này. Tại thời điểm đó, Cache nhớ L2 thường được đặt trên bo mạch chủ, chính vì vậy số lượng và sự tồn tại của nó phụ thuộc vào model của bo mạch chủ. Rõ ràng việc hệ thống không có Cache nhớ là một điều không thể chấp nhận. Số lượng điển hình cho thời điểm đó là 256 KB và 512 KB.

Các bộ vi xử lý AMD K5, K6 và K6-2 cũng đã sử dụng kiến trúc này, với K6-III thì có thêm Cache nhớ thứ ba (L3, level 3).

Vấn đề với Cache nhớ nằm bên ngoài L2 là nó được truy cập với tốc độ clock thấp hơn vì thế hệ 486DX2 tốc độ clock bên trong của CPU khác hoàn toàn với tốc độ clock bên ngoài của CPU. Ví dụ Pentium-200 làm việc bên trong tại tốc độ 200MHz, nó đã truy cập vào bộ nhớ Cache L2 của nó với tốc độ 66MHz.

Sau kiến trúc P6, Intel đã chuyển sang Cache nhớ từ bo mạch chủ sang bên trong CPU – điều đó đã cho phép CPU có thể truy cập với tốc độ clock bên trong – ngoại trừ Pentium II (bộ nhớ Cache không được đặt bên trong CPU nhưng trên cùng bo mạch in – nơi CPU được hàn gắn (bo mạch in này được đặt bên trong một hộp chứa)), lại chạy bằng một nửa tốc độ clock trong của CPU. Trên Celeron-266 và Celeron-300, các model này không có Cache nhớ (chính vì vậy chúng là các CPU tồi tệ nhất trong lịch sử).

Kiến trúc được sử dụng cho đến ngày nay cũng tương tự như vậy: cả hai Cache nhớ L1 và L2 đều được đặt bên trong CPU và chạy với tốc độ clock bên trong của CPU. Chính vì vậy số lượng Cache nhớ mà bạn có trên hệ thống sẽ phụ thuộc vào model của CPU; không có cách nào để có thể tăng được số lượng Cache nhớ mà không cần thay thế CPU.
Về Đầu Trang Go down
http://06b3.friendhood.net/forum.htm
dangnh
Thành Viên Vàng
Thành Viên Vàng
dangnh


Tổng số bài gửi : 323
Điểm : 40
Thanks : 2
Join date : 07/09/2008
Age : 35
Đến từ : 06b3 FITHOU

Tìm hiểu cách làm việc của bộ nhớ Cache Empty
Bài gửiTiêu đề: Re: Tìm hiểu cách làm việc của bộ nhớ Cache   Tìm hiểu cách làm việc của bộ nhớ Cache I_icon_minitimeThu Sep 18, 2008 6:28 pm

Tìm hiểu cách làm việc của bộ nhớ Cache (Phần 3)
Khối tìm nạp của CPU sẽ tìm kiếm chỉ lệnh kế tiếp để được thực thi trong Cache chỉ lệnh L1. Nếu không có ở đó thì nó sẽ tìm kiếm trên Cache L2. Sau khi đó nếu cũng không có thì nó sẽ phải truy cập vào bộ nhớ RAM để nạp chỉ lệnh.

Cách làm việc
Chúng tôi gọi là một “hit” khi CPU nạp một chỉ lệnh đã được yêu cầu hoặc dữ liệu từ Cache, và gọi là một “miss” nếu chỉ lệnh hoặc dữ liệu được yêu cầu không có ở đó và CPU cần phải truy cập trực tiếp vào bộ nhớ RAM để lấy dữ liệu này.

Rõ ràng khi bạn mới bật máy tính thì Cache là hoàn toàn trống rỗng, vì vậy hệ thống sẽ phải truy cập vào bộ nhớ RAM – đây là một miss đối với Cache không thể tránh. Tuy nhiên sau khi chỉ lệnh đầu tiên được nạp, thì quá trình này sẽ bắt đầu.

Khi CPU nạp một chỉ lệnh từ một vị trí nhớ nào đó thì mạch đã gọi bộ điều khiển Cache nhớ sẽ nạp vào trong Cache nhớ một khối dữ liệu nhỏ bên dưới vị trí hiện hành mà CPU vừa mới nạp. Do các chương trình thường được thực hiện theo cách tuần tự nên vị trí nhớ tiếp theo mà CPU sẽ yêu cầu có thể là vị trí ngay bên dưới vị trí nhớ mà nó vừa nạp. Cũng do bộ điều khiển Cache nhớ đã nạp một số dữ liệu bên dưới vị trí đầu tiên được đọc bởi CPU rồi nên dữ liệu kế tiếp sẽ có thể nằm ở bên trong Cache nhớ, chính vì vậy CPU không cần phải truy cập vào RAM để lấy dữ liệu trong đó: nó đã được nạp vào bên trong Cache nhớ nhúng trong CPU, điều này làm cho nó có thể truy cập với tốc độ clock bên trong.

Lượng dữ liệu này được gọi là dòng và nó thường có chiều dài 64 byte.

Bên cạnh việc nạp một số lượng nhỏ dữ liệu này, bộ điều khiển nhớ cũng luôn tìm cách đoán xem những gì CPU sẽ yêu cầu tiếp theo. Một mạch có tên gọi là mạch tìm nạp trước, sẽ nạp nhiều dữ liệu được đặt sau 64 byte đầu tiên hơn từ RAM vào Cache nhớ. Nếu chương trình tiếp tục nạp chỉ lệnh và dữ liệu từ các vị trí nhớ theo cách tuần tự như vậy thì các chỉ lệnh và dữ liệu mà CPU sẽ hỏi tiếp theo đã được nạp vào trong Cache nhớ từ trước rồi.

Chúng ta có thể tóm tắt cách Cache nhớ làm việc như sau:

1. CPU yêu cầu chỉ lệnh hoặc dữ liệu đã được lưu tại địa chỉ “a”.

2. Do nội dung từ địa chỉ “a” không có bên trong Cache nhớ nên CPU phải tìm nạp nó trực tiếp từ RAM.

3. Bộ điều khiển Cache sẽ nạp một dòng (thường là 64 byte) bắt đầu từ địa chỉ “a” vào Cache nhớ. Nó sẽ nạp nhiều hơn dữ lượng dữ liệu mà CPU yêu cầu, chính vì vậy nếu chương trình tiếp tục chạy tuần tự (nghĩa là yêu cầu địa chỉ a +1) thì chỉ lệnh hoặc dữ liệu kế tiếp mà CPU sẽ hỏi đã được nạp trong Cache nhớ từ trước đó rồi.

4. Mạch có tên gọi là tìm nạp trước sẽ nạp nhiều dữ liệu được đặt sau dòng này, có nghĩa là bắt đầu việc nạp các nội dung từ địa chỉ a + 64 trở đi vào Cache. Để cho bạn một ví dụ thực tế là các CPU của Pentium 4 có bộ tìm nạp trước 256-byte, chính vì vậy nó có thể nạp được 256byte kế tiếp sau dòng dữ liệu đã được nạp vào trong Cache.

Nếu chương trình chạy một cách tuần tự thì CPU sẽ không cần phải tìm nạp dữ liệu bằng cách truy cập trực tiếp vào bộ nhớ RAM, ngoại trừ nạp mỗi chỉ lệnh đầu tiên – vì các chỉ lệnh và dữ liệu được yêu cầu bởi CPU sẽ luôn nằm bên trong Cache nhớ trước khi CPU yêu cầu đến chúng.

Mặc dù các chương trình không chạy luôn giống như vậy, đôi khi chúng có thể nhảy từ một vị trí nhớ này sang vị trí nhớ khác. Thách thức chính của bộ điều khiển Cache chính là việc đoán những địa chỉ gì mà CPU sẽ nhảy đến, và từ đó nạp những nội dung của địa chỉ này vào trong Cache nhớ trước khi CPU yêu cầu để tránh trường hợp CPU phải truy cập vào bộ nhớ RAM là giảm hiệu suất của hệ thống. Nhiệm vụ này được gọi là dự đoán rẽ nhánh và tất cả các CPU hiện đại đều có tính năng này.

Các CPU hiện đại có tốc độ hit ít nhất cũng là 80%, nghĩa là 80% của thời gian CPU không truy cập trực tiếp vào bộ nhớ RAM, mà thay vào đó là Cache nhớ.
Về Đầu Trang Go down
http://06b3.friendhood.net/forum.htm
dangnh
Thành Viên Vàng
Thành Viên Vàng
dangnh


Tổng số bài gửi : 323
Điểm : 40
Thanks : 2
Join date : 07/09/2008
Age : 35
Đến từ : 06b3 FITHOU

Tìm hiểu cách làm việc của bộ nhớ Cache Empty
Bài gửiTiêu đề: Re: Tìm hiểu cách làm việc của bộ nhớ Cache   Tìm hiểu cách làm việc của bộ nhớ Cache I_icon_minitimeThu Sep 18, 2008 6:35 pm

Tìm hiểu cách làm việc của bộ nhớ Cache (Phần cuối)

Trong cấu hình này, Cache nhớ được chia thành một vài khối (các tập), mỗi khối gồm có “n” dòng.

Tập Cache liên kết n dòng

Một tập 4 dòng Cache liên kết thì Cache nhớ sẽ có 2.048 khối, mỗi khối gồm có 4 dòng (8.192 dòng / 4), với tập 2 dòng Cache liên kết thì Cache nhớ sẽ có 4.096 khối, mỗi khối gồm 2 dòng. Chúng ta sẽ tiếp tục ví dụ với Cache nhớ L2 512 KB, Cache nhớ này sẽ chia thành 8.192 dòng, mỗi dòng 64-byte. Phụ thuộc vào CPU mà số khối có thể khác nhau.

Tìm hiểu cách làm việc của bộ nhớ Cache 36260632bi9

Hình 7: Cache nhớ L2 512 KB khi được cấu hình thành một tập 4 dòng liên kết

Khi bộ nhớ RAM được chia thành các khối bằng nhau trong Cache nhớ. Vẫn ví dụ tập 4 dòng 512 KB liên kết, RAM chính sẽ được chia thành 2.048 khối nằm trong Cache nhớ. Mỗi khối nhớ lại được liên kết đến một tập các dòng bên trong Cache, giống như trong Cache đã được bản đồ hóa trực tiếp. Với 1GB, bộ nhớ sẽ được chia thành 2.048 khối, mỗi khối 512KB, bạn có thể xem trong hình 8.

Tìm hiểu cách làm việc của bộ nhớ Cache 82851563jp9

Hình 8: Cache nhớ L2 512 KB được cấu hình thành một tập 4 dòng liên kết

Như những gì bạn có thể thấy được, việc bản đồ hóa là hoàn toàn giống với những gì xảy ra với Cache được bản đồ hóa trực tiếp, sự khác biệt ở đây là mỗi một khối nhớ hiện có nhiều dòng trên cùng một Cache. Mỗi một dòng lại giữ nhiều nội dung từ các địa chỉ bên trong các khối đã được bản đồ hóa. Trên tập 4 dòng liên kết, mỗi tập trên Cache nhớ có thể giữ đến 4 dòng từ cùng một khối nhớ.

Với phương pháp này, các vấn đề gặp phải đối với phương pháp bản đồ hóa trực tiếp không còn nữa (cả các vấn đề xung đột do vòng lặp mà chúng ta đã mô tả trên). Ở đây, tập Cache liên kết dễ dàng thực thi hơn so với Cache liên kết toàn bộ, vì logic điều khiển của nó đơn giản hơn. Vì điều đó mà phương pháp này được sử dụng nhiều ngày nay, mặc dù nó cung cấp hiệu suất thấp hơn so với cách liên kết toàn bộ.

Rõ ràng chúng ta vẫn có một số lượng hạn chế các khe bên trong mỗi một tập Cache nhớ đối với mỗi một khối nhớ - 4 trên cấu hình 4 dòng. Sau khi 4 khe này được sử dụng, bộ điều khiển Cache sẽ phải giải phóng một trong số chúng để lưu chỉ lệnh kế tiếp đã được nạp từ cùng khối nhớ.

Khi chúng ta tăng số dòng thì Cache nhớ tập liên kết (ví dụ với cấu hình 4 hoặc 8) sẽ có nhiều khe có sẵn hơn trên mỗi tập, tuy nhiên nếu giữ nguyên số lượng của Cache nhớ thì kích thước của mỗi khối nhớ cũng sẽ tăng. Tiếp tục ví dụ của chúng ta, việc chuyển từ 4 dòng sang 8 dòng sẽ làm cho bộ nhớ 1GB RAM có thể được chia thành 1.024 khối 1MB. Vì vậy cách làm này sẽ tăng số khe có sẵn trên mỗi một tập nhưng mỗi tập lúc này phải chịu trách nhiệm với một khối nhớ lớn hơn.

Có rất nhiều thảo luận trừu tượng liên quan đến việc cân bằng hoàn hảo giữa số các tập và kích thước khối nhớ và tất cả đều chưa có câu trả lời thích đáng - Intel và AMD cũng sử dụng các cấu hình khác nhau, bạn có thể xem trong bảng bên dưới.

Vậy điều gì sẽ xảy ra nếu chúng ta có một Cache nhớ lớn? Vẫn giữ ví dụ ở trên, nếu chúng ta tăng Cache nhớ L2 từ 512 KB thành 1MB (chỉ có một cách thực hiện là thay thế một CPU mới), thì điều xảy ra là chúng ta sẽ có 16.384 dòng 64 byte trong Cache nhớ, điều đó cho chúng ta có đến 4.096 tập và mỗi tập có 4 dòng. Bộ nhớ 1MB RAM của chúng ta sẽ được chia thành 4.096 khối 256MB. Vì vậy về cơ bản những gì xảy ra là kích thước của mỗi khối nhớ giảm hơn và tăng số lần dữ liệu được yêu cầu nằm bên trong Cache nhớ - hay nói cách khác, tăng kích thước Cache sẽ làm giảm được tốc độ miss đối với Cache.

Tuy vậy, việc tăng Cache nhớ không phải là điều bảo đảm cho việc tăng hiệu suất. Tăng kích thước của bộ nhớ Cache chỉ cho phép có nhiều hơn dữ liệu được lưu trữ nhưng một câu hỏi đặt ra là liệu CPU sẽ sử dụng dữ liệu mở rộng đó hay không. Ví dụ, cho một CPU một lõi có Cache L2 4MB. Nếu CPU sử dụng nghiêng về 1MB là chủ yếu còn không quá nặng về phía 3MB kia (nghĩa là hầu hết các chỉ lệnh đã truy cập sẽ chiếm 1MB và trên 3 MB kia CPU đã chứa các chỉ lệnh không được gọi đến nhiều), lúc này CPU sẽ có hiệu suất giống với một CPU chỉ có 2 MB hoặc thậm chí Cache nhớ L2 1MB.
Về Đầu Trang Go down
http://06b3.friendhood.net/forum.htm
dangnh
Thành Viên Vàng
Thành Viên Vàng
dangnh


Tổng số bài gửi : 323
Điểm : 40
Thanks : 2
Join date : 07/09/2008
Age : 35
Đến từ : 06b3 FITHOU

Tìm hiểu cách làm việc của bộ nhớ Cache Empty
Bài gửiTiêu đề: Re: Tìm hiểu cách làm việc của bộ nhớ Cache   Tìm hiểu cách làm việc của bộ nhớ Cache I_icon_minitimeThu Sep 18, 2008 6:36 pm

Cấu hình Cache nhớ trên các CPU hiện nay

Dưới đây chúng tôi trình bày cho các bạn một bản tham chiếu gồm có các chi tiết kỹ thuật của Cache nhớ đối với các CPU hiện đang có trên thị trường.

CPU Cache chỉ lệnh L1 Cache dữ liệu L1 L2 Cache L2 Athlon 64 64 KB

Tập liên kết 2 dòng

Mỗi dòng 64 byte

Đường dữ liệu 128 – bit cho L2

Đường dữ liệu 128 – bit cho khối tìm nạp 64 KB

Tập liên kết 2 dòng

Mỗi dòng 64 byte

Đường dữ liệu 128 – bit cho L2 512 KB hoặc 1 MB

Tập liên kết 16 dòng

Mỗi dòng 64byte

Đường dữ liệu 128 – bit cho Cache dữ liệu L1

Đường dữ liệu 128 – bit cho Cache chỉ lệnh L1
Athlon 64 FX 64KB trên mỗi lõi

Tập liên kết 2 dòng

Mỗi dòng 64 byte

Đường dữ liệu 128 – bit cho L2

Đường dữ liệu 128 – bit cho khối tìm nạp 64KB trên mỗi lõi

Tập liên kết 2 dòng

Mỗi dòng 64byte

Đường dữ liệu 128 – bit cho Cache L2 1MB trên mỗi lõi

Tập liên kết 16 dòng

Mỗi dòng 64byte

Đường dữ liệu 128 – bit cho Cache dữ liệu L1

Đường dữ liệu 128 – bit cho Cache chỉ lệnh L1 Athlon 64 X2 64KB trên mỗi lõi

Tập liên kết 2 dòng

Mỗi dòng 64 byte

Đường dữ liệu 128 – bit cho L2

Đường dữ liệu 128 – bit cho khối tìm nạp 64KB trên mỗi lõi

Tập liên kết 2 dòng

Mỗi dòng 64byte

Đường dữ liệu 128 – bit cho Cache L2 512KB hoặc 1MB trên mỗi lõi

Tập liên kết 16 dòng

Mỗi dòng 64byte

Đường dữ liệu 128 – bit cho Cache dữ liệu L1

Đường dữ liệu 128 – bit cho Cache chỉ lệnh L1 Sempron (sockets 754 and AM2) 64KB

Tập liên kết 2 dòng

Mỗi dòng 64 byte

Đường dữ liệu 128 – bit cho L2

Đường dữ liệu 128 – bit cho khối tìm nạp 64KB trên mỗi lõi

Tập liên kết 2 dòng

Mỗi dòng 64byte

Đường dữ liệu 128 – bit cho Cache L2 128 KB hoặc 256 KB

Tập liên kết 16 dòng

Mỗi dòng 64byte

Đường dữ liệu 128 – bit cho Cache dữ liệu L1

Đường dữ liệu 128 – bit cho Cache chỉ lệnh L1 Opteron 64KB trên mỗi lõi

Tập liên kết 2 dòngĐường dữ liệu 128 – bit cho L2

Đường dữ liệu 128 – bit cho khối tìm nạp 64KB trên mỗi lõi Tập liên kết 2 dòng

Mỗi dòng 64byte

Đường dữ liệu 128 – bit cho Cache L2 1MB trên mỗi lõi

Tập liên kết 16 dòng

Mỗi dòng 64byte

Đường dữ liệu 128 – bit cho Cache dữ liệu L1

Đường dữ liệu 128 – bit cho Cache chỉ lệnh L1 Pentium 4 N/A * 8KB

Tập liên kết 4 dòng

Mỗi dòng 64byte

Đường dữ liệu 256 – bit cho Cache L2 256 KB, 512 MB hoặc 1 MBTập liên kết 16 dòng

Mỗi dòng 128 byte

Đường dữ liệu 64 – bit cho khối tìm nạp

Đường dữ liệu 256 – bit cho Cache dữ liệu L1 Pentium D N/A * 16KB

Tập liên kết 4 dòng

Mỗi dòng 64byte

Đường dữ liệu 256 – bit cho Cache L2 1 MB hoặc 2 MB trên mỗi lõi

Tập liên kết 8 dòng

Mỗi dòng 128 byte

Đường dữ liệu 64 – bit cho khối tìm nạp

Đường dữ liệu 256 – bit cho Cache dữ liệu L1 Core 2 Duo 32 KB

Mỗi dòng 64 byte

Đường dữ liệu 256 – bit cho khối tìm nạp
32 KB

Mỗi dòng 64 byte

Đường dữ liệu 256 – bit cho Cache L2 2 MB hoặc 4 MB

Tập liên kết 8 dòng

Mỗi dòng 64 byte

Đường dữ liệu 256 – bit cho Cache dữ liệu L1 Pentium Dual Core 32 KB

Mỗi dòng 64 byte

Đường dữ liệu 256 – bit cho khối tìm nạp 32 KB

Mỗi dòng 64 byte

Đường dữ liệu 256 – bit cho Cache L2 1MB

Tập liên kết 8 dòng

Mỗi dòng 64 byte

Đường dữ liệu 256 – bit cho Cache dữ liệu L1

*N/A: Có Cache lần vết 150 KB trên mỗi bộ vi xử lý. Cache này được đặt giữa khối giải mã và khối thực thi. Như vậy khối tìm nạp sẽ lấy dữ liệu trực tiếp từ Cache nhớ L2.

Chúng tôi không giới thiệu các bộ vi xử lý Xeon và Celeron trong bảng trên vì có một số mô hình của Xeon và Celeron khác được dựa trên các kiến trúc khác. Xeon và Celeron được xây dựng trên kiến trúc Netburst (nghĩa là dựa trên kiến trúc Pentium 4) sẽ có các chỉ tiêu kỹ thuật tương tự như Pentium 4 nhưng có kích thước Cache L2 khác đôi chút, còn Celeron và Xeon được xây dựng trên kiến trúc Core (nghĩa là dựa trên Core 2 Duo) sẽ có các chi tiết kỹ thuật giống với Core 2 Duo nhưng có kích thước Cache L2 khác.
Về Đầu Trang Go down
http://06b3.friendhood.net/forum.htm
Sponsored content





Tìm hiểu cách làm việc của bộ nhớ Cache Empty
Bài gửiTiêu đề: Re: Tìm hiểu cách làm việc của bộ nhớ Cache   Tìm hiểu cách làm việc của bộ nhớ Cache I_icon_minitime

Về Đầu Trang Go down
 
Tìm hiểu cách làm việc của bộ nhớ Cache
Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
06B3 :: THẾ GIỚI IT :: Căn bản PC-
Chuyển đến