Apple M1: Hãy quên CPU đa dụng đi, giờ là thời của chip xử lý đặc dụng chỉ làm 1 nhiệm vụ

Tinhte_CPU1.jpg

Artboard@2x.png

Trên YouTube, tôi thấy có một anh bạn dùng Mac, mới mua một chiếc iMac vào năm ngoái, trang bị max 40GB RAM, giá khoảng 4.000 USD. Anh này sau đó phải há hốc mồm kinh ngạc vì không thể tin nổi lý do vì sao chiếc máy iMac cực đắt của mình lại có hiệu năng không ăn nổi chiếc Mac mini M1, cái máy mà anh chỉ bỏ ra có 700 USD để sở hữu.

Trong nhiều phép thử tương tự ngoài đời thực, chip M1 không chỉ “tiệm cận” khả năng xử lý của những máy Mac trang bị chip Intel, mà còn đánh bại chúng. Rất nhiều người trên toàn thế giới đều phải đưa ra câu hỏi đầy bất ngờ, nhờ đâu mà điều này lại thành hiện thực được? Nếu bạn là một trong số những người đó, có lẽ bạn đã đến đúng chỗ rồi đấy. Ở đây tôi dự định sẽ giải thích một cách dễ hiểu nhất những gì Apple đã làm với chip M1.

Cụ thể hơn, những câu hỏi rất nhiều người đều đưa ra là:
  • Lý do kỹ thuật nào khiến chip M1 nhanh đến như vậy?
  • Liệu Apple có đưa ra những lựa chọn kỹ thuật thật sự rất ít người chọn để đem lại hiệu năng đáng nể của chip M1 không?
  • Intel và AMD liệu có cửa nào để ứng dụng những mánh như Apple đã làm với chip M1 không?

Dĩ nhiên, những câu hỏi này các bạn hoàn toàn có thể đi search Google, nhưng nếu làm điều này, cố gắng đi tìm những cách giải thích cặn kẽ thay vì những lời giải thích trớt quớt như Apple đã làm, các bạn sẽ nhanh chóng chết chìm trong những thuật ngữ phức tạp, như kiểu chip M1 sử dụng những bộ giải mã lệnh rất rộng, thuật toán sắp xếp lại bộ đệm (ROB) với kích thước khổng lồ,… Trừ phi các bạn là những người mê nghiên cứu kiến trúc CPU, rất dễ bị choáng ngợp bởi những thuật ngữ này.
Thật ra trước khi đọc bài này, có lẽ các bạn nên đọc một bài viết trước của tôi với tiêu đề “RISC và CISC có ý nghĩa gì trong năm 2020?” Trong bài đó, tôi giải thích định nghĩa một chip vi xử lý là gì, cũng như những khái niệm quan trọng như là:

  • Kiến trúc tập lệnh – Instruction Set Architecture (ISA)
  • Pipelining – Đường ống dữ liệu kết nối theo chuỗi
  • Kiến trúc tải/lưu trữ dữ liệu
  • So sánh Microcode và Micro-operations

Nhưng nếu không đủ kiên nhẫn đọc lại bài viết đó, thì tôi sẽ viết lại những khái niệm cơ bản để phần nào giải thích dễ hơn cách chip M1 hoạt động.

Chip vi xử lý (CPU) là gì?


Tinhte_CPU2.jpg

Tinhte_CPU2.png

Bình thường, khi nói đến chip do Intel và AMD sản xuất, chúng ta thường chỉ nói đến CPU, hoặc chip vi xử lý. Về cơ bản những chip CPU như thế này lấy hướng dẫn từ bộ nhớ. Sau đó, mỗi lệnh thường được thực hiện theo trình tự trước sau.

Tinhte_CPU3.jpg
Tinhte_CPU4.jpg

Tinhte_CPU3.png
Tinhte_CPU4.png

Ở đây, r1 và r2 là giá trị trong hai thanh ghi tôi mô tả ở trên. Những CPU RISC hiện đại không thể thực hiện tính toán những con số không được đưa vào thanh ghi như thế này. Lấy ví dụ, nó không tính cộng được hai con số lưu ở hai vị trí khác nhau trong RAM. Thay vào đó, nó phải đưa hai con số này từ bộ nhớ RAM vào thanh ghi trong CPU. Đoạn code trên đây làm đúng nhiệm vụ như thế. Nó tải giá trị r1 ở vị trí 150 trên RAM, và giá trị r2 ở vị trí 200 trên RAM vào instruction register. Chỉ khi ấy, phép tính cộng mới được thực hiện.

Bản chất ý tưởng instruction register cũng đã tồn tại từ rất lâu. Lấy ví dụ như chiếc máy tính cơ học trên đây, register cơ học là thứ lưu trữ giá trị số nguyên bạn dùng để tính toán cộng trừ. Đấy cũng chính là thứ tạo ra khái niệm máy tính tiền (cash register). Thanh ghi là nơi bạn “ghi” giá trị số liệu nhập đầu vào.

Nhưng chip M1 không phải chỉ là một con CPU!


Đến đây chúng ta cần làm rõ một điều rất dễ nhầm lẫn. M1 của Apple không phải là CPU. Nó là cả một hệ thống nhiều con chip bán dẫn xử lý, được nhét vào một gói chip silicon kích thước lớn. CPU chỉ là một phần của toàn bộ con chip M1.

Về cơ bản, M1 là cả một chiếc máy tính trong hình dạng của một chip bán dẫn. Bên trong nó có CPU, có bộ xử lý đồ họa (GPU), bộ nhớ, điều khiển đầu vào và đầu ra, cùng rất nhiều thứ khác hợp thành cả một chiếc máy tính. Khái niệm này được gọi là System on a Chip (SoC).

Tinhte_CPU5.jpg

Hôm nay nếu bạn ra tiệm mua một con chip của Intel hay của AMD sản xuất, bạn sẽ chỉ có được một gói chip bán dẫn bên trong đó có nhiều vi xử lý trong một gói, một con chip cầm trên tay. Trong quá khứ máy tính được trang bị nhiều chip vi xử lý độc lập trên bo mạch chủ. Nhưng nhờ tiến bộ công nghệ, con người có thể tạo ra hàng tỷ transistor trên bề mặt một die chip bán dẫn. Điều này dẫn đến việc Intel và AMD bắt đầu đưa nhiều vi xử lý vào chung một chip. Những vi xử lý trong cùng một con chip đó về sau chúng ta gọi là nhân. Một nhân là một chip vi xử lý độc lập, có thể đọc hướng dẫn từ bộ nhớ để thực hiện ra các phép tính.

Trong một thời gian dài, để tăng hiệu năng xử lý cho máy tính, các hãng chỉ có một chiến lược duy nhất là trang bị càng nhiều nhân vi xử lý trong một chip CPU càng tốt. Nhưng hiện tại xu hướng này đang dần bị xóa bỏ, bời một cái tên duy nhất: Apple.

Chiến lược chip xử lý tính toán không đồng nhất của Apple


Thay vì trang bị nhiều nhân CPU đa dụng cho chip M1, Apple đi theo một chiến lược khác. Họ đưa vào SoC những chip bán dẫn chỉ làm được một số tác vụ đặc biệt riêng. Lợi thế của chiến lược này là những chip bán dẫn đặc biệt thường vận hành để xử lý đúng nhiệm vụ nó được giao với hiệu năng tốt hơn, tiết kiệm điện hơn nhiều so với những vi xử lý đa dụng thông thường.

Đây hoàn toàn không phải kiến thức mới mẻ gì. Trong nhiều năm qua, những chip bán dẫn đặc dụng như GPU đã được trang bị cho những card đồ họa của Nvidia và AMD, xử lý những phép tính liên quan tới đồ họa máy tính nhanh hơn nhiều so với CPU đa dụng. Điều mà Apple đã làm không phải mới mẻ, nhưng lại là hướng đi đột phá theo đúng hướng mà Nvidia và AMD đang làm. Thay vì trang bị cho M1 một số lượng nhân vi xử lý đa dụng, M1 được trang bị rất nhiều chip đặc dụng:

  • CPU: “Bộ não” của SoC, đảm nhiệm việc chạy mã lệnh của hệ điều hành cũng như của những ứng dụng anh em đã cài vào máy tính.
  • GPU: Xử lý những nhiệm vụ liên quan đến đồ họa, như hiển thị giao diện của một ứng dụng, hoặc xử lý hình ảnh trong game 2D/3D.
  • Bộ xử lý hình ảnh (ISP): Dùng để tăng tốc cho những tác vụ thông thường phục vụ cho những ứng dụng xử lý hình ảnh.
  • Bộ xử lý tín hiệu số (DSP): Xử lý những phép tính phức tạp hơn, giúp đỡ cho CPU trong quá trình vận hành. Trong những tác vụ cần tới DSP, có thể kể đến việc giải mã những tệp tin nhạc hoặc âm thanh số.
  • Bộ xử lý neural (NPU): Dùng trong những smartphone cao cấp, hoặc trong những hệ thống deep learning nghiên cứu trí thông minh nhân tạo. Ở quy mô tiêu dùng, những tác vụ deep learning có thể kể đến cơ chế nhận diện giọng nói hoặc xử lý ảnh chụp.
  • Bộ giải mã video: Xử lý một cách tiết kiệm điện những tệp tin video và các định dạng video nói chung.
  • Secure Enclave: Xử lý bảo mật.
  • Bộ nhớ chung: Cho phép CPU, GPU cùng tất cả những bộ xử lý kể trên trao đổi dữ liệu nhanh chóng.

Đây chính là lý do vì sao những người làm việc trong ngành sáng tạo, xử lý video và ảnh ọt thông qua MacBook M1 lại thấy được hiệu năng tăng đáng kể. Rất nhiều tác vụ họ làm hàng ngày thông qua máy tính được chip M1 xử lý thông qua những bộ xử lý đặc dụng chỉ được tạo ra để hoàn thành một hoặc những nhiệm vụ đặc thù. Đấy chính là lý do, chiếc Mac Mini M1 có thể xử lý một tệp dữ liệu video lớn một cách dễ dàng, trong khi iMac chạy hết công suất cũng không đuổi kịp được hiệu năng.

Kiến trúc bộ nhớ hợp nhất có gì đáng nói?


UMA - Kiến trúc bộ nhớ hợp nhất của Apple khá khó để hiểu ngay những giây đầu tiên Apple giới thiệu về nó. Để hiểu được kiến trúc này, có lẽ phải nhắc lại lịch sử của ngành điện toán.

Trong một thời gian rất dài, những hệ thống máy tính giá rẻ đều có bộ vi xử lý CPU và bộ xử lý đồ họa GPU nằm trên cùng một die chip bán dẫn. Chúng chậm, rất chậm. Trong quá khứ nếu nói “đồ họa tích hợp”, hẳn các bạn cũng hiểu được phần nào hiệu năng của GPU trang bị trong chiếc máy tính đó. Nhưng GPU tích hợp chậm cũng có lý do cả.

Những vùng khác nhau trong bộ nhớ được dành riêng cho CPU và GPU. Nếu CPU có một khoảng dữ liệu nó muốn GPU sử dụng, CPU sẽ không thể nói rằng “đây, dùng tạm một phần bộ nhớ của CPU đi”. Nó sẽ phải copy hết đống dữ liệu đang nằm ở khu vực bộ nhớ dành riêng cho CPU sang khu vực bộ nhớ dành riêng cho GPU để bộ xử lý đồ họa hoạt động.

Cả CPU lẫn CPU đều không muốn bộ nhớ được xử lý theo cùng một cách. Hãy làm một phép so sánh vui và ngốc nghếch. CPU và GPU giống như hai thực khách vào nhà hàng.

Tinhte_CPU7.jpg

Tinhte_CPU7.png

Cùng lúc, GPU đòi hỏi một lượng dữ liệu khổng lồ để xử lý song song cùng lúc. Bản chất khác biệt như vậy khiến cho việc đặt cả CPU lẫn GPU vào cùng một die chip bán dẫn chưa bao giờ là ý tưởng hay. Khi CPU nhặt từng mẩu dữ liệu ở tốc độ rất cao, thì GPU sẽ bị bỏ đói. Vì thế, ý tưởng trang bị một chip GPU hiệu suất cao vào SoC cũng là một thử thách không nhỏ đối với các hãng. Dù chỉ là một GPU nhỏ bé yếu đuối, nó vẫn đủ sức “tiêu thụ” một lượng lớn dữ liệu trong bộ nhớ.

Vấn đề thứ hai khi trang bị GPU mạnh vào SoC, đó là chip GPU kích thước lớn, tạo ra rất nhiều nhiệt năng, và sẽ không dễ gì trang bị nó vào chung một die bán dẫn cạnh CPU mà không đưa ra được giải pháp tản nhiệt hiệu quả. Những card đồ họa rời thường trông như hình dưới đây: Kích thước đồ sộ, với cả quạt lẫn heatsink. Chúng có cả bộ nhớ riêng rẽ để phục vụ cho chip GPU tham lam trang bị bên trong.

Tinhte_CPU8.jpg

Tinhte_CPU8.png

Đó là lý do vì sao card đồ họa rời lại mạnh đến vậy. Nhưng nó cũng có điểm yếu, cũng có “gót chân Achilles” riêng: Mỗi lần muốn lấy dữ liệu từ bộ nhớ dành riêng cho CPU, linh kiện PC phải làm điều này thông qua những con đường lát gạch đồng trên bo mạch chủ của máy tính, gọi là PCIe lane. Thử tưởng tượng uống nước bằng một cái ống hút rất nhỏ, hút thì nhanh nhưng chẳng được bao nhiêu.

Điều đó đưa chúng ta đến với kiến trúc Unified Memory Architecture của Apple. UMA cố gắng giải quyết tất cả những vấn đề kể trên, mà không có bất kỳ bất lợi nào liên quan đến giải pháp chia sẻ bộ nhớ giữa CPU và GPU theo kiểu cũ. Để làm được điều này, Apple đã thiết kế lại kiến trúc bộ nhớ theo những hướng sau:

  • Không có khu vực bộ nhớ riêng phục vụ CPU hoặc GPU. Bộ nhớ dùng chung cho cả hai chip xử lý. Cả hai chip đều có thể dùng những khu vực bất kỳ trong chip RAM, vì thế không cần phải copy dữ liệu như trước nữa.
  • Apple sử dụng những chip RAM cho phép điều chuyển lượng dữ liệu khổng lồ trong thời gian cực ngắn. Nói theo kiểu khoa học máy tính thì khả năng đó gọi là độ trễ thấp và băng thông cao. Vì thế nhu cầu trang bị những loại bộ nhớ khác nhau cho CPU và GPU không còn nữa.
  • Apple kiểm soát điện năng GPU sử dụng, vì thế GPU hiệu năng cao vẫn có thể trang bị vào SoC mà không khiến toàn bộ hệ thống quá tải nhiệt.

Tinhte_CPU9.jpg

Tinhte_CPU9.png

Cũng đúng, vì trước kia cũng đã có những hệ thống sử dụng bộ nhớ chung. Nhưng thời đó, khác biệt về nhu cầu sử dụng bộ nhớ giữa CPU và GPU không khác biệt quá lớn như bây giờ. Nvidia cũng từng nói về “bộ nhớ hợp nhất”, nhưng ý tưởng của họ hoàn toàn không giống UMA của Apple. Đối với Nvidia, để tạo ra bộ nhớ hợp nhất, sẽ cần tới cả phần cứng lẫn phần mềm đảm nhiệm tác vụ tự động điều chuyển dữ liệu từ các phân vùng phục vụ cho CPU và GPU qua lại lẫn nhau. Ý tưởng “unified memory” của Nvidia và Apple đều được đưa ra để đạt chung một mục đích, nhưng về mặt bản chất xử lý, chúng khác nhau hoàn toàn.

Tinhte_CPU6.jpg

Tinhte_CPU6.png

Dĩ nhiên, chiến lược của Apple vẫn sẽ phải đánh đổi một vài thứ. Quan trọng hơn cả là, để sử dụng bộ nhớ chung với tốc độ và băng thông cực cao như vậy, Apple sẽ phải tích hợp hoàn toàn bộ nhớ vào SoC, đồng nghĩa với việc anh em sẽ không thể nâng cấp RAM cho máy Mac như trước kia nữa.

Nhưng bù lại, Apple muốn phần nào giảm thiểu tác động của việc không thể nâng cấp RAM bằng cách cho phép chip M1 tương tác với SSD ở tốc độ rất cao, cao tới mức SSD có thể trở thành bộ nhớ cho cả hệ thống máy tính.

Nếu SoC ngon thế, sao Intel và AMD không bắt chước?


Thật ra không riêng gì Apple, nhiều nhà sản xuất chip sử dụng kiến trúc ARM hay x86 trên thế giới cũng đã và đang tối ưu những phần cứng đặc dụng vào chung một die chip bán dẫn. Từ Snapdragon, Exynos cho đến Kirin, tất cả đều có CPU, GPU, ISP, DSP hay NPU kết hợp trong cùng một SoC, nhưng hầu hết đều được trang bị cho smartphone chứ chưa có nhiều sản phẩm đặc thù cho laptop hoặc desktop PC. Về phần AMD, trong nhiều năm qua, họ cũng có những mẫu APU trang bị tích hợp cả CPU lẫn GPU, với nhân GPU hiệu năng cao đủ để chơi game. Đấy cũng là một dạng SoC với nhiều chip xử lý trong cùng một die bán dẫn.

Tinhte_CPU10.jpg

Nhưng có một lý do rất quan trọng khiến cho AMD, Intel hay những hãng khác không làm được điều như Apple. SoC là cả một hệ thống máy tính chỉ trong một con chip bán dẫn. Những sản phẩm như thế trở nên hợp lý hơn trong mắt những nhà sản xuất máy tính, ra mắt sản phẩm trọn gói, như PC của Dell, HP, hay chính bản thân Apple. Nếu mô hình kinh doanh đang chỉ dừng lại ở việc sản xuất và bán chip xử lý, thì việc chuyển sang sản xuất cả hệ thống máy tính hoàn chỉnh sẽ không mấy hợp lý.

Trong khi đó đối với ARM, đó hoàn toàn không phải vấn đề. Những hãng máy tính hoàn toàn có thể mua bản quyền thiết kế kiến trúc chip bán dẫn của ARM, rồi mua tài sản trí tuệ để sản xuất những chip khác, để đưa vào SoC của họ bất kỳ chip đặc dụng nào họ muốn, như Apple đã làm với M1. Tiếp theo, họ giao hợp đồng cho những đơn vị fab chip bán dẫn như TSMC, Samsung hay GlobalFoundries, cũng là những bên đang sản xuất chip cho Apple, AMD hay Nvidia.

Tinhte_CPU11.jpg

Tinhte_CPU11.png

Quay trở lại với mô hình kinh doanh của Intel và AMD. Họ làm giàu bằng cách bán ra thị trường những chip CPU đa dụng, mua về phải mua thêm bo mạch chủ để lắp vào, rồi đến RAM và SSD hay thậm chí cả GPU rời để khởi động máy tính. Đấy cũng là giải pháp nhiều hãng máy tính đang triển khai, mua linh kiện từ nhiều nguồn rồi ráp chúng thành một hệ thống hoàn chỉnh để bán ra thị trường.

Nhưng chúng ta có lẽ đang rời xa thế giới PC hoạt động theo mô hình như vậy. Trong thế giới mới của những SoC, bạn sẽ không còn cần phải tìm từng linh kiện khác nhau từ các hãng khác nhau nữa. Thay vào đó, các hãng sẽ “lắp ráp” các tài sản trí tuệ của các đơn vị khác mà họ đã mua. Họ sẽ mua thiết kế GPU, CPU, modem, IO controller và những thứ khác để tự tạo ra một SoC in-house. Rồi sau đó chỉ cần tìm foundry để sản xuất ra con chip đps.

Đến đây chúng ta sẽ có một vấn đề lớn, vì Intel, AMD hay Nvidia đều sẽ không chịu bán tài sản trí tuệ cho Dell hay HP để cho phép họ tự sản xuất SoC trang bị trong các hệ thống desktop hay laptop đóng mác Dell và HP.

Sẽ đến lúc, Intel hay AMD sẽ đơn giản là bắt đầu thiết kế, sản xuất và bán ra thị trường những SoC hoàn thiện. Nhưng bên trong những SoC đó liệu sẽ có những linh kiện và chip đặc dụng nào? Mỗi nhà sản xuất PC đều có ý tưởng và nhu cầu riêng về những linh kiện bên trong một SoC. Sẽ tới lúc Intel và AMD xuất hiện ra những bất đồng với không chỉ các nhà sản xuất PC mà còn với cả Microsoft, về việc trong một SoC cần có những bộ phận nào cấu thành.

Còn đối với Apple, chuyện rất đơn giản. Họ chỉ cần kiểm soát toàn bộ hệ thống, từ phần cứng tới phần mềm. Lấy ví dụ họ đem đến cho các lập trình viên thư viện Core ML để phát triển những hệ thống machine learning. CoreML chạy trên CPU, hay trên chip xử lý neural, điều đó các dev không cần quan tâm.

Thử thách cơ bản khi tạo ra một CPU hiệu năng cao


Một trong những lý do khiến CPU không có hiệu năng cao ở tất cả mọi tác vụ khác nhau là vì cơ chế tính toán không đồng nhất (heterogeneous computing). Nhưng đó không phải nguyên nhân duy nhất. Bốn nhân CPU hiệu năng cao trong chip M1, tên là Firestorm, thực sự có tốc độ đáng nể. Con số benchmark những máy Mac trang bị chip M1 khác biệt rất lớn so với những nhân CPU ARM ra mắt trước đó, vốn rất yếu nếu so sánh với CPU của Intel hay AMD.

Firestorm, trái lại, đánh bại hầu hết những CPU Intel và suýt chút nữa đánh bại luôn cả CPU mạnh nhất của AMD Ryzen. Trước khi nói về lý do vì sao Firestorm lại mạnh đến như vậy, chúng ta phải hiểu được giải pháp cơ bản để giúp một nhân vi xử lý tăng hiệu năng làm việc.

Về cơ bản, để tạo ra một nhân CPU mạnh, các nhà sản xuất phải cùng lúc hoàn thành hai chiến lược:

Tinhte_CPU12.jpg

Tinhte_CPU12.png

Hồi những năm 80 của thế kỷ trước, chuyện này thì đơn giản. Chỉ cần tăng xung nhịp và chuỗi lệnh sẽ hoàn thành nhanh hơn. Mỗi chu kỳ xung nhịp là khoảng thời gian máy tính hoàn thành một tác vụ. Nhưng “tác vụ” này có thể lớn, cũng có thể nhỏ. Vì thế một instruction có thể cần nhiều chu kỳ để hoàn thành, vì nó được cấu thành từ nhiều tác vụ nhỏ. Nhưng đến giờ, tăng xung nhịp gần như không còn khả thi nữa. Đấy là lúc, ai cũng lên tiếng nói rằng “định luật Moore đã chết" như trong vài năm nay.

Tinhte_CPU13.jpg

Và giải pháp để tăng hiệu năng CPU giờ chỉ còn một cách, đó là làm cách nào xử lý cùng lúc càng nhiều instruction càng tốt.

Chọn CPU Multi-core hay Out-of-Order bây giờ?


Có hai hướng tiếp cận vấn đề, để tăng tốc xử lý một instruction cho CPU. Một là trang bị thêm nhiều nhân CPU. Trên phương diện người lập trình, điều này đồng nghĩa với việc thêm vào nhiều luồng xử lý phục vụ song song nhiều tác vụ cùng lúc. Mỗi nhân CPU là một luồng phần cứng xử lý. Để cho dễ hiểu, những “luồng” này có thể coi là quá trình xử lý một tác vụ cụ thể. Với CPU 2 nhân, nó có thể xử lý đồng thời song song hai tác vụ cùng lúc (2 luồng). Hai tác vụ đó có thể coi là hai “chương trình” độc lập lưu trong bộ nhớ, hoặc nó có thể là một chương trình được xử lý hai lần. Mỗi luồng xử lý cần kiểm soát dữ liệu, ví dụ như chuỗi lệnh hướng dẫn cho luồng xử lý đang ở đâu trong bộ nhớ. Mỗi luồng cũng sẽ cần chỗ lưu dữ liệu tạm thời một cách độc lập.

Trên nguyên tắc, một vi xử lý có thể chỉ cần một nhân và chạy nhiều luồng xử lý. Trong trường hợp này, nhân xử lý sẽ tạm thời ngừng làm việc một luồng tác vụ, lưu tạm kết quả dang dở trước khi chuyển sang luồng tác vụ khác, xong thì quay lại làm nốt tác vụ đang dở. Xử lý theo kiểu này thực tế không khiến hiệu năng tăng lên, và chỉ được sử dụng khi một luồng xử lý thường xuyên bị ngừng lại để chờ lệnh từ người dùng, chờ dữ liệu trong trường hợp kết nối tốc độ chậm, v.v… Đây là luồng xử lý phần mềm. Luồng xử lý phần cứng đồng nghĩa với việc bạn sẽ có thêm những phần cứng vật lý, như thêm nhân xử lý để tăng tốc độ làm việc với máy tính.

Vấn đề với nhiều luồng xử lý phần cứng là lập trình viên sẽ phải viết phần mềm để tối ưu khả năng xử lý của nhiều nhân CPU cùng lúc. Một vài tác vụ như phần mềm máy chủ rất dễ viết theo kiểu này. Những tác vụ xử lý qua máy chủ gần như độc lập với nhau, khi ấy CPU máy chủ càng nhiều nhân thì càng xử lý được cho nhiều người dùng. Ấy vậy nên những chiếc như Xeon hay Threadripper là lựa chọn tuyệt vời cho những dịch vụ điện toán đám mây.

Tinhte_CPU14.jpg

Tinhte_CPU14.png

Dựa trên kiến trúc ARM, các nhà sản xuất chip bán dẫn cũng có những mẫu CPU điên rồ, như Altra Max của Ampere với 128 nhân xử lý. Nó được phát triển chỉ để phục vụ cho ứng dụng điện toán đám mây. Đối với ngành này, hiệu năng đơn nhân điên rồ không quan trọng bằng tỷ lệ giữa số luồng xử lý song song và điện năng tiêu thụ, để phục vụ càng nhiều người dùng càng tốt.

Apple, trái lại, nằm ở thái cực hoàn toàn ngược lại so với những nhà sản xuất CPU phục vụ máy chủ đám mây. Apple sản xuất thiết bị tiêu dùng cho người dùng đầu cuối. Nhiều nhân, rất nhiều nhân xử lý không phải lợi thế quan trọng nhất. Thiết bị của họ dùng để xử lý hình ảnh, video, phát triển phần mềm… Họ muốn máy tính của mình sở hữu những hình họa và chi tiết đồ họa đẹp nhất có thể.

Thêm nữa, phần mềm máy tính cá nhân thường không được tối ưu cho hàng chục, hàng trăm nhân xử lý đồng thời. Một trong những tác vụ nặng nhất đối với máy tính hiện tại là chơi game, nó có thể tối ưu tốt cho những CPU 8 nhân, nhưng 128 nhân thì chưa chắc, dùng CPU ấy chơi game quá phí. Đối với máy tính cá nhân, các bạn sẽ cần những nhân CPU mạnh hơn, nhưng số lượng nhân ít hơn máy chủ nhiều.

Điều thú vị là, xử lý tác vụ theo kiểu không có trật tự (Out-of-Order - OoO) là một cách để CPU xử lý nhiều lệnh hơn cùng một lúc, mà không cần đến nhiều luồng xử lý. Các lập trình viên cũng không cần viết phần mềm để tự tối ưu cho cách xử lý OoO. Nhìn từ góc nhìn của lập trình viên, chỉ cần hiểu đơn giản là mỗi nhân CPU chạy nhanh hơn mà thôi.

Tinhte_CPU15.jpg

Tinhte_CPU15.png

Để hiểu hơn về Out-of-Order, cũng cần hiểu vài thứ về cách bộ nhớ máy tính vận hành. Xin dữ liệu từ một phân vùng cụ thể trong bộ nhớ rất chậm. Nhưng vấn đề là xin 1 byte dữ liệu từ RAM vào CPU, thì thời gian trả về và độ trễ cũng nhanh y hệt như khi xin 128 bytes dữ liệu. Chúng được gửi qua lại CPU và RAM thông qua một thứ gọi là databus, một đường hầm giữa bộ nhớ RAM và những phần khác nhau trong một chip CPU, nơi dữ liệu được gửi qua gửi lại. Trên thực tế thì “đường hầm” này chỉ là những đường mạ đồng chằng chịt trên bo mạch chủ của anh em, có khả năng dẫn điện. Databus càng “rộng”, thì lượng dữ liệu gửi được cùng lúc cũng càng nhiều.

CPU khi ấy nhận được một loạt những instruction để xử lý cùng lúc. Nhưng chúng được lập trình để thực hiện lần lượt. Còn những vi xử lý hiện đại thì có một khả năng gọi là xử lý không theo trình tự, Out-of-Order.

Điều này đồng nghĩa với việc các CPU có thể phân tích một lượng instruction rất nhanh và định hình xem phép tính nào liên quan tới nhau. Ví dụ:

Tinhte_CPU16.jpg

Tinhte_CPU16.png

Phép nhân xử lý luôn chậm hơn phép cộng. Hãy cứ lấy ví dụ phép nhân cần nhiều chu kỳ xung nhịp để hoàn thành. Phép tính thứ hai tính giá trị r4 sẽ phải chờ đợi vì nó cần kết quả r1 của phép tính thứ nhất. Tuy nhiên phép tính thứ 3 không phụ thuộc vào cả hai phép tính trước đó. Vì thế với cơ chế Out-of-Order, CPU sẽ có thể bắt đầu tính toán phép tính thứ 3, tìm ra giá trị r6 cùng lúc với phép tính đầu tiên.

Lấy ví dụ cho vui vậy thôi, chứ CPU hiện đại giờ có thể thực hiện hàng tỷ tỷ phép tính như thế mỗi giây, mỗi chu kỳ xung nhịp có thể xử lý hàng trăm hàng nghìn instruction lần lượt, và cũng biết tương quan giữa từng phép tính xem instruction nào liên quan tới nhau. Lấy ví dụ, lệnh add r4, r1, 5 phụ thuộc vào dữ liệu r1, tạo ra từ phép tính mul r1, r2, r3. Lập trình viên có thể đưa hai phép tính này vào một bảng tính để CPU làm việc từ từ.

Nhiều phép tính có thể hoàn thành sớm nhưng không thể lấy kết quả làm giá trị chính thức. Chúng được đưa xuống tầng dưới trong chuỗi instruction CPU phải xử lý. Vi xử lý sẽ cứ tiếp tục thực hiện lần lượt những tác vụ theo thứ tự, tác vụ nào chưa đạt giá trị thỏa mãn thì cho xuống dưới, nhường chỗ cho tác vụ mới làm việc, tất cả chỉ hoàn thành khi tất cả các phép tính đều được giải quyết xong.

Giải thích thì ngắn gọn, nhưng đó là nền tảng của cơ chế xử lý Out-of-Order. Về cơ bản thành quả sẽ trông giống như CPU chỉ cần 1 luồng xử lý tất cả mọi công việc, còn đối với lập trình viên, Out-of-Order cho phép họ ứng dụng những tác vụ song song xử lý rất nhanh.

Và cũng chính nhờ đó, nhân CPU Firestorm trong chip M1 của Apple mới có được hiệu năng đáng nể như vậy. Về cơ bản nó khỏe hơn gần như tất cả những sản phẩm tiêu dùng từ phía Intel và AMD, không cần bàn đến những đối thủ khác trên thị trường chip bán dẫn.

Vì sao khả năng xử lý Out-of-Order của CPU Intel và AMD kém hơn Apple M1?


Ở trên, phần giải thích cách mà giải pháp Out-of-Order execution hoạt động, vẫn thiếu vài điều quan trọng cần đề cập để giải thích thêm cho sức mạnh của CPU Firestorm trong chip M1 của Apple. Những lý do đó có thể giải thích vì sao Intel và AMD khó có thể vượt qua được hiệu năng của chip M1.

Có một khái niệm gọi là Reorder Buffer (Bộ nhớ đệm sắp xếp lại - ROB), và phần này không chứa những hướng dẫn xử lý tác vụ thông thường. Nó không phải thứ CPU lấy từ bộ nhớ để xử lý. Chúng là những instruction bên trong kiến trúc tập lệnh (ISA - Instruction Set Architecture). Đó chính là những kiến trúc mà chúng ta gọi tên là x86, là ARM hay PowerPC.

Tuy nhiên, CPU vận hành dựa trên một bộ kiến trúc tập lệnh hoàn toàn độc lập, được gọi là micro-operations (micro-ops hoặc μops). ROB chứa đầy những tập lệnh nhỏ như vậy. Các tập lệnh này rất rộng, và có thể chứa nhiều dạng siêu thông tin khác nhau. Bạn sẽ không thể thêm những dạng thông tin như thế vào kiến trúc tập lệnh ARM hay x86, vì một trong vài hậu quả dưới đây sẽ xảy ra:

  • Nó có thể khiến chương trình nhị phân phình ra đáng kể
  • Để lộ chi tiết về cách CPU vận hành, liệu nó có hỗ trợ Out-of-Order hay không, có cho phép đổi tên thanh ghi hay không, hay nhiều chi tiết khác.
  • Rất nhiều dạng siêu thông tin chỉ có giá trị trong ngữ cảnh xử lý ở đúng thời điểm đó.

Dễ hiểu hơn, ARM, x86 hay PowerPC giống như những bộ API công khai, còn micro-ops là bộ API riêng tư để các kiến trúc tập lệnh kể trên vận hành hiệu quả. Thêm nữa, micro-ops cũng cho phép CPU vận hành dễ dàng hơn, vì mỗi operation trong đó chỉ thực hiện một tác vụ đơn giản. Những tập lệnh ISA thông thường có thể trở nên vô cùng phức tạp, khiến nhiều thứ ngoài ý muốn xảy ra, vì thế chúng được dịch thành nhiều micro-ops nhỏ khác nhau.

Đối với những CPU CISC, gần như không có cách nào khác ngoài việc phải làm việc với những micro-ops đó, nếu không những tập lệnh phức tạp của kiến trúc CISC sẽ tạo ra đường hầm cố định cho các tác vụ, khiến việc xử lý thông qua giải pháp Out-of-Order gần như bất khả thi. Trong khi đó, những CPU kiến trúc RISC lại có lựa chọn riêng. Ví dụ những CPU ARM nhỏ gần như không dùng micro-ops, và cũng đồng nghĩa với việc không thể ứng dụng Out-of-Order.

Những dòng khó hiểu ở trên thì có ý nghĩa gì khi so sánh Intel và AMD với Apple M1?

Lý do rất đơn giản, hiệu năng của CPU nhanh đến đâu, hoàn toàn phụ thuộc vào tốc độ lấp đầy bộ nhớ đệm ROB, và lấp đầy chúng với bao nhiêu lệnh tính toán micro-ops. ROB ghi dữ liệu càng nhanh, càng nhiều, thì cơ hội để CPU “nhặt” ra những tập lệnh để xử lý song song cũng cao hơn, dẫn đến một hệ quả đơn giản mà ai cũng muốn: Hiệu năng xử lý tăng.

Tinhte_CPU17.jpg

Đó cũng là điểm khác biệt lớn giữa Apple M1 so với bất kỳ CPU nào của Intel và AMD. Những con chip CPU khủng nhất của Intel và AMD cùng lắm cũng chỉ có 4 decoder, nghĩa là cùng lúc có thể dịch 4 tập lệnh trở thành micro-ops để CPU xử lý. Còn M1 thì có đến 8 decoder, còn kích thước ROB thì lớn hơn đến 3 lần. Hiểu đơn giản, bạn có thể lưu gấp 3 lần số tập lệnh để CPU làm việc. Không có một con chip xử lý nào trên thị trường hiện giờ có ngần ấy decoder cả.

Vậy tại sao Intel và AMD không cho thêm decoder dịch tập lệnh vào CPU của họ?

Đây là lúc chúng ta được thấy kiến trúc RISC trỗi dậy trả thù CISC, với nhân CPU Firestorm trong SoC M1. Một tập lệnh x86 có thể dài từ 1 đến 15 bytes. Trên kiến trúc RISC, kích thước tập lệnh là cố định. Khi ấy, bẻ gãy một lượng dữ liệu thành những tập lệnh và gửi vào 8 “máy dịch” trong CPU của chip M1 cùng lúc trở nên đơn giản vô cùng, khi mỗi tập lệnh đều có độ dài như nhau. Tuy nhiên trên CPU x86, decoder hoàn toàn không biết tập lệnh kế tiếp bắt đầu từ đâu. Nó phải phân tích cụ thể từng tập lệnh để biết chúng dài cỡ nào.

CPU của Intel và AMD xử lý bước này đúng kiểu “bạo lực”, khi chúng cố gắng dịch tập lệnh ở mọi điểm khởi đầu có thể. Điều đó đồng nghĩa với khả năng phải đối mặt với rất nhiều lần CPU đoán sai, hay những lỗi cơ bản khiến quá trình decode instruction phải bỏ đi làm lại. Điều này tạo ra giai đoạn dịch tập lệnh vô cùng phức tạp và rối như canh hẹ, cùng lúc rất khó đưa nhiều decoder vào CPU để song song xử lý. Còn đối với Apple, những điều đó không xảy ra, nên cứ thêm decoder vào CPU là làm việc mặc định nhanh hơn.

Thực tế đối với kiến trúc x86, thêm quá 4 decoder tạo ra quá nhiều vấn đề phiền toái, đến mức theo chính lời của AMD, con số 4 là lượng decoder tối đa có thể trang bị trong một CPU. Đó chính là một phần lý do giúp cho Firestorm trong M1 xử lý gấp đôi lượng tập lệnh cùng lúc so với CPU Intel và AMD vận hành ở cùng xung nhịp.

Sẽ có nguời cho rằng, tập lệnh của kiến trúc CISC được dịch ra làm nhiều micro-ops, mật độ dày hơn nên giải mã một tập lệnh x86 cũng giống như giải mã 2 tập lệnh ARM. Vấn đề là ngoài đời thực, “lý thuyết” kiểu này không đúng lắm. Những dòng lệnh x86 được tối ưu tốt hiếm khi dùng những tập lệnh CISC phức tạp, mà thậm chí đôi khi chúng đơn giản hệt như RISC. Dù vậy, CPU của Intel lẫn AMD đều phải được thiết kế decoder để xử lý những tập lệnh phức tạp và dài nhất, ở ngưỡng 15 bytes, dù không phải tập lệnh nào cũng phức tạp như vậy. Chính vì cái chuỗi nguyên nhân hệ quả như vậy, CPU của Intel và AMD không được trang bị quá 4 decoder để vận hành.

Nhưng mà Zen 3 của AMD hiện giờ vẫn nhanh hơn Firestorm của M1 đúng không?

Đúng, nhưng để đổi lại hiệu năng nhanh hơn chip M1, nhân CPU của chip kiến trúc Zen 3 từ AMD phải vận hành ở xung nhịp 5 GHz, còn Firestorm trong M1 chỉ chạy ở xung nhịp 3.2 GHz mà thôi. Xung nhịp nhanh hơn 60%, nhưng hiệu năng benchmark của CPU Ryzen kiến trúc Zen 3 chỉ nhỉnh hơn SoC M1 một chút.

Vậy tại sao Apple không tăng luôn xung nhịp của 4 nhân CPU Firestorm để đánh bại AMD luôn cho tiện? Vì nếu làm thế, hệ thống tản nhiệt sẽ phải gánh nguồn nhiệt năng khổng lồ mà con chip tạo ra. Đấy cũng chính là một phần lợi thế mà Apple không ngần ngại khoe khoang. Máy tính của Apple, không như những cỗ máy trang bị CPU Intel hay AMD, gần như không cần quạt tản nhiệt. Nếu muốn hiệu năng tăng lên, Apple sẽ tăng lượng nhân CPU hiệu năng cao, thay vì nâng xung nhịp của chip. Nhờ đó, điện năng sử dụng sẽ được giữ ở mức lý tưởng, trong khi hiệu năng thì vẫn cứ tăng.

Tương lai của AMD và Intel


Có vẻ như, cả Intel lẫn AMD đều đang tự đẩy họ vào lối cụt ở hai khía cạnh:

Tinhte_CPU19.jpg

Tinhte_CPU19.png

Dĩ nhiên điều này không đồng nghĩa với việc “trò chơi kết thúc” với Intel hay AMD. Họ dĩ nhiên vẫn có thể đẩy xung nhịp lên cao hơn nữa, làm mát CPU tốt hơn, trang bị nhiều nhân hơn, tăng bộ nhớ đệm cho CPU, v.v… Nhưng cả hai cái tên này đều đang gặp bất lợi. Intel thì đang ở tình thế tồi tệ hơn, khi nhân CPU họ tạo ra đã không đọ lại được Firestorm trong chip M1, đã thế GPU lại chưa đủ mạnh để trang bị cho một hệ thống SoC đòi hỏi hiệu năng cao.

Vấn đề của việc trang bị nhiều nhân vi xử lý trong một con chip CPU là đối với những tác vụ thông thường của người dùng đầu cuối, lợi ích sẽ giảm dần khi có quá nhiều nhân, không bù lại được so với chi phí bỏ ra. Dĩ nhiên những chip 64 hay 128 nhân vẫn quá tuyệt cho mục đích vận hành máy chủ đám mây. Nhưng cùng lúc, những tập đoàn như Amazon hay Ampere cũng đang tấn công mô hình kinh doanh của Intel với những CPU quái vật trang bị 128 nhân.

Tinhte_CPU18.jpg

May mắn thay cho cả AMD lẫn Intel, Apple chỉ sản xuất chip M1 phục vụ cho nhu cầu “tự sản tự tiêu”, không bán nó ra thị trường. Vì thế thị trường PC về cơ bản vẫn sẽ phải chung sống với những sản phẩm AMD và Intel ra mắt hàng năm. Sẽ có người dùng PC nhảy tàu sang Mac, nhưng quá trình đó sẽ diễn ra rất chậm. Người dùng sẽ không đành lòng từ bỏ một nền tảng mà họ đã đầu tư quá nhiều tiền để đổi sang một nền tảng khác.

Nhưng đối với những người làm việc chuyên nghiệp, có tiền để đầu tư, và bị gắn bó quá mật thiết vào một trong hai nền tảng PC và Mac, họ sẽ có thể chọn giải pháp Apple nhiều hơn trong tương lai, từ đó giúp Apple tăng thị phần người dùng chuyên nghiệp hoặc thiết bị cao cấp, và dần dà là cả thị trường PC nói chung.

Theo medium/Erik Engheim

Deeptalk là dạng bài phân tích sâu, nội dung chất lượng với đồ họa đẹp, coi sướng con mắt. Hình ảnh trong bài Deeptalk được mở rộng ra tối đa để bạn có thể chiêm ngưỡng và đón nhận thông tin theo cách hoàn toàn mới. Hãy pha một ly cà phê thật ngon, vừa nhâm nhi vừa đọc bài Deeptalk nhé, sẽ phê lắm đó!

224 bình luận
Apple đi sau mà đẳng cấp quá 😍
@Dollarssssss BIgsur là bản quyền nó giống ios ko phải ai mún là cài được bạn ơi. hackintosh thì cũng tùy cấu hình chứ ko fai máy nào cũng cài dc. haizz
Cái máy tính mac hay iphone. đâu chỉ riêng phần cứng cốt lõi là cái cpu hay ram gì đó đâu. Nó còn rất nhiều phần cứng đặc thủ mà trên sp apple mới có. nên tất nhiên mac hay ios mới là tốt nhất cho nó 😁
@vankhoadesign Àh ý mình là thường ng ta làm j làm, cũng phải theo xu hướng của mn để tiện cho cv của mình. Nếu xảy ra như mình nói thì mình tin apple cũng sẽ "open" ra 1 chút thôi. Bây giờ nó cũng đã ra những sp tiệm cận vs ng dùng phổ thông rồi mà.
bạn cứ hay nói thừa... open gì nó làm ra cho máy mac book mà :d ko lẽ giờ open ra để bán licence macos cài trên máy win à? Như vậy lại bị phân mảnh nhiều phần cứng lại kém ổn định, điều mà apple ko bao h làm :3
@p700i chạy win thì mua máy win mà dùng, đú mac làm gì mà quan trọng, ba cái thứ thừa thãi chẳng quan trọng =))
Ái chà, chuyên mục magazine của tinhte à, tuyệt vời, khen trước rồi đọc bài
@Duy Luân Bài này ai viết/dịch vậy bác, ko thấy ghi tên chủ thớt
Nè bạn
image.jpg
canon2004
ĐẠI BÀNG
8 tháng
@Duy Luân dịch tốt quá @Duy Luân =))
Ki Em
ĐẠI BÀNG
7 tháng
@Vamp1re đâu cứ phải giỏi tiếng Anh là dịch được ngay. Phải đòi hỏi kiến thức công nghệ vững vàng trước tiên
Tôi phục tôi quá. Đọc wall of texts
@bustalyme Tôi quên kèo cafe rồi T_T
@P.W Không sao tôi cũng quên. Make up cuối tuần này đi
@bustalyme Cuối tuần này make up 1 buổi đi @P.W
Tony08
ĐẠI BÀNG
8 tháng
Bác nào dùng Mac Air M1 rồi cho em hỏi có thể tải sang màn 4k được không ? Nhà có sẵn màn 4k rồi mà còn lo mua về không xuất được 4k thì chán lăm.
@Tony08 Được chứ, màn 4K thì mấy con Mac đã xài được khá ngon từ lâu rồi bác 😁
Vamp1re
ĐẠI BÀNG
8 tháng
@Tony08 xuất đc. nhưng đc duy nhất 1 màn đối với M1 (air, Pro) còn nếu bác xuất 2 màn thì phải M1 Mac Mini
Tony08
ĐẠI BÀNG
8 tháng
@Duy Luân Yep, hôm bữa nghe bác nào nói M1 xuất 2k nên hoang mang thôi. Nếu chắc chắn xuất được 4k thì an tâm mua rồi :D
@Tony08 8K mới bị khựng thôi bác chứ 4K vô tư
mokuniu
ĐẠI BÀNG
7 tháng
@Duy Luân mình cắm macbook pro ra màn hình ngoài, mọi thứ đều oke, nhưng khi gập máy lại thì ko sử dụng đc loa của macbook, phải mở ra gập lại thì loa mới lên.
Ad cho mình hỏi là có cách nào để xử lý vấn đề này ko.
ơ chuẩn bị tẩu hoả má nó rồi
ufdb
CAO CẤP
8 tháng
Nôm na M1 nó là cái iMac (all-in-one) ở cấp độ vi xử lý. Gói hết CPU, GPU, RAM, bảo mật,... vào làm 1.
Thế nên có muốn nâng cấp thứ gì bên trong nó thì chỉ có Apple làm được (ở các chip M thế hệ tiếp theo), người dùng ko thể tự làm được như nâng cấp ram, gpu, cpu ở các máy tính thông thường.
sucsong1
TÍCH CỰC
8 tháng
Apple sẵn tiền để R&D chip lên 1 đẳng cấp cao như vậy
Các hãng sản xuất arm khác đầu tư + “học hỏi” mô hình này có thể ép được thị trường chip phát triển mạnh hơn rất nhiều
@SilverWolf501 CPU có 8 core mà programs không hỗ trợ HT thì 😃)
@MustDie có nhiều review hiệu năng rồi, lên coi thì biết k phải PR nhiều như đám ép xi nốt đâu 😆)
tekar
ĐẠI BÀNG
2 tháng
@kkzbanana Bài đang nói ở ứng dụng Desktop Class, còn Server Class thì đòi hỏi khác rồi. Mỗi mô hình tối ưu khác nhau, Bọn Arm mà tối ưu cho Server Class cũng có 1 mớ làm rồi và cũng kinh khiếp rồi, Amazon còn đẩy mạnh cho những tác vụ chạy các dịch vụ cơ bản giá rẻ để tiết kiệm điện năng rồi đó và thực tế chứng minh là Intel và AMD phải cũng nhau nghĩ ra nhưng phương thức đẩy mạnh sức mạnh tính toán của CISC mà không lãng phí silicoin cũng như năng lượng.
tekar
ĐẠI BÀNG
2 tháng
@minh.nguyen.1 Đang tranh cãi sâu về sức mạnh tính toán thực ở 1 nhân đối với các tác vụ desktop class, lại cứ chăm chăm vào các tác vụ đa luồng về bản chất (thậm chí còn chạy kiểu micro services để chẻ nhỏ và song song hết mức có thể) của server class. Vấn đề core-0, AMD cũng từng nếm trải với các hệ Ryzen đầu khi Windows quen với cách số nhân giới hạn.
Macbook air năm nay quá ngon
@Pham Van Duy CA Chờ hàng chính hãng là quất mà chưa thấy tăm hơi đâu cả
@dailyinfo sắp rồi bạn 1/2021 có hàng chính hãng nha
hiểu đơn giản mấy CPU intel, AMD thích hợp cho dữ liệu phi cấu trúc, còn ARM như M1 thì ngược lại, giải thích vòng vo nhứd đầu
Túm lại bài này là chip M nhanh nhưng vẫn chưa đủ mạnh (so với cả 1 nền tảng CPU, GPU, SSD) đúng k. Cứu cánh của AMD, Intel chắc là các pc gaming khi phối hợp các con GPU khủng long, trong khi mà hãng A vẫn dùng 1 con chip M để đương đầu thì khó có thể gánh các game AAA max setting.
@nguyennhut0507 thì tui đang nói tiếp ý của ông thôi, chứ có nói ông sai đâu? ông có vẻ nhạy cảm quá nhỉ.
@nguyennhut0507 đọc định nghĩa từ Banh của bạn bạn mà tui cười đau bụng hiiiiiiiii
@need your care Quê tui sử dụng từ đó nhiều lắm " từ banh nó đồng nghĩa với hư hỏng nhưng hàm ý Hư hại rất cao
hiiii dân sài gòn mình cũng dùng từ này đó bạn, từ này làm tui nhớ lại thập niên 80 - 90, tui hay nghe mọi người hay nói " bánh xe của tao bị nổ banh ta lông rồi "
Mai mắn rành lập trình code assembly hồi đại học, thêm thời gian ngâm cứu SoC nên còn đọc nổi! Nếu không banh cái đầu!
Newkhoavu
ĐẠI BÀNG
8 tháng
@mackiller may quá mình ko bit gì nên lướt xuống đọc comment cho vui thôi, đỡ đau đầu.
@mackiller bác lập trình pic với 8051 hả!
dinhbach
ĐẠI BÀNG
8 tháng
@QuanLyNhaNghi 2 con chip mình từng được lập trình, 8051 thì lỗi thời, pic 16f88 thì có thể lập trình bằng C luôn.
@mackiller e cũng như bác, mới học xong nên cũng thấm. tính ra mod dịch + kiến thức vững
@dinhbach À khi đại học thì code assemly x86, sau này do môi trường làm việc nên ngâm thêm 8051 và Arm - Cortex!
Bài hay quá, đọc mới thấy apple tận dụng tốt mô hình kinh doanh tự chủ hệ sinh thái của họ như thế nào.
Còn thế giới của pc chạy win thì với mô hình kinh doanh hiện tại m nghĩ họ còn kẹt với x86 thêm 5-10 năm nữa là ít
thienchay
ĐẠI BÀNG
8 tháng
Lâu rồi mới đọc được 1 bài viết chất lượng và dễ hiểu như này, mình có tìm đọc thông tin tiếng anh về con M1 này cũng có nhưng ko dễ để hiểu hết ý như đọc tiếng Việt, cảm ơn người viết nhiều, hehe
Chưa đủ nội công để có thể hiểu hết bài viết này. Nhìn chung là nắm dc tương đối cách hoạt động bên trong con M1 này.
Newkhoavu
ĐẠI BÀNG
8 tháng
@hoangphi1650 lướt qua thôi mà cũng phải xem 2 tập jav để cái đầu thư giãn lấy lại thăng bằng.
@Newkhoavu biết đâu xem xong 2 tập... nó lại niểng 1 bên luôn á hiiiiiiii
NHL8
ĐẠI BÀNG
8 tháng
Bài này trị giá 2 tr công dịch đó ạ.
siverrally
ĐẠI BÀNG
8 tháng
Trời. Một bài viết quá hay. Đọc mà mê mẩn luôn.
Cái gì cũng nói dc
@nguyenvietthe quan trọng là làm được mới nói, chứ nói mà ko làm được thì hù được người ta 1 lần thôi!
"Đó là lý do vì sao card đồ họa rời lại mạnh đến vậy. Nhưng nó cũng có điểm yếu, cũng có “gót chân Achilles” riêng: Mỗi lần muốn lấy dữ liệu từ bộ nhớ dành riêng cho CPU, linh kiện PC phải làm điều này thông qua những con đường lát gạch đồng trên bo mạch chủ của máy tính, gọi là PCIe lane."

Càng đọc càng thấy chém và nâng bi, đọc đến đoạn này thì tôi không thèm đọc nữa. Con chip ghẻ đòi đú với lane PCIE.
@minh.nguyen.1 Ví dụ của bạn rất hay và dễ hiểu. Quán ăn nấu nhanh hơn ở nhà nhưng mất thời gian đi đường. Nhưng ở nhà bạn chỉ nấu được các món đơn giản phục vụ số người ăn ít. Quán ăn thì khác, họ có thể nấu gần như tất cả các món và phục vụ cả đống người một lúc.

PCIE cũng vậy, nó là con đường để kết nối cpu và gpu. Soc thì tích hợp sẵn luôn nên thời gian trao đổi ít hơn nhưng khối lượng công việc trao đổi thì không. Khi người dùng xài tác vụ nặng, đa nhiệm thì các yêu cầu gửi đến gpu nó rất lớn và lúc này làn trên pcie phát huy hiệu quả trong khi soc không thể cân nổi yêu cầu quá nhiều như thế. Đó là lí do họ làm rời cpu và gpu rồi kết nối chúng qua khe pcie mà không hợp nhất cả 2 thành một, để chúng nó chuyên biệt xử lí và đương nhiên sự chuyên môn hóa sẽ làm cho chúng mạnh hơn hẳn soc.
@Strong Đỗ Ok nhà bạn ngay sát quán ăn và bạn gọi 1 suất ăn thì quán nó nấu cái xong luôn nhưng nếu bạn gọi 1 lúc 500 xuất ăn thì cái quán đó nó có nấu kịp không ? soc chỉ đáp ứng được nhu cầu cơ bản thôi, đa nhiệm, yêu cầu nặng thì con soc đó bốc khói chắc.
@Pentanol Sức mạnh, khả năng đa nhiệm là cái mình chưa bàn tới. Mặc dù nói về sức mạnh thuần tuý chúng ta chưa thể nói chắc đc là ai hơn ai.
Cá nhân mình nghĩ rằng làn pcie sinh ra là để phục vụ cho tính module hoá của PC. Khi mà mỗi bên cung cấp 1 loại linh kiện hay cpu riêng biệt để ráp lại thành cái máy tính. Tính module cao thì flexible đấy nhưng nếu mà có khả năng thì mình cá ông lớn nào cũng muốn kiểm soát hết tất cả. Gộp lại làm 1 như apple đang làm. Vấn đề là hiện tại có vẻ như mỗi apple là đủ lực làm việc đó. Dù cho hỏng 1 con chip trong SoC đó thôi là phải thay cả nhưng hiển nhiên là khi chúng đc đặt sát cạnh nhau thì cái đc nhiều hơn cái mất. Nghẽn cổ chai vì lí do băng thông h đã đc giải quyết.
Còn về tính chuyên biệt thì bạn khỏi so sánh khi SoC của apple còn tích hợp nhiều loại chip cho nhiều loại tác vụ hơn bất cứ con chip nào hiện tại. Amd hay Intel mới là con chip hầu như việc gì cũng đến tay.
@Pentanol hơn cả đám in tèo nhà mày rồi còn bảo là chip ghẻ đc cơ à =)) chui vào hang đi 😆
Bài viết phân tích rất công phu. Có nhiều thứ vô cùng cao siêu mà mình sở hữu ko tưởng tượng nổi. Lĩnh vực công nghệ chip xử lý là ngành siêu cấp nhất nhiệm nay rồi. Phải nói Apple họ giỏi thật.
@CuongLam02 Haiz, người ta nghiêng cứu chip lượng tử Qbits là 4 thay vì binary là 2 từ đời nào. Apple chỉ dùng thiết lế ARM mà bác làm như là sắp giúp loài người đi đến bước đột phá mới về kỹ thuật không bằng. Chỉ 1 con chip sức mạnh tầm tb dùng cho các thiết bị dân dựng mà làm như là sắp giải mã được quantum theory rồi. Bình tỉnh bác!
@kkzbanana Mấy con lượng tử khi nào người dùng phổ thông mới rờ đc vậy bác? Tuy ko phải đột phá j nhưng bác có công nhận nó mạnh, mát và tiết kiệm pin hơn 6,9 lần con cùng cấp ko? Có những thứ nhỏ lẻ nhưng làm thay đổi hành vi cả nền văn minh đó bác chứ ko phải cứ cái cao siêu.
Mình không hiểu lắm vì đồ dân dựng thì nó chẳn ảnh hưởng gì hòa bình thế giới, và pt khoa học cả vì nó chỉ là thành quả của khoa học công nghệ mà thôi. Còn nói chip M1 hiệu năng cao hơn chip x86 thì cừng coi lại nha bạn. Đọc bài viết này: https://www.extremetech.com/computing/318020-flaw-current-measurements-x86-versus-apple-m1-performance

Current x86 vs. Apple M1 Performance Measurements Are Flawed - ExtremeTech

There's an intrinsic difference between x86 and ARM CPU designs that makes comparing performance difficult -- and it didn't get noticed in the initial wave of coverage.
extremetech.com

Cuộc chiến ARM với X86 nó được định đoạt cách đây gần nữa thế kỹ rồi bạn. Mọi thứ nó có 1 công dụng riêng. M1 chỉ là 1 hiện tượng mà người dùng không hiểu họ đang thấy cái gì thôi.
@kkzbanana Vấn đề hiệu năng chip M1 mình ko nói nhiều vs bạn vì có rất nhiều bài ss nó vs ae trong nhà nó rồi.
Và cái mình đang nói về hành vi người dùng, ko phải hoà bình j đó nhé.
@CuongLam02 Nếu xét con ryzen 3 3200u trên asus a412 chơi dota 2 cũng được 40 50 fps, pin 2 cell 37whrs dùng được 4 tiếng. Con macbook air pin 3 cell ~49whrs dùng được 8 -10 tiếng thì chỉ nhỉnh hơn gấp rưỡi hoặc gấp đôi thôi 😁
dra.long10
ĐẠI BÀNG
8 tháng
Tiến trình mà con chip M1 xử lý y hệt bài tập trong môn Hệ điều hành mình đang học 😁
  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2021 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: 209 Đường Nam Kỳ Khởi Nghĩa, Phường 7, Quận 3, TP.HCM
  • Số điện thoại: 02862713156
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019