(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)

FPT Aptech trực thuộc Tổ chức Giáo dục FPT có hơn 25 năm kinh nghiệm đào tạo lập trình viên quốc tế tại Việt Nam, và luôn là sự lựa chọn ưu tiên của các sinh viên và nhà tuyển dụng.
0981578920
icons8-exercise-96