Tải bản đầy đủ (.doc) (28 trang)

Phân tích kiến trúc và nguyên lý làm việc của bộ VXL AMD K8

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (766.64 KB, 28 trang )

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO BÀI TẬP LỚN
MÔN : KIẾN TRÚC MÁY TÍNH
ĐỀ TÀI : PHÂN TÍCH KIẾN TRÚC VÀ NGUYÊN
LÝ LÀM VIỆC CỦA BỘ VXL AMD K8
• NHÓM THỰC HIỆN:
• NHÓM 7-KTPM2
• THÀNH VIÊN:
• TRẦN VĂN HIỆP
• TRỊNH VĂN HIỆP
• ĐINH CÔNG HIẾU
• GIÁO VIÊN HƯỚNG DẪN :
• Th.s NGUYỄN TUẤN TÚ
Hà Nội , Ngày 14 Tháng 5 Năm 2012
1
MỤC LỤC
A-Mở đầu 3
B-Nội dung 5
I.Giới thiệu 5
II.Những nghiên cứu về AMD K8 5
1.Sự kế thừa từ AMD XP (K7) 5
2.Kiến trúc tổng quan của bộ VXL AMD K8 6
3.Những cải tiến của K8 6
4.Sự phát triển của K8 12
5.Cache K8 13
6.Cache hòa nhập và cache độc quyền 17
7. Ưu điểm và nhược điểm của từng phương pháp 23
8.Băng thông bộ nhớ cache 23
9.Độ trễ 27


2
A-MỞ ĐẦU
Vi xử lý (CPU) là gì?
Trước hết để tránh những băn khoăn đáng tiếc trong khi nghiên cứu tài
liệu, tôi xin được giới thiệu đôi chút về 02 khái niệm “vi xử lý”
(microprocessor) và “vi điều khiển (microcontroller). Về cơ bản hai khái
niệm này không khác nhau nhiều, “vi xử lý” là thuật ngữ chung dùng để đề
cập đến kỹ thuật ứng dụng các công nghệ vi điện tử, công nghệ tích hợp và
khả năng xử lý theo chương trình vào các lĩnh vực khác nhau. Vào những
giai đoạn đầu trong quá trình phát triển của công nghệ vi xử lý, các chip (hay
các vi xử lý) được chế tạo chỉ tích hợp những phần cứng thiết yếu như CPU
cùng các mạch giao tiếp giữa CPU và các phần cứng khác. Trong giai đoạn
này, các phần cứng khác (kể cả bộ nhớ) thường không được tích hợp trên
chip mà phải ghép nối thêm bên ngoài. Các phần cứng này được gọi là các
ngoại vi (Peripherals). Về sau, nhờ sự phát triển vượt bậc của công nghệ tích
hợp, các ngoại vi cũng được tích hợp vào bên trong IC và người ta gọi các vi
xử lý đã được tích hợp thêm các ngoại vi là các “vi điều khiển”. Việc tích
hợp thêm các ngoại vi vào trong cùng một IC với CPU tạo ra nhiều lợi ích
như làm giảm thiểu các ghép nối bên ngoài, giảm thiểu số lượng linh kiện
điện tử phụ, giảm chi phí cho thiết kế hệ thống, đơn giản hóa việc thiết kế,
nâng cao hiệu suất và tính linh hoạt. Trong tài liệu này, ranh giới giữa hai
khái niệm “vi xử lý” và “vi điều khiển” thực sự không cần phải phân biệt rõ
ràng. Chúng tôi sẽ dùng thuật ngữ “vi xử lý” khi đề cập đến các khái niệm
cơ bản của kỹ thuật vi xử lý nói chung và sẽ dùng thuật ngữ “vi điều khiển”
khi đi sâu nghiên cứu một họ chip cụ thể. Về cơ bản kiến trúc của một vi xử
lý gồm những phần cứng sau:
•Đơn vị xử lý trung tâm CPU (Central Processing Unit).
3
•Các bộ nhớ (Memories) Các cổng vào/ra song song (Parallel I/O
Ports).

•Các cổng vào/ra nối tiếp (Serial I/O Ports).
•Các bộ đếm/bộ định thời (Timers).
Ngoài ra với mỗi loại vi điều khiển cụ thể còn có thể có thêm một số
phần cứng khác như bộ biến đổi tương tự-số ADC, bộ biến đổi số-tương tự
DAC, các mạch điều chế dạng sóng WG, điều chế độ rộng xung PWM…
Bộ não của mỗi vi xử lý chính là CPU, các phần cứng khác chỉ là các cơ
quan chấp hành dưới quyền của CPU. Mỗi cơ quan này đều có một cơ chế
hoạt động nhất định mà CPU phải tuân theo khi giao tiếp với chúng. Để có
thể giao tiếp và điều khiển các cơ quan chấp hành (các ngoại vi), CPU sử
dụng 03 loại tín hiệu cơ bản là tín hiệu địa chỉ (Address), tín hiệu dữ liệu
(Data) và tín hiệu điều khiển (Control). Về mặt vật lý thì các tín hiệu này là
các đường nhỏ dẫn điện nối từ CPU đến các ngoại vi hoặc thậm chí là giữa
các ngoại vi với nhau. Tập hợp các đường tín hiệu có cùng chức năng gọi là
các bus. Như vậy ta có các bus địa chỉ, bus dữ liệu và bus điều khiển
4
B-NỘI DUNG
KIẾN TRÚC AMD K8
I. Giới thiệu
AMD XP (K7) đã trở lên lỗi thời, mặc dù vẫn còn tốt nhưng hiệu năng
rõ ràng là không bằng được Pentium 4. K8 là phiên bản cải tiến của kiến trúc
K7, với những tính năng đáng kể nhất là hỗ trợ tập lệnh x86-64bit (với tên
gọi chính thức là AMD64), tích hợp khối điều khiển bộ nhớ vào trong chip,
kiến trúc kết nối trực tiếp với tốc độ cực nhanh theo kiểu điểm đến điểm
HyperTransport. Những công nghệ này ban đầu được ứng dụng trong bộ xử
lý dùng cho máy chủ Opteron. Một thời gian ngắn sau, chúng cũng được
xuất hiện trong bộ xử lý Athlon 64 dùng cho desktop.
II. Những nghiên cứu về AMD K8
1.Sự kế thừa từ Athlon XP
Bắt đầu với tốc độ 500mhz dùng khe cắm A cho đến barton kiến trúc
của K7 không thay đổi nhiều, chỉ là điều chỉnh cache L2 và tới AMD XP thì

thêm SSE.
CPU K7 có tất cả 9 đơn vị thực thi :
• 3 x86 decoding units (đơn vị giải mã)
• 3 integer units (ALU) (bộ tính toán số Nguyên)
• 3 floating point units (FPU) ( bộ tính toán chấm động)
5
2.Kiến trúc tổng quan của bộ VXL AMD K8
3. Những cải tiến của K8
K8 kế tục kiến trúc của K7 nhưng có nhưng thay đổi : Bộ tiên đoán lệnh
tiếp tục được cải tiến , SSE2 và pipeline dài hơn
K8 khá giống k7 , số đơn vị thực thi của nó đã nói lên điều đó; sự khác
nhau đáng kể nhất chính là độ dài pipie line :
6
• ALU : K7 có 10 pipelline
K8 có 12 pipeline
• FPU : K7 có 15 pipeline
K8 là 17 pipeline
Trong một pipeline thì một đoạn tương đương với một công đoạn xử lý
lệnh. Do vậy kiến trúc pipeline dài tuy có nhược điểm là thời gian truy xuất
chậm, nhưng lại có ưu điểm là số lệnh được xử lý đồng thời sẽ nhiều hơn. Ví
dụ pipeline có 30 stage thì số lệnh được xử lý đồng thời là 30.
Ngòai ra K8 còn có các thanh ghi 64 bit.
Điều này dẫn đến sự thay đổi về phương thức tính tóan của CPU giống
như hình dưới đây :
a.Tích hợp bộ điều khiển bộ nhớ (Memory controller):
Kể từ dòng K7 trở về trước, bộ điều khiển bộ nhớ do chipset cầu bắc
đảm nhận, nhiệm vụ chính của chipset cầu bắc là làm cầu nối trung gian
giữa CPU và bộ nhớ chính thông qua FontSideBus (FSB).
7
Do đó về mặt lý thuyết bus bộ nhớ sẽ bị giới hạn theo bus của CPU hay bus

của chipset, trong khi đó, bus bộ nhớ hiện nay đã được đẩy lên rất cao, ta
thường nghe nói đến bộ nhớ DDR500, DDR550, DDR600 và cao hơn nữa.
Đến dòng K8 - A64, AMD đã tích hợp luôn bộ điều khiển bộ nhớ vào trong
nhân của CPU (core) nên có thể nói rằng trong chừng mực nào đó bus bộ
nhớ cao đến bao nhiêu CPU đều có thể đáp ứng được.
Bên cạnh đó việc tích hợp bộ điều khiển bộ nhớ còn góp phần rất lớn trong
việc giảm đáng kể “độ trễ” của dữ liệu do không phải truyền từ CPU qua
8
chipset cầu bắc và ngược lại, đồng thời “vứt bỏ” nút thắt dữ liệu giúp gia
tăng băng thông giữa CPU và bộ nhớ chính.
Như trên biểu đồ, tốc độ bộ điều khiển bộ nhớ là như nhau. Yêu cầu
bộ nhớ được kết quả gửi ở tốc độ CPU, trên một64/128 độ rộng bus, theo số
các kênh bộ nhớ. Bộ nhớ clock được lấy từ CPU clock, sự phân chia phụ
thuộc vào các thông số kỹ thuật bộ nhớ.
Bảng dưới đây cho thấy ngăn được sử dụng theo tần số CPU và bộ nhớ
clock được yêu cầu.
Tất nhiên, việc tích hợp bộ điều khiển nhớ không cải thiện được băng
thông bộ nhớ, nhưng nó cho phép giảm đáng kể thời gian yêu cầu. Hơn nữa,
không giống như điều khiển một bộ nhớ ngoài, việc tích hợp bộ điều khiển
nhớ của K8 là tăng tốc độ CPU; do đó, cũng tăng tốc độ yêu cầu. Bộ điều
khiển tích hợp có một tầm quan trọng trong hệ thống hệ thống đa CPU:
trong trường hợp này, dung lượng bộ nhớ địa chỉ và tổng băng thông tăng
với số CPU.Vấn đề là việc tích hợp bộ điều khiển nhớ là thiếu tính linh
hoạt.Vì mỗi thay đổi trong bộ nhớ tiêu chuẩn sẽ cần một sự thay đổi trong
thiết kế CPU, điều này có thể làm tăng chi phí CPU, cũng như phải thay đổi
toàn bộ quá trình sản xuất CPU.
b.Công nghệ “Siêu truyền” (HyperTransport Technology -
HTT):
9
Cung cấp kết nối tốc độ cực nhanh theo kiểu điểm đến điểm để kết nối

các thành phần trên mainboard và có giải thông lên tới 6.4GBps một đường
kết nối . HyperTransport có thể cung cấp dải thông lên gấp 20 lần , tức là tới
266 MBps và được ứng dụng trong những lĩnh vực đòi hỏi dữ liệu được
truyền đi với cường độ cao, tốc độ lớn và độ trễ nhỏ. Khi đó CPU sẽ giao
tiếp với memory và chipset thông qua HyperTransport bus (HTT) với băng
thông cực lớn và được mở cả 2 chiều không cản trở lẫn nhau (full-duplex).
Giúp hạn chế hiện tượng “thắt cổ chai” (bottle-neck) tạo điều kiện cho bộ xử
lý tận dụng không gian trống bộ nhớ hiệu quả hơn.
10
Sơ đồ khối của HyperTransport trong mạch điện liên kết . Nó cho
phép sử dụng nhiều Chip Northbridge , mỗi một Chip lại nối với nhiều
bọ vi xử lí Athlon nối kèm theo Bus V6.
Ứng dụng công nghệ HyperTransport trong kiến trúc hệ thống nhằm
vào những lợi ích sau:
- Tăng cường đáng kể độ rộng dải băng tần so với các ứng dụng khác
- Thời gian chờ thực thi chỉ lênh ngắn, giảm thiểu mọi hạn chế đối với
xung nhịp bộ xử lý.
- Xử lý giao thức dạng biểu kiến đối với hệ điều hành, không tạo xung
đột trên các trình điều khiển thiết bị ngoại vi.
- Chế độ song công hoàn toàn (full-duplex) cho phép thực thi qua kênh
dữ liệu việc truyền-nhận cùng lúc.
11
c.Công nghệ Cool'n'Quiet
Cool'n'Quiet là một cải tiến khác dành cho dòng VXL 64 bit. Tốc độ và
điện năng tiêu thụ của bộ VXL sẽ được điều chỉnh tự động. Nếu có ít ứng
dụng được chạy (bộ VXL xử lý ít) thì Cool'n'Quiet sẽ giảm tốc độ quạt tản
nhiệt (tiếng ồn) và điện thế bộ VXL; ngược lại, khi cần xử lý nhiều thì bộ
VXL sẽ được tăng tốc độ quạt tản nhiệt và điện thế. Giúp hệ thống chạy thật
êm mượt khi thực thi các chuỗi lệnh, nâng cao tuổi thọ CPU và tạo nên một
môi trường làm việc thật yên tĩnh, thông thoáng

4.Sự phát triển của K8
K7 tuy được thiết kế khá tốt nhưng tốc độ băng thông chậm và tốc độ
của cache L2 khá chậm nếu so với intel. Cụ thể là CPU K7 mạnh nhất băng
thông cũng chỉ đạt xấp xỉ 3,2 MB/s và băng thông L2 cũng chỉ đạt có 15
GB/s thấp hơn mức khoảng 5 GB/s và 32-35 GB/s của Pentum 4 khá nhiều.
Để khắc phục điểm yếu này AMD 64 đã nâng cấp cache L2 lên 128 bit
đưa được băng thông L2 lên xấp xỉ 24 GB /s dù vậy rõ ràng tốc độ này vẫn
chưa bằng được Pentum 4 .Đó cũng là nguyên nhân chính khiến AMD 64
vẫn chưa có được lợi thế về các tác vị đơn giản cần nhiều L2 , hoặc các tác
vụ đòi hỏi dữ liệu luân chuyển liên tục qua L2 : như encode, zip file , render
điểm yếu . Đây cũng là 1 điểm hạn chế của AMD K8 , AMD vẫn chưa bắt
kịp Intel về tốc độ L2 .
Thực tế thì một số dòng CPU cấp thấp của K8, L2 sẽ không tận dụng
được gì nhiều từ sự nâng cấp lên 128 bit này. Có một điểm thành công của
AMD là khi họ gia tăng L2 lên 1MB kéo pipeline dài ra đã giữ nguyên được
độ trễ Latency là 8 giống như K7 trong khi Intel khi tăng L2 lên 1MB
( northwood > prescott) đã phải tăng độ trễ L2 của CPU từ 7 lên tới 11.
5.Cache K8
12
Chi tiết kỹ thuật của Cache nhớ đối với các CPU K8
13
Khi các địa chỉ cần tìm đã được tính toán xong trong AGU của bộ xử lý K8,
tất cả các phép tính đã được tải và lưu trữ sẽ được chuyển đến LSU (Đơn vị
tải/lưu trữ - Load/Store Unit ). LSU chứa hai hàng chờ: LS1 và LS2. Đầu
tiên, các phép tính này sẽ được chuyển vào hàng LS1 với 12 đơn vị. Với tốc
độ hai phép tính mỗi xung nhịp, hàng chờ LS1 cần có bộ nhớ cache L1 được
sắp xếp bởi mã lập trình. Trong trường hợp không có trong cache ( Cache –
Miss ) , các phép tính sẽ được xếp vào hàng chờ LS2 32 đơn vị. Đây là lúc
cần đến bộ nhớ cache L2 và RAM.
a.Cache L1

14
Cache L1 trong K8 được tách riêng: 64Kb lệnh (L1I) và dữ liệu (L1D).
Mỗi cache được liên kết hai chiều và có độ dài 64 byte. Việc này có thể dẫn
đến xung đột thường xuyên giữa các đường có cùng đích đến, làm tăng số
cache thiếu và ảnh hưởng xấu đến tốc độ xử lý. Nhưng tình trạng này có thể
được khắc phục bằng cache L1 có kích thước lớn hơn. Ngoài ra, một ưu
điểm khác của L1D đó là có có hai cổng, do vậy có thể xử lý hai lệnh đọc
hoặc/và viết hai lệnh trong mỗi xung nhịp.
Bộ xử lý bắt đầu quá trình mã hoá bằng việc tìm nạp dòng lệnh từ cache
lệnh L1 và giải mã chúng.Độ dài của lệnh x86 thường không ổn định nên
rất khó xác định giới hạn của chúng trước khi quá trình giải mã bắt đầu. Để
đảm bảo rằng việc xác định độ dài lệnh không ảnh hưởng đến tốc độ giải
mã, các bộ xử lý K8 sẽ giải mã dòng lệnh trong khi chúng đang được nhập
vào cache L1. Thông tin về quá trình giải mã được chứa trong những vùng
đặc biệt bên trong cache L1 (3bit thông tin trước khi giải mã cho một byte
lệnh). Bằng cách giải mã trước (predecoding) trong khi đang tải lệnh vào
cache, phạm vi những lệnh có thể được xác định trong quá trình giải mã, cho
phép đảm bảo tốc độ giải mã ổn định không phụ thuộc vào dạng thức và độ
dài của lệnh.
15
Các bộ xử lý tải các khối dòng lệnh từ cache và lấy ra các dòng lệnh mà
nó cần gửi cho giải mã. Bộ xử lý K8 sẽ nạp lệnh trong các khối 16-byte. Khi
đó, tốc độ nạp lệnh đủ nhanh để bộ xử lý K8 có thể gửi được ba dòng lệnh
với tốc độ giải mã trung bình là 5 byte mỗi xung nhịp.
b.Cache L2
Cache L1 và L2 trao đổi dữ liệu qua hai Bus theo hai hướng: một để
nhận và một để chuyển dữ liệu. Trong bộ xử lý K8, mỗi Bus rộng 64 bit (8
byte). Cấu trúc này giúp tốc độ chuyển dữ liệu đến cache L2 ít nhất là 8
byte/xung nhịp. Nói cách khác, cần 8 xung nhịp để chuyển 64 bit, do vậy
thời gian chuyển dữ liệu đến nhân sẽ bị chậm lại rõ rệt, đặc biệt là khi hai

dòng trong cache L2 được chuyển đến cùng một lúc.
Một lần nữa, cache L2 của K8 chia sẻ nhiều đặc điểm chung với K7. Cả
hai đều sử dụng 16 - cách xác lập sự liên kết từng phần đền bù cho sự liên
kết thấp của L1.
16
Chiều rộng bus giữa lõi và tăng bộ nhớ cache L2, từ 64 bits trên K7 đến
128 bits trên K8. Với K7, bus đã được sắp xếp theo quy cách của Athlon với
bộ nhớ cache riêng biệt, nhưng bây giờ lựa chọn này bắt đầu cho thấy một số
hạn chế về cache – tốc đọ của chip. Việc tăng L2 lên 128 bits cho phép để
cải thiện băng thông L2. K8 cũng bao gồm logic nạp trước phần cứng, cho
phép lấy dữ liệu từ bộ nhớ đến cache L2. K7 và K8 sử dụng quan hệ độc
quyền giữa L1 và L2, đối lập với Intel sử dụng quan hệ hòa nhập.
6. Cache hòa nhập và cache độc quyền
Để hiểu cách thức làm việc của cache, chúng ta hãy xem xét thùng CPU
có một nơi dự trữ trình độ. Khi yêu cầu đọc xảy ra, CPU sẽ yêu cầu nơi dự
trữ của nó cho dữ liệu đã yêu cầu. Nếu nó không chứa dữ liệu, CPU sẽ lấy
nó từ bộ nhớ và đồng thời cũng sẽ sao chép nó vào bộ nhớ cache.Vì CPU
cho rằng nếu nó cần dữ liệu này một lần, nó có thể cần thêm nhiều lần nữa.
CPU x86 chứa một vài sổ đăng ký, và giá trị nó vừa mới về tới nơi từ bộ nhớ
đến sổ đăng ký sẽ không ở lại hơn một vài chu kỳ, vì sổ đăng ký nhanh
chóng sẽ được yêu cầu thực hiện lệnh khác. Lưu trữ dữ liệu trong cache là
cách để giữ nó.
17
Hình 1 : cache fill
Tình huống trở nên làm phức tạp hơn nếu bộ nhớ cache đầy. Bộ nhớ
cache đầy sẽ cần line để thay thế. Để biết những line nào cần được thay thế,
CPU sử dụng thuật toán thay thế. Lựa chọn phổ biến nhất là thay line gần
đây ít sử dụng nhất: thuật toán LRU.
Hình 2 : Eviction of a cache line
Line dữ liệu bị ghi đè. Mục đích đầu tiên của L2 là sao chép lại line này

thay vì xóa nó đi.
18
Việc bổ sung L2 sẽ tạo ra các trường hợp khi yêu cầu đọc được thực
hiện :
• Dữ liệu ở L1 : L1 success
• Dữ liệu không đưa vào L1 nhưng ở L2 : L1 miss, L2 success.
• Dữ liệu không đưa vào L1 và không đưa vào L2 : L1 và L2
miss
Figure 3 : L1 fill
Ngay khi sau L1 đầy, L2 có vai trò tích cực : khi line được đuổi từ L1,
nó được sao chép vào L2, line mới từ bộ nhớ được sao chép vào line tự do :
19
Hình 4 : L2 fill
Từ thời điểm này, L2 chứa dữ liệu và có thể trả lời một yêu cầu đọc.
Nếu dữ liệu được yêu cầu không có trong L1 nhưng trong L2, một line của
L1 được sao chép. Vì một line trong L1 phải được giải phóng để có thể sao
chép được dữ liệu từ L2. Thuật toán LRU cho phép chọn 1 line, sao chép nó
vào L2 và line từ L2 được sao chép lại vào line tự do trong L1.
Hình 5 : L1 miss, L2 success
20
Cùng một line không bao giờ tồn tại trong L1 và L2 tại cùng một thời
điểm. Có nghĩa là L1 và L2 không chứa các dữ liệu giống nhau và dữ liệu
trong bộ nhớ cache là duy nhất. Nó có tính linh hoạt nhưng nó lại làm giảm
hiệu suất. Khi mà L2 success, L1 phải sao chép dữ liệu sang L2 trước khi
nhận dữ liệu từ L2. Điều này làm tăng thời gian cần thiết để có được dữ liệu
từ L2.
Để tăng tốc quá trình, bộ nhớ cache thường sử dụng bộ nhớ đệm thay
thế (Victim Buffer- VB), nó là bộ nhớ nhỏ trung gian giữa L1 và L2. Một
line được lấy từ L1 sau đó được sao chép vào VB chứ không phải vào L2;
đồng thời yêu cầu đọc từ L2 bắt đầu. Sau đó, nếu ngẫu nhiên dữ liệu được

yêu cầu tiếp theo lại nằm trong VB, thì việc lấy lại dữ liệu đó từ VB sẽ
nhanh hơn nhiều so với việc lấy dữ liệu từ L2.
VB là một cải tiến quan trọng trong bộ nhớ cache; tuy nhiên, nó bị giới
hạn bởi kích thước nhỏ. Khi VB đầy, nó được ghi bổ sung vào L2, vì vậy nó
cần một số chu kỳ phụ trợ.
Hình 6 : Caching
Khi mà L1 đầy, dữ liệu yêu cầu đều không có trong cả L1 và L2, line
mới được sao chép vào cả L1 và L2. Khi đó, một line trong L1 bị xóa nhưng
không cần phải lưu trong L2 bởi vì nó thực sự đã ở trong L2.
21
Từ thời điểm này, L2 là nơi chứa dữ liệu chứ không phải L1.
Figure 7 : L1 and L2 miss
Nếu dữ liệu đã yêu cầu không có trong L1 nhưng được tìm thấy trong
L2 (L2 success ), chỉ cần sao chép từ L2 sang L1.
Figure 8 : L1 miss, L2 success
Ở trường hợp này, tất cả line trong L1 được lặp lại ở L2, nói cách khác
hình ảnh của L1 được đưa vào trong L2. Nó tránh được việc ghi dữ liệu khi
L2 success và trên thực tế nó nhanh hơn so với việc độc quyền dữ liệu trong
cache. Nhưng mặt khác , sự trùng lặp dữ liệu này làm giảm kích thước của
22
L2; như vậy có nghĩa là kích thước lưu trữ của L2 phải lớn hơn L1 và tổng
kích thước lưu trữ “hữu ích” của bộ nhớ cache là kích thước lưu trữ của L2.
7. Ưu điểm và nhược điểm của từng phương pháp
Bộ nhớ cache độc quyền:
Bộ nhớ cache L1 với kích thước lớn. Điều này là có thể bởi vì không
có sự ràng buôc với kích thước bộ nhớ cache L2. Hơn nữa, một L1 lớn làm
giảm việc truy cập đến L2.
Một bộ đệm thay thế để cải thiện việc thực hiện. AMD đã sử dụng
mối quan hệ độc quyền này lần đầu tiên trên Thunderbird. Kiến trúc CPU
này bao gồm cache L1 lớn với 8 bộ nhớ đệm thay thế.

Sự lựa chọn này cho phép xây dựng các CPU với kích thước cache L2
từ 64KB đến 512KB làm gia tăng hiệu suất.
8.Băng thông bộ nhớ cache
Kiểm tra băng thông chủ yếu là đo thời gian yêu cầu đến khi đọc được
bộ đệm. Kích thước bộ đệm tăng từ 1Kb đến 32Mb. Ba phương phá đọc
được thử nghiệm là: Integer (bits reads), MMX (64 bits reads) và SSE (128
bits reads).
Các thử nghiệm được chạy trên Operon 244 và trên Athlon XP 2200+,
ở tốc độ 1,8GHz.
INT Read Bandwidth (32bits)
23
Tổng quát hình dạng của đường Opteron cho thấy mức độ bộ nhớ cache
khác nhau:
Cache L1chứa 64Kb dữ liệu và 1024 Kb là của L2. L2 kéo dài tới 1088
Kb, đại diện cho tổng hai cache ( 1024 + 64 ), đó là do mối quan hệ độc
quyền giữa hai cache. Kết quả thu được trên Athlon XP cũng tương tự như
vậy, L2 đạt đến 320 Kb ( 64 + 256 ).
. Băng thông của L1 đạt đến 10000 Mb/s trên Athlon XP, tương đương
5,2 byte mỗi chu kỳ, và 12500 Mb/s trên Opteron, tương đương 7 byte mỗi
chu kỳ.
Nếu xét là 32bits, tức là đọc 4 byte trên một lệnh, nghĩa là K8 có thể xử
lý hai thao tác này trên mỗi chu kỳ. Điều này có thể thực hiện được là nhờ
vào các đơn vị tải/ đơn vị lưu trữ (LSU), có thể xử lý hai phần 64bits tải
hoặc lưu trữ trên mỗi chu kỳ. Để duy trì LSU, bộ nhớ cache L1 phải là cổng
kép, điều đó có nghĩa là nó cũng có thể để xử lý đọc hoặc ghi trên mỗi chu
kỳ. Ở 1,8 GHz, LSU/ L1 có thể cung cấp băng thông tối đa là:
2 ops x 8 byte x 1800 MHz =28800 Mb/s đối với 64bits
24
hoặc 2 ops x 4 byte x 1800 MHz= 14400 Mb/s đối với 32bits
Athlon XP cho băng thông tối đa là 70%. Opteron hiệu quả hơn và đạt

đến 87%, nhờ cải tiến pipeline.
. Bộ nhớ cache L2 của Athlon XP cung cấp 5000 Mb/s và của Opteron

6530 Mb/s. Cache L2 trong số hai CPUs không có cổng kép, vì vậy nó chỉ
có thể xử lý một hoạt động mỗi chu kỳ. Điều đó có nghĩa là băng thông có
giá trị
1 ops x 4 byte x 1800 MHz = 7200 Mb / s.

MMX Read Bandwidth (64bits)
Băng thông tối đa của L1 là 28800 Mb / s khi sử dụng 64bits đọc.
Athlon XP cung cấp 65% băng thông với giá trị ban đầu là 18800 Mb/s, và
Opteron đạt đến 79% giá trị này với 22700 Mb/s.
. L2 của Opteron cung cấp băng thông là 8260 Mb/s, và Athlon XP là
5700 Mb/s. Trong cả hai trường hợp, kết quả khác xa với giá trị tối đa là
25

×