Bước đi mới của ARM với lõi cortex

Kiến trúc lõi Cortex A12 hướng vào thị trường tầm trung đông đảo và cũng là chiến lược quan trọng của ARM trong cuộc cạnh tranh với đối thủ Intel đang trỗi dậy.

Trong PCW kì trước, chúng ta đã tìm hiểu mô hình kinh doanh độc đáo mà ARM xây dựng thành công dựa trên nền tảng tri thức của một công ty chuyên về chip xử lý nhưng lại không hề bán ra một mẫu chip thực sự nào. Thay vào đó, họ hoàn toàn chỉ bán các bằng sáng chế chip cũng như cho thuê chúng. Trong bài viết lần này, chúng ta sẽ tập trung xem xét sản phẩm mới nhất của ARM: lõi Cortex A12. Đây được xem là giải pháp lý tưởng mà ARM muốn hướng tới thị trường tầm trung phổ thông – vốn tập trung số lượng sản phẩm và người dùng đông đảo nhất.

Cuộc chơi sôi động ở thị trường chip di động

Lộ trình sản phẩm của ARM trong giai đoạn 2013 (Nguồn: ARM)

Dải sản phẩm của ARM dành cho thị trường di động ẩn chứa nhiều thú vị. Ở lĩnh vực máy tính cá nhân, các vi kiến trúc mới nhất của Intel luôn tập trung sự chú ý của cộng đồng để rồi sau đó được “rút gọn” thành các phiên bản chip khác nhau ở từng phân khúc giá. Hệ quả là người dùng nhận được những biến thể sản phẩm với khác biệt về bộ nhớ đệm, số lõi, xung nhịp, tập lệnh, lõi đồ hoạ… Nói cách khác, Intel luôn sử dụng duy nhất một vi kiến trúc chung cho phần lớn nhu cầu thị trường. Điều này càng dễ thấy hơn khi hãng ra mắt thế hệ Core với vi kiến trúc Haswell mới cùng tham vọng sẽ hợp nhất thiết kế cho các mảng sản phẩm từ máy chủ, máy trạm cho tới máy tính xách tay.

Tuy nhiên, Intel vẫn có những vi kiến trúc khác – điển hình là Atom ra mắt lần đầu năm 2008. Sự kết hợp giữa Atom và Core đã cho phép Intel “phủ” phần lớn thị trường điện toán với mức giá từ hai chữ số đối với các mẫu Atom rẻ nhất cho tới bốn chữ số trên các dòng Core cao cấp. Ngoài ra, Intel cũng có một số thiết kế khác dành cho máy chủ và được hướng xuống các dòng máy tính cá nhân siêu cao cấp. Tuy nhiên số này không phải thứ chúng ta đề cập tới. Thay vào đó, hãy nhìn riêng mảng sản phẩm điện toán cá nhân với các thiết bị tiêu biểu như điện thoại thông minh, máy tính bảng, máy tính xách tay và máy để bàn thì Intel chỉ sử dụng hai kiến trúc như đã đề cập ở trên. Trong khi đó, ARM sử dụng ba kiến trúc khác nhau.

Cụ thể hơn, ARM phân định rất rõ ràng dòng Cortex A15 hướng tới mảng sản phẩm cao cấp, Cortex A9 dành cho thị trường phổ thông và Cortex A7 dành cho thị trường cấp thấp với mức giá rẻ. So với Intel, A15 sẽ tương đương với các dòng chip Core thế hệ mới (dòng Y) tiết kiệm điện trong khi A9 tương đương với Atom. Riêng A7 sẽ vẫn là nhóm sản phẩm với hiệu suất vận hành ở mức cao mà Intel chưa thể đáp ứng được nhu cầu – đặc biệt là khi xét những yếu tố như kích thước lõi/giá thành/điện năng tiêu thụ. Thực tế, với kiến trúc lõi thứ ba này, ARM đã duy trì được ưu thế tuyệt đối của mình ở nhiều lĩnh vực sản phẩm mà Intel chưa thể với tới, điển hình là thiết bị nhúng, thiết bị gia dụng, xe hơi và nhiều thứ tương tự khác. Nói cách khác, Intel hiện vẫn bị giới hạn trong lĩnh vực điện toán chuyên biệt thay vì đi sâu sát vào các sản phẩm tiện ích nói chung như ARM.

Sự linh hoạt trong vi kiến trúc lõi chip

Với các hệ thống trên chip (SoC) giai đoạn gần đây, khả năng tiêu thụ năng lượng ngày càng được thiết kế linh hoạt hơn. Trong khi các thế hệ mới với hiệu năng vận hành cao thường yêu cầu mức năng lượng tối đa (Peak Power Consumption) lớn thì hiệu suất sử dụng lại cũng được cải thiện đáng kể – hệ quả của những cải tiến về kiến trúc cũng như quy trình sản xuất (hoặc cả hai). Nhờ thế, qua những tinh chỉnh nhất định, hầu hết các nhà sản xuất ARM đều có thể đạt được một tỉ lệ “vàng” hiệu năng /năng lượng tiêu thụ nhất định theo yêu cầu riêng. Dù vậy, xu hướng chung vẫn là các dòng chip thế hệ mới có mức năng lượng yêu cầu tối đa ngày càng cao hơn, bất kể đó là sản phẩm đến từ nhà sản xuất ARM nào.

Hệ quả không thể tránh khỏi là nhiều vi kiến trúc sẽ bị “bật” ra khỏi các mảng sản phẩm nhất định – ví dụ như thiết bị di động bởi một trong các lý do: quá lớn, đắt đỏ hoặc sử dụng nhiều năng lượng. Dĩ nhiên, cũng không hiếm trường hợp một vi kiến trúc nào đó “dính” hai hoặc thậm chí cả ba vấn đề này. Thực tế,  ARM cũng đặt mục tiêu vượt lên cao hơn điện thoại thông minh hay máy tính bảng bởi những ưu thế về tiết kiệm điện và hiệu năng tốt cho phép họ có được cơ hội trong cả mảng sản phẩm máy chủ (hay thậm chí là máy tính cá nhân hiệu năng cao, máy tính Chrome OS hoặc Windows RT). Bản thân các dòng Cortex A15 hiện cũng không mấy khi có mặt trong điện thoại thông minh (trừ một số bản Galaxy S4 quốc tế). Lý do rất dễ hiểu là bởi lõi này nằm ở “khoảng” tỉ lệ hiệu năng/năng lượng tiêu thụ hoàn toàn khác so với những gì điện thoại cần.

Trong khi đó, Cortex A8 và A9 lại thực sự là những vi kiến trúc mà điện thoại thông minh đang tận dụng triệt để trong vài năm trở lại đây. Tuy nhiên, vấn đề lại nằm ở chỗ trong khi ARM đang hướng tới thị trường hiệu năng cao hơn với A15 thì họ lại không có giải pháp thay thế cho A9. Vào lúc này, họ buộc phải hướng A15 cho cả các tác vụ yêu cầu điện thế thấp hơn nhưng điều ngược đời là toàn bộ các đối tác sản xuất của ARM lại tập trung vào việc…. khai thác triệt để hiệu năng của kiến trúc này thay vì đi theo chỉ dẫn. Thực tế, điều này cũng không phải không có lý bởi khi đã chi một khoản không nhỏ cho quyền sử dụng kiến trúc A15, các nhà sản xuất hẳn sẽ muốn có được mức hiệu năng cao nhất có thể. Hiện tại, chỉ có Apple là tỏ ý muốn theo đuổi việc tiết kiệm năng lượng.

Có thể thấy rằng Cortex A9 thực sự cần một phiên bản kế thừa để đáp ứng những yêu cầu mới. Trong giai đoạn gần đây, cộng đồng công nghệ liên tục nhận được những thông tin mới về một kiến trúc ARM nhanh hơn A9 nhưng lại sử dụng ít năng lượng hơn A15 dù chỉ chậm hơn chút ít. Hiện tại, duy nhất mới chỉ có kiến trúc riêng (chính là những lõi Krait trong các thế hệ thiết bị di động hiện tại) của Qualcomm là có thể “đứng” ở vị trí này. Chính vì thế, nếu ARM muốn duy trì ưu thế về tài sản trí tuệ của mình, họ sẽ cần một giải pháp mới để đảm bảo tương lai của các dòng sản phẩm điện thoại thông minh phổ thông: Cortex A12.

Kiến trúc lõi Cortex A12 hướng vào thị trường tầm trung đông đảo và cũng là chiến lược quan trọng của ARM trong cuộc cạnh tranh với đối thủ Intel đang trỗi dậy.
Cortex A12 – có gì thú vị

Một chi tiết thú vị là toàn bộ đội ngũ phát triển Cortex A12 đều là những người đã từng phát triển Cortex A9 trước đây. Vì thế, dù chưa thể nói rằng A12 thực tế là phiên bản kế thừa của A9 nhưng rõ ràng những thiết kế có trong A12 sẽ bị ảnh hưởng nhiều từ A9. A12 vẫn là kiến trúc xử lý kép (chuyển hai lệnh từ một bước trong pipeline sang vị trí khác), xử

Hiệu suất vận hành của các kiến trúc ARM trong lộ trình phát triển

lý lệnh phi trật tự (Out-Of-Order Execution – xử lý theo sắp xếp dữ liệu thay vì ứng dụng). Nó cũng có bộ đệm cấp 2 (L2) tích hợp và khả năng ghép đa lõi. So với A9, A12 có kênh lệnh số thực dài hơn: 10-12 bước so với chỉ 8-11 bước đồng thời là chip vận hành hoàn toàn theo cơ chế phi trật tự – kể cả các dấu chấm động (FP) và cơ chế đồ xử lý đa phương tiện NEON.

Bản thân Cortex A12 cũng duy trì các tính năng cùng sự tương thích ISA của Cortex A7 và A15. Điều này chính là thứ xác định nó trở thành sản phẩm tầm trung trong nhóm vi xử lý thế hệ mới của ARM. Cả ba kiến trúc đều hỗ trợ đánh địa chỉ vật lý 40-bit, giao tiếp bus AXI4 128-bit, tập lệnh ARM-v7A 32-bit (NEON đã được đưa thành trở thành chuẩn mực trên A12 mới). Sự tương thích của A12 với A7 và A15 còn cao tới mức nó có thể được bố trí trong thiết kế big.LITTLE cùng với một nhóm lõi A7 (trừ một vài phiên bản đầu tiên không có sẵ giao tiếp cần thiết cho thiết kế này).

Trong Cortex A9, ARM đã tách riêng loại bộ đệm cấp 2 yêu cầu xử lý từ phía hệ điều hành. Thiết kế của A12 đi theo một hướng khác khi tích hợp hoàn toàn bộ đệm L2 – tương tự như A7 và A15. Bộ đệm cấp 2 giờ đây có thể tự vận hành với điện thế và xung nhịp riêng (hoặc có thể đồng bộ với lõi xử lý trong trường hợp cần thiết). Bộ đệm cấp 2 có thể được chia sẻ với tối đa bốn lõi cùng lúc. Trong khi đó, những thiết kế nhiều lõi hơn có thể đạt được thông qua việc ghép nhiều cụm bốn lõi lại với nhau.

Riêng bộ đệm lệnh cấp 1 được liên kết 4 kênh và có thể được tuỳ biến về kích thước (32KB hoặc 64KB). Các kích thước dòng bộ đệm trong Cortex A12 giờ đây đã được tăng lên 64 byte so với chỉ 32 byte trên Cortex A9 để có thể vận hành phù hợp hơn với bộ nhớ DDR (giống với thiết kế của A7 và A15).

Thao tác dự đoán nhánh cũng được cải thiện đáng kể so với Cortex A9. Dường như trong khi thiết kế A12, ARM đã đánh giá thấp hiệu năng tổng thể của kiến trúc mới và đưa ra bộ dự đoán nhánh quá yếu. Chỉ mới ba tháng trước đây, ARM mới nhận ra sai lầm này – điều đã đẩy họ vào tình thế hết sức khó khăn: hoặc đưa ra những thiết kế kém hiệu quả hơn hoặc nhanh chóng tìm một cơ chế dự đoán nhánh hiệu quả hơn. Bản thân đội ngũ phát triển Cortex 12 đã phải lục tung toàn bộ kho thông tin của ARM để tìm ra một cơ chế mà họ cần để rồi tạm hài lòng với Cortex A53. Tuy nhiên, ngay cả cơ chế của A53 cũng buộc phải được điều chỉnh để phù hợp với A12 mới để tạo ra kết quả như mong muốn: Cortex A12 với hiệu năng vận hành tuyệt vời nhờ cơ chế dự đoán nhánh tốt hơn cùng khả năng tiết kiệm điện được cải thiện đáng kể.

Như thế, trong khi những đặc điểm thiết kế trước-kết thúc (Front-End) của Cortex A12 đã thể hiện được chút ít cải thiện so với đàn anh, sự vượt trội thực sự về hiệu năng lại đến từ khả năng thực hiện lệnh của các lõi xử lý. Tương tự như ở A15, ARM đã giới thiệu nhiều hàng chờ lệnh độc lập đặt phía trước các đơn vị chức năng. Đây là vị trí rất quan trọng để lập danh mục xử lý. Các lệnh (instruction) được giải mã thành nhiều chỉ lệnh (micro-ops), những lệnh đã đổi tên được gửi vào các hàng chờ lệnh để rồi chỉ lệnh được ghép vào cùng một khi những toán hạng của chúng đã sẵn sàng. Trên Cortex A12 , từ quy trình cuối này trở về sau sẽ được xử lý theo cơ chế Out-of-Order như đã được đề cập tới ở trên.

Cấu trúc xử lý lệnh của ARM Cortex 12

Mặt khác, trong khi Cortex A9 chỉ có một hàng chờ lệnh đơn đặt trước tất cả các đơn vị chức năng, Cortex A12 có tới ba hàng chờ lệnh độc lập (gồm một hàng cho số nguyên, một cho FP/NEON và một cho việc nạp và lưu). Hơn thế nữa, nếu như hàng chờ này của A9 chỉ có thể “giữ” được bốn lệnh đã giải mã thì ở A12, con số này nhiều hơn nhiều. Việc chuyển qua các hàng chờ lệnh lớn hơn sẽ rất có ích đối với việc tăng tỉ lệ lệnh / xung nhịp. Thực tế, A12 sẽ vẫn duy trì hai kênh số nguyên của A9 (cùng toàn bộ các khả năng xử lý số nguyên) nhưng bổ sung thêm khả năng hỗ trợ chia số nguyên từ phần cứng (tương tự như A7 và A15, các dòng kiến trúc A khác tới nay đều cơ bản thiếu khả năng này).

Một trong các thế mạnh của Cortex A12 chính là sự cải thiện vượt bậc của các đơn vị FP/NEON – dấu chấm động và cơ chế xử lý đa phương tiện hiệu năng cao NEON (gần giống SSE của các chip Intel). Khi A9 lần đầu hiện diện, mã NEON gần như rất ít được sử dụng. Thậm chí nVIDIA còn bỏ hẳn việc hỗ trợ NEON trong Tegra 2. Tuy nhiên, khi Android và các ứng dụng di động bắt đầu đưa mã NEON vào ứng dụng, tình hình đã có nhiều thay đổi. Như thế, thiết kế Cortex A12 duy trì nhiều tập tin đăng kí vật lý cho số nguyên và các hoạt động xử lý dấu chấm động của A9. Tuy nhiên, chúng có kích thước lớn hơn. Ngoài ra, mặc dù A9 là kiến trúc phi trật tự (Out-Of-Order) nhưng các lệnh dấu chấm động và NEON vẫn được xử lý theo trình tự (In-Order). Với A12, toàn bộ đã được chuyển sang kiến trúc phi trật tự. Hàng chờ lệnh FP/NEON giờ đây cũng phát lệnh kép vào các kênh và toàn bộ đều vận hành phi trật tự. Các kênh FP/NEON cũng được bố trí chặt chẽ hơn nhằm tăng tốc độ di chuyển dữ liệu giữa các đơn vị dấu chấm động và số nguyên. Cuối cùng, hàng lệnh chờ sẽ đưa dữ liệu vào hai kênh nạp-lưu thông qua hai bộ khởi tạo địa chỉ (AGU – Address Generation Unit) – nhiều gấp đôi so với A9. Mỗi kênh dữ liệu này hầu như vận hành ở trạng thái phi trật tự – ngược lại với A9 hoàn toàn theo cơ chế trật tự. Nhờ tất cả những khác biệt này, sự cải thiện về hiệu năng FP/NEON của Cortex A12 thể hiện rất rõ ngay cả trong các thử nghiệm đo điểm. Điển hình là trong FFMPEG, ở cùng một số lõi và xung nhịp, A12 cho hiệu năng NEON cao hơn tới 48%.

Hiệu suất vận hành – có xứng với kì vọng?

ARM đang có khả năng tuỳ biến sản phẩm một cách linh hoạt với

hàng loạt vi kiến trúc phong phú.

ARM Cortex A9 được giới thiệu lần đầu tới các đối tác vào năm 2009 sau một vài năm phát triển. Tuy nhiên, kể từ thời điểm đó mẫu chip này bắt đầu chu trình thiết kế, thị trường điện thoại thông minh đã có những biến động rất lớn. Nhiều nhận định vốn đúng trong giai đoạn phát triển của Cortex A9 đã không còn phù hợp. Số lượng mã NEON/FP được sử dụng trên nền tảng di động, bộ nhớ với tần số truy xuất ngày càng cao và yêu cầu hiệu năng ngày càng lớn đã làm A9 nhanh chóng lộ rõ cá yếu điểm của mình. Những vấn đề này đều được ARM hướng tới khắc phục trong thế hệ A12 mới.

Bên cạnh đó, mặc dù ARM cho biết Cortex A9 là thiết kế phi trật tự, trên thực tế, nó hỗ trợ việc thực thi số nguyên ở dạng phi trật tự với dấu chấm động và hoạt động bộ nhớ theo dạng trật tự. Trong khi đó Cortex A12 có gần như toàn bộ các thành phần đều ở dạng thiết kế phi trật tự. Kèm theo đó cũng là sự cải tiến đáng kể trong mọi chi tiết thiết kế. Chính nhờ điều này, dù Cortex A9 vẫn có khả năng nâng cao hơn nữa xung nhịp vận hành – đặc biệt là khi quy trình sản xuất chuyển qua 28nm hoặc hơn thế nữa, Cortex A12 sẽ vẫn có mức hiệu năng vận hành tốt hơn cùng khả năng sử dụng năng lượng hiệu quả hơn đáng kể. Thậm chí, nếu ở cùng một xung nhịp, ARM tự tin rằng Cortex A12 sẽ nhanh hơn tới 40% so với A9. Hiệu suất sử dụng năng lượng và tác động khu vực cũng tốt hơn rất nhiều. Trên lý thuyết, ở cùng một quy trình sản xuất như A9, thiết kế của A12 sẽ cho hiệu suất tiêu thụ điện tốt hơn (trường hợp tối thiểu là ngang bằng). Để làm được điều này, ARM đã mở rộng diện tích đế chip – có thể lên tới hơn 40% so với A9. Ngoài ra, tương tự như việc phát triển hiệu năng của Cortex A15 liên quan mật thiết đến sự phát triển vi kiến trúc của dòng Cortex A9/A12, việc phát triển kích thước đế của A12 cũng sẽ đưa ra nhiều yêu cầu mới (cũng như nâng cao nhu cầu) đối với Cortex A7/A53.

Mô hình kinh doanh độc đáo của ARM đã cho phép họ xác định mục tiêu và tuỳ biến các sáng chế vi chip của mình một cách linh hoạt. Nói cách khác, nếu một trong các lõi có kích thước quá lớn hoặc quá tiêu tốn năng lượng, sẽ luôn có một giải pháp nhỏ gọn và tiết kiệm năng lượng hơn được đưa ra – thường là từ một trong các đối tác sản xuất. Ví dụ điển hình là việc toàn bộ thiết kế của Cortex A12 được hoàn thiện cách đây vài tuần nhưng hiện tại và đã bắt đầu được cung cấp cho các đối tác bản quyền để đưa vào sản phẩm của họ. Như thế, nếu mọi thứ đều suôn sẻ, cộng đồng sẽ chứng kiến sự hiện diện của những chip xử lý sử dụng lõi này trong khoảng 1 năm tới. Tuy nhiên, một số ý kiến dự đoán lại cho rằng các loại điện thoại thông minh hay máy tính bảng với Cortex A12 sẽ xuất hiện nhiều trong giai đoạn cuối 2014 và đầu 2015. Trong bối cảnh đó, vẫn chưa ai có thể khẳng định kiến trúc này có bị lỗi thời theo cách của đàn anh A9 trước đó hay không. Bản thân Qualcomm cũng sẽ có lõi Krait 300 khá phù hợp với môi trường điện thoại di động – điều có thể khiến cho A12 mất bớt tầm quan trọng khi xuất hiện. Nhiều ý kiến phân tích vẫn “an ủi” rằng nếu có mức giá hợp lý, những giải pháp SoC dựa trên Cortex A12 sẽ vẫn có thể hút khách hàng từ Snapdragon 600 và các biến thể của nó. Theo ARM, hiện tại A9 sẽ vẫn là lựa chọn thương mại đáng giá trên thị trường, hãng cũng úp mở về việc một phiên bản Cortex A15 với khả năng tiết kiệm điện tốt hơn sẽ xuất hiện trong một ngày không xa.