(Post 04/08/2006) Với những
hạn chế tồn tại ngăn trở việc gia tăng hiệu năng của vi xử lý, ngành công
nghiệp vi xử lý đã đi theo hướng kiến trúc CPU đa nhân, vậy kiến trúc
này có gì vượt trội? Chúng ta sẽ cùng phân tích trong phần thứ hai của
loạt bài viết này.
Giới thiệu chung
Tuy với phần
một của loạt bài này, tôi đã đưa ra nhiều vấn đề ngăn trở việc gia
tăng hiệu năng của CPU hiện tại. Nhưng thực tế thì, chúng ta, trong khoảng
thời gian gần một thập kỷ qua, đã chứng kiến rất rất nhiều những cuộc
cách mạng về công nghệ máy tính, làm thay đổi hoàn toàn những gì chúng
ta vẫn thường hiểu về máy tính. Có thể nêu ra một vài ví dụ, đó là sự
ra đời của bộ xử lý đồ họa, thay đổi gần như hoàn toàn việc chúng ta giải
trí với game máy tính, đó là những cải tiến về hệ điều hành và phần mềm,
làm thay đổi cách làm việc và giao tiếp của chúng ta với máy tính... suy
cho cùng, CPU cũng không phải là tất cả.
Vậy thì liệu CPU đa nhân sẽ mang lại
lợi ích thực sự gì cho chúng ta? Đó là một vấn đề rất đáng để thảo luận,
và chúng ta sẽ cùng làm rõ trong bài viết này.
Đa nhân - Đa chi phí?
Chi phí để sản xuất CPU đa nhân cao hơn
rất nhiều so với chi phí sản xuất CPU một nhân. Lý do cốt yếu là diện
tích phần nhân CPU (giờ gồm hai nhân) tối thiểu là lớn gấp đôi diện tích
phần nhân CPU một nhân tương tự về mặt công nghệ.
Điều này dẫn tới hai điểm làm tăng giá
thành sản xuất lên.
Điểm thứ nhất, do diện tích cần sử dụng
tăng lên, mỗi tấm wafer chỉ có thể sử dụng để sản xuất số CPU hai nhân
tối đa là một nửa so với chính tấm wafer đó nếu dùng để sản xuất CPU một
nhân. Tất nhiên còn phụ thuộc vào cách sắp xếp của nhà sản xuất, nhưng
phần nhiều khả năng là không đạt được con số 50%.
Điểm thứ hai, đó là tỉ lệ sống của nhân
CPU, như đã nói, 70% là con số đáng tự hào, thế nhưng, do diện tích tăng
lên, khả năng nhân CPU không hoạt động cũng sẽ tăng lên nhiều, và tỉ lệ
này nếu sử dụng con số khoảng 40% - 50% sẽ hợp lý hơn.
Bởi vậy, nếu nói về chi phí sản xuất,
để sản xuất một CPU hai nhân (không kể phần đóng đế và đóng gói) sẽ lớn
ít nhất là gấp hai lần CPU một nhân.
Thế nhưng, bù lại, CPU đa nhân có thể
ứng dụng những dây chuyền hiện tại, những công nghệ chế tạo hiện tại để
sản xuất. Trong khi, chi phí cho nghiên cứu phát triển để giải quyết những
trở ngại đã nêu trong bài trước sẽ là lớn hơn rất nhiều trong khi những
kết quả nó mang lại.
Đa nhân - Đa công suất?
Lại nói về vấn đề công suất, CPU đa nhân
sẽ không làm tăng mật độ nhiệt, do nhiệt lượng tỏa ra tuy sẽ lớn gấp đôi,
nhưng diện tích tỏa nhiệt cũng sẽ lớn gấp đôi. Do vậy, việc làm mát một
CPU một nhân có công suất tỏa nhiệt khoảng 90W cũng không có hơn việc
làm mát một CPU hai nhân có công suất tỏa nhiệt khoảng 180W.
Tuy nhiên, làm mát CPU là một chuyện,
nhưng để làm mát cả hệ thống thì lại là chuyện khác, làm thế nào để 180W
nhiệt tỏa ra từ CPU không nướng chín toàn bộ các thành phần khác trong
máy tính là một việc không phải dễ, lại càng khó hơn nếu muốn máy tính
của bạn không thành một cái máy hút bụi với tiếng ồn khủng khiếp.
Vởi vậy, hiện tại, Intel mới chỉ cung
cấp CPU hai nhân Prescott với tốc độ xung lên tới 3.2GHz (trong khi CPU
một nhân Prescott) chạy ở 3.8GHz. Nhưng trong tương lai không xa, Intel
sẽ sử dụng kiến trúc của Pentium M (với công suất tỏa nhiệt và tiêu thụ
điện năng rất thấp) để giải quyết vấn đề này.
Đa nhân - Đa hiệu năng?
Trước tiên, như đã nói ở phần I, một
hệ thống CPU hai nhân sẽ không cung cấp được hiệu năng của một hệ thống
hai CPU một nhân. Điều này lý giải bởi đối với một hệ thống hai CPU, mỗi
CPU có bus dữ liệu tới CPU riêng, trong khi trong hệ thống CPU hai nhân
thì cả hai nhân phải dùng chung một bus dữ liệu tới CPU.
Hiệu năng của một hệ thống CPU đa nhân,
hay một hệ thống đa CPU, phụ thuộc nhiều vào phần mềm mà hệ thống đó sử
dụng. Để có thể khai thác hiệu năng của một hệ thống CPU đa nhân, phần
mềm cần phải xây dựng dựa trên kiến trúc multi-threaded, nghĩa là tự nó
sẽ chia công việc ra làm nhiều phần, khởi tạo các thread (bản sao của
chương trình trong bộ nhớ) khác nhau, và mỗi thread sẽ giải quyết một
phần công việc. Với kiến trúc multi-threaded này, mỗi thread của chương
trình sẽ được một CPU (hoặc một nhân CPU) xử lý, do đó, tất cả các nhân
CPU đều được khai thác tối đa hiệu năng.
Tuy nhiên, số lượng phần mềm multi-threaded
này không nhiều, nhất là trong môi trường máy tính chúng ta làm việc hàng
ngày. Nhưng với trào lưu CPU đa nhân đang trở nên ngày càng phổ biến,
chắc chắc các lập trình viên sẽ phát triển ứng dụng của mình theo hướng
này, và không sớm thì muộn CPU đa nhân cũng sẽ có đất để thể hiện khả
năng của mình.
Nhưng nói như vậy không có nghĩa là tại
thời điểm hiện tại CPU đa nhân chưa có đất để thể hiện khả năng của mình.
Trong môi trường đa nhiệm mà hiện tại chúng ta vẫn sử dụng hàng ngày,
các ứng dụng chúng ta sử dụng sẽ được chia đều cho các nhân CPU xử lý,
và do vậy, phản xạ của hệ thống sẽ tốt hơn nhiều so với CPU một nhân chạy
ở tốc độ xung cao hơn.
Chi tiết hơn về hiệu năng, chúng tôi
sẽ nói kỹ hơn trong những bài review sản phẩm với những con số cụ thể.
Thread ứng dụng và hiệu năng
Như đã nêu ở trang trước, để khai thác
tối đa một CPU đa nhân, ứng dụng chúng ta dùng cần phải là một ứng dụng
multi-threaded. Vậy chính xác, thread ứng dụng là gì?
Để hiểu chính xác thread là gì, chúng
ta cần phải hiểu cách chia CPU cho các phần mềm của một hệ điều hành.
Một hệ điều hành đa nhiệm (như Windows 95 trở lên) sẽ chia cho mỗi ứng
dụng (process) một phần bộ nhớ để nó sử dụng, và nó có toàn quyền sử dụng
phần bộ nhớ này. Ứng dụng này không thể trực tiếp truy cập phần bộ nhớ
của ứng dụng khác mà phải thông qua hệ điều hành.
Ứng dụng đó sẽ khởi tạo các thread (bản
sao của chính nó) và cấp cho mỗi thread một phần bộ nhớ trong phần bộ
nhớ nó được cấp, các thread này có thể giao tiếp với nhau rất nhanh do
không phải thông qua hệ điều hành, và mỗi thread sẽ được nhận một phần
công việc được tách nhỏ ra của phần công việc lớn ứng dụng nhận được.
Vấn đề ở chỗ, hệ điều hành phân chia
thời gian CPU cho các thread, mỗi thread chỉ có thể sử dụng một CPU (hay
một nhân CPU), do vậy, đối với phần mềm single-threaded, chỉ có một thread
được ứng dụng sinh ra, do đó, nó chỉ có thể khai thác được khả năng của
một CPU (hay một nhân CPU), bỏ nhân CPU còn lại đứng chơi không.
Multi-threaded trong lập trình
game
Game hiện tại cần rất nhiều năng lực
của CPU, điều đó đã rõ, nhưng hầu hết tất cả các game hiện tại đều chưa
phải là một phần mềm multi-threaded. Do vậy, CPU đa nhân chưa phải là
thứ có thể làm tăng hiệu năng cho các game phức tạp.
Nhưng, tương lai của việc ứng dụng CPU
đa nhân để tăng hiệu năng cho các game hiện tại là rất sáng. Trong tương
lai gần, các game sẽ ứng dụng rất nhiều kỹ thuật mới để tăng tính chân
thực của game. Ví dụ, việc xử lý vật lý của các đối tượng trong game,
việc xử lý trí thông minh nhân tạo của các nhân vật trong game, và nói
chung tất cả những công việc khác của game mà không phải là phần xử lý
đồ họa (do card đồ họa gánh vác).
Các game sẽ trở nên chân thực hơn, nhất
là khi ứng dụng việc xử lý vật lý giữa các đối tượng trong game được hoàn
thành. Bạn sẽ không thể đoán trước được điều gì sẽ xảy ra, và cần phải
sử dụng cái đầu của mình một cách tối đa để xử lý các tình huống diễn
ra trong game.
Đối với các trò chơi ứng dụng nhiều trí
thông minh nhân tạo (ví dụ như Football Manager 2005 - tiền thân là Championship
Manager), bạn sẽ không phải ngồi đợi tới vài phút đồng hồ đợi máy tính
xử lý xong dữ liệu của một vòng đấu. Việc chơi game sẽ trở nên thích thú
hơn nhiều.
Xử lý vật lý
Việc xử lý vật lý trong game đã được
chú ý nhiều hơn trong thời gian gần đây. Khi có sự va chạm giữa các vật
thể trong game, game sẽ tính toán góc va chạm, lực va chạm và các yếu
tố vật lý khác để ra một kết quả va chạm thực nhất. Hiện tại thì việc
xử lý vật lý của các game đều được tính toán trước, giảm bớt tính chân
thực của game.
CPU đa nhân trong các ứng dụng
văn phòng
Đây chính là nơi mà CPU đa nhân thể hiện
được khả năng của mình rõ rệt nhất.
Nếu bạn thường làm việc với hàng chục
cửa sổ Internet Explorer, vài cửa sổ ứng dụng chat, với một lô một lốc
các tài liệu tham khảo thì bạn chính xác là người may mắn nếu dùng CPU
đa nhân.
Đối với những ứng dụng dạng này, thường
mỗi cửa sổ mở ra sẽ là một process, và những ứng dụng như Windows Explorer
có lựa chọn để cho bạn bật hay tắt tính năng này. Mỗi process sẽ có thể
sử dụng một CPU để làm việc, tăng tốc cho toàn bộ ứng dụng.
Bên cạnh đó, trong môi trường đa nhiệm,
mỗi ứng dụng có thể tận dụng một CPU do đó, nếu bạn sử dụng nhiều ứng
dụng một lúc, bạn sẽ cảm thấy máy tính trơn tru hơn rất nhiều, việc chuyển
qua đổi lại giữa các ứng dụng sẽ không bị trễ.
Hơn nữa, các ứng dụng chạy nền sẽ không
làm ảnh hưởng tới công việc của bạn, tránh tình trạng như bạn cần copy
một file lớn máy lại bị "đờ ra" một khoảng thời gian không làm
được việc gì khác cả.
CPU đa nhân trong các ứng dụng
chuyên nghiệp
Hầu hết các ứng dụng chuyên nghiệp đòi
hỏi năng lực xử lý của CPU cao, do vậy, tốc độ xung cao của CPU luôn là
một lợi thế. Và đây lại là điểm yếu của CPU đa nhân của Intel.
Tuy vậy, cũng hầu hết các ứng dụng chuyên
nghiệp đều được phát triển theo hướng multi-threaded. Do vậy, hiệu năng
mang lại là rất lớn nếu chạy trên nền CPU đa nhân.
Những ứng dụng nào là multi-threaded,
những ứng dụng nào không, bạn cần tự tìm hiểu lấy trước khi chắc chắn
rằng chúng có thể tăng hiệu năng khi chạy với CPU đa nhân. Nếu chúng không
phải là một ứng dụng multi-threaded, thì lựa chọn tốt nhất của bạn vẫn
là CPU một nhân với tốc độ xung cao.
Kết luận
Qua hai bài viết, tôi và các bạn có thể
thấy tương lai của CPU đa nhân là rất sáng, việc chuyển hướng này cho
phép các nhà sản xuất tăng hiệu năng của CPU lên cao hơn nữa mà không
gặp quá nhiều khó khăn trong việc đầu tư vào phát triển công nghệ.
Bên cạnh đó, CPU đa nhân còn có những
lợi ích không thể chối cãi mà CPU một nhân cho dù có hiệu năng cao tới
đâu cũng không thể có được. Ví dụ như khả năng xử lý song song nhiều thread
chương trình cùng một lúc.
Tuy nhiên, sức mạnh của kiến trúc đa
nhân tới thời điểm hiện tại này, đối với Intel vẫn chưa thể hiện hết khả
năng của mình. Bởi vẫn sử dụng kiến trúc nhân Prescott, công suất tiêu
thụ và tỏa nhiệt lớn, dẫn tới việc tốc độ xung không thể tăng tới mức
tối đa mà nhân Prescott đạt được. Tuy nhiên, đây mới chỉ là sự khởi đầu
của Intel đối với CPU đa nhân, và trong tương lai gần, chắc chắn CPU đa
nhân sẽ là sự lựa chọn cho một máy tính hiệu năng cao.
Với những bài review sản phẩm CPU hai
nhân của Intel sắp được đăng, các bạn sẽ có một cái nhìn cụ thể hơn, dựa
trên các kết quả thử nghiệm, để rút ra một kết luận cho sự lựa chọn của
mình. Liệu rằng, tại thời điểm hiện tại, CPU hai nhân đã phù hợp với nhu
cầu của mình hay chưa?
CPU đa nhân đang là điểm nóng của toàn
bộ ngành công nghiệp công nghệ máy tính, tất nhiên vnOCzone.com cũng không
thể nằm ngoài xu hướng này. Với tiêu điểm tuần này là CPU đa nhân, chúng
tôi sẽ sử dụng một ví dụ điển hình nhất của CPU đa nhân là Intel Pentium
D, một sản phẩm mới được công bố của hãng Intel, hiện đang có mặt rộng
rãi tại thị trường Việt Nam.
Không ngừng phát triển liên tục trong
hơn hai thập kỷ qua, bộ xử lý một nhân đã dần đạt tới giới hạn hiệu năng
của mình, do nhiều cản trở khác nhau, và kiến trúc đa nhân là lựa chọn
của ngành công nghiệp vi xử lý cho những vấn đề này. AMD đã giới thiệu
sản phẩm Athlon 64 X2 và Intel đã giới thiệu sản phẩm Pentium D, cả hai
đều là những ứng dụng đầu tiên kiến trúc đa nhân với hai nhân tích hợp.
Về phía AMD, hãng đã giới thiệu biến
thể đầu tiên của sản phẩm hai nhân của mình. Gồm Athlon 64 X2 3800+, 4200+,
4400+, 4600+ và 4800+.
Trong đó, 3800+ chạy ở tốc độ 2GHz với
tổng dung lượng cache L2 là 1MB (512KB cho mỗi nhân). 4200+ và 4400+ đều
chạy ở 2.2GHz nhưng 4200+ chỉ có 512KB cache L2 cho mỗi nhân trong khi
4400+ dung lượng cache được tăng gấp đôi.
Các sản phẩm cao cấp hơn, Athlon 64 X2
4600+ và 4800+ chạy ở 2.4GHz với dung lượng cache khác nhau tương tự hai
sản phẩm 4200+ và 4400+.
Về phía Intel, hãng hiện đang cung cấp 4 sản phẩm
hai nhân của mình, gồm một sản phẩm Pentium Extreme Edition chạy ở 3.2GHz
với 2MB cache (1MB cho mỗi nhân), sản phẩm này có công nghệ HT được kích
hoạt đưa tổng số bộ xử lý logic lên tới 4.
Các sản phẩm Pentium D, gồm có 840, 830,
820 không được kích hoạt công nghệ HT, có tốc độ lần lượt là 3.2GHz, 3GHz
và 2.8GHz. Cả ba sản phẩm này đều có cache L2 là 2MB (1MB cho mỗi nhân).
Toàn bộ các sản phẩm hai nhân của Intel
đều chạy FSB 800MHz và chế tạo bởi công nghệ 90nm, sử dụng đế cắm LGA775.
Trong những bài viết xoay quanh tiêu điểm tuần này
của vnOCzone.com, các bạn sẽ có một cái nhìn rõ nét hơn về hiện trạng
của kiến trúc vi xử lý hiện nay, những tồn tại của nó, và tại sao tốc
độ gia tăng hiệu năng của vi xử lý đã chậm hẳn lại trong thời gian vài
năm vừa qua. Và vì sao, kiến trúc đa nhân lại được các nhà sản xuất vi
xử lý lựa chọn là hướng phát triển tương lai cho sản phẩm của mình.
Bên cạnh đó, chúng tôi sẽ đăng tải những
bài review sản phẩm CPU hai nhân hiện đang có mặt rộng rãi trên thị trường
và nền tảng chipset hỗ trợ chúng, giúp các bạn lựa chọn dễ dàng hơn các
sản phẩm phù hợp với mình nếu có nhu cầu sử dụng một hệ thống CPU đa nhân.
Với chuyên mục hướng dẫn sử dụng, chúng
tôi sẽ có một bài hướng dẫn cách cài đặt, cấu hình, các thủ thuật trong
quá trình sử dụng để làm sao tận dụng tối đa năng lực một hệ thống CPU
đa nhân.
Và để xứng với cái tên vnOCzone.com,
tất nhiên các bạn sẽ không thất vọng với một bài overclock review các
sản phẩm CPU đa nhân hiện có trên thị trường, sản phẩm nào phù hợp với
bạn nhất nếu máu overclocker đang sôi sục trong lòng bạn
Lê Thanh Nhân (theo VOZ.com) |