AMD Zen

Tập tin:Zen_microarchitecture.svg|nhỏ|Một minh họa rất đơn giản về vi kiến trúc Zen: một lõi có tổng số 512 KiB của bộ đệm L2.
Zen là tên mã cho một vi kiến trúc bộ xử lý máy tính của AMD và lần đầu tiên được sử dụng với loạt CPU Ryzen của họ vào tháng 2 năm 2017. Hệ thống xem trước dựa trên Zen đầu tiên đã được trình diễn tại E3 2016 và lần đầu tiên chi tiết đáng kể tại một sự kiện được tổ chức cách xa Diễn đàn nhà phát triển Intel 2016. Các CPU dựa trên Zen đầu tiên có tên mã "Summit Ridge" đã có mặt trên thị trường vào đầu tháng 3 năm 2017, bộ xử lý máy chủ Epyc có nguồn gốc Zen được ra mắt vào tháng 6 năm 2017 và APU dựa trên Zen đã đến vào tháng 11 năm 2017.
Zen là một thiết kế tấm sạch khác với kiến trúc Bulldozer lâu đời. Xử lý dựa trên Zen sử dụng một tiến trình FinFET 14 nm, được báo cáo là tiết kiệm năng lượng hơn, và có thể thực hiện nhiều hơn đáng kể số chỉ thị trên mỗi chu kỳ. SMT đã được giới thiệu, cho phép mỗi lõi chạy hai luồng. Hệ thống bộ đệm cũng được thiết kế lại, làm cho bộ đệm L1 write-back. Bộ xử lý Zen sử dụng ba socket khác nhau: chip Ryzen trên máy tính để bàn và di động sử dụng socket AM4, mang đến sự hỗ trợ DDR4; các chip Threadripper dựa trên máy tính để bàn cao cấp Zen hỗ trợ RAM DDR4 bốn kênh và cung cấp 64 làn PCIe 3.0 (so với 24 làn), sử dụng socket TR4; và bộ xử lý máy chủ Epyc cung cấp 128 làn PCI 3.0 và DDR4 kênh bát phân sử dụng socket SP3.
Zen dựa trên thiết kế SoC. Bộ nhớ, bộ điều khiển PCIe, SATA và USB được tích hợp vào cùng chip với lõi xử lý. Điều này có lợi thế về băng thông và sức mạnh, với chi phí phức tạp về chip và diện tích khuôn. Thiết kế SoC này cho phép kiến trúc vi mô Zen mở rộng quy mô từ máy tính xách tay và máy tính mini dạng nhỏ đến máy tính để bàn và máy chủ cao cấp.

**Thiết kế**
Theo AMD, trọng tâm chính của Zen là tăng hiệu năng trên mỗi lõi. Các tính năng mới hoặc được cải tiến bao gồm:- Bộ đệm L1 đã được thay đổi từ  write-through thành write-back, cho phép độ trễ thấp hơn và băng thông cao hơn. - Kiến trúc SMT (đa luồng đồng thời) cho phép hai luồng trên mỗi lõi, xuất phát từ thiết kế CMT (cụm đa luồng) được sử dụng trong kiến trúc Bulldozer trước đó. Đây là một tính năng được cung cấp trước đây trong một số bộ xử lý IBM, Intel và Oracle.- Một khối xây dựng cơ bản cho tất cả các CPU dựa trên Zen là Core Complex (CCX) bao gồm bốn lõi và bộ nhớ cache liên quan của chúng. Bộ xử lý có hơn bốn lõi bao gồm nhiều CCX được kết nối bằng Infinity Fabric.- Bốn ALU, hai AGU/load–store units, và hai đơn vị số thực trên mỗi lõi.- Bộ nhớ cache hoạt động vi mô "lớn" mới được giới thiệu.- Mỗi lõi SMT có thể gửi lên đến sáu micro-ops mỗi chu kỳ (một sự kết hợp của 6 số nguyên micro-ops và 4 số thực micro-ops mỗi chu kỳ).- Gần băng thông L1 và L2 nhanh hơn 2 ×, với tổng băng thông bộ đệm L3 lên tới 5 ×. - Đồng hồ gating. - Nghỉ hưu lớn hơn, tải và lưu trữ hàng đợi. - Cải thiện dự đoán phân nhánh bằng cách sử dụng hệ thống perceptron được băm với Indirect Target Array tương tự như vi kiến trúc Bobcat, thường được so sánh với mạng thần kinh của kỹ sư AMD Mike Clark.- Bộ dự báo nhánh được tách rời từ giai đoạn tìm nạp. - Một công cụ ngăn xếp chuyên dụng để sửa đổi con trỏ ngăn xếp, tương tự như bộ xử lý Intel Haswell và Broadwell.- Di chuyển loại bỏ, một phương pháp làm giảm chuyển động dữ liệu vật lý để giảm tiêu thụ năng lượng. - Hỗ trợ RDSEED, một tập lệnh tạo số ngẫu nhiên phần cứng hiệu suất cao được giới thiệu trong kiến trúc vi mô Broadwell của Intel.- Hỗ trợ các tập lệnh SMAP, SMEP, XSAVEC/XSAVES/XRSTORS, XSAVES, CLFLUSHOPT và CLZERO.- Hỗ trợ AVX2. - Hỗ trợ ADX. - Hỗ trợ SHA. - PTE (mục nhập bảng trang) kết hợp lại, kết hợp 4 bảng trang kiB thành 32kích thước trang kiB. - "Pure Power" (cảm biến giám sát năng lượng chính xác hơn).- Smart Prefetch. - Precision Boost. - eXtended Frequency Range(XFR), một tính năng ép xung tự động giúp tăng tốc độ xung nhịp vượt quá tần số turbo được quảng cáo.
Kiến trúc Zen được xây dựng trên quy trình FinFET 14 nanomet được ký hợp đồng với GlobalFoundries, cho hiệu quả cao hơn so các quy trình với 32 nm và 28 nm của CPU AMD FX và APU AMD trước đó. Dòng CPU Zen "Summit Ridge" sử dụng socket AM4 và có hỗ trợ DDR4 và 95W TDP (công suất thiết kế nhiệt). Mặc dù các lộ trình mới hơn không xác nhận TDP cho các sản phẩm máy tính để bàn, nhưng chúng đề xuất một phạm vi cho các sản phẩm di động năng lượng thấp có tối đa hai lõi Zen từ 5 đến 15W và 15 đến 35W cho các sản phẩm di động định hướng hiệu suất với tối đa bốn lõi Zen.
Mỗi lõi Zen có thể giải mã bốn chỉ thị trong mỗi chu kỳ và bao gồm bộ đệm micro-op cung cấp hai bộ lập lịch, mỗi bộ cho các phân đoạn số nguyên và số thực. Mỗi lõi có hai đơn vị tạo địa chỉ, bốn đơn vị số nguyên và bốn đơn vị dấu phẩy động. Hai trong số các đơn vị dấu phẩy động là các bộ cộng và hai là các bộ cộng nhiều. Tuy nhiên, sử dụng nhiều thao tác thêm có thể ngăn hoạt động thêm đồng thời vào một trong các đơn vị cộng. Ngoài ra còn có những cải tiến trong dự đoán chi nhánh. Kích thước bộ đệm L1 là 64 KiB cho tập lệnh trên mỗi lõi và 32 KiB cho dữ liệu trên mỗi lõi. Bộ đệm L2 có kích thước 512 KiB mỗi lõi và L3 là 1 MB2 MB mỗi lõi. Bộ nhớ cache L3 cung cấp 5× băng thông của các thiết kế AMD trước đó.

**Lịch sử và sự phát triển**
AMD bắt đầu lên kế hoạch cho vi kiến trúc Zen ngay sau khi thuê lại Jim Keller vào tháng 8 năm 2012. AMD chính thức tiết lộ Zen vào năm 2015.
Nhóm phụ trách Zen được lãnh đạo bởi Keller (người đã rời đi vào tháng 9 năm 2015 sau nhiệm kỳ 3 năm) và Ủy viên cấp cao AMD và Kiến trúc sư trưởng Michael Clark.
Zen ban đầu được lên kế hoạch cho năm 2017 theo lõi chị em K12 dựa trên ARM64, nhưng vào Ngày phân tích tài chính 2015 của AMD, người ta đã tiết lộ rằng K12 đã bị trì hoãn ủng hộ thiết kế Zen, để cho phép nó gia nhập thị trường trong khung thời gian năm 2016, với việc phát hành bộ xử lý dựa trên Zen đầu tiên dự kiến vào tháng 10 năm 2016.
Vào tháng 11 năm 2015, một nguồn tin bên trong AMD đã báo cáo rằng các bộ vi xử lý Zen đã được thử nghiệm và "đáp ứng tất cả các kỳ vọng" với "không có tắc nghẽn đáng kể nào được tìm thấy".
Vào tháng 12 năm 2015, có tin đồn rằng Samsung có thể được ký hợp đồng làm nhà chế tạo cho vi xử lý 14 nm FinFET của AMD, bao gồm cả kiến trúc GPU Polaris sắp ra mắt của Zen và AMD. Điều này đã được làm rõ bởi thông báo tháng 7 năm 2016 của AMD rằng các sản phẩm đã được sản xuất thành công trên quy trình 14 nm FinFET của Samsung. AMD tuyên bố Samsung sẽ được sử dụng "nếu cần", lập luận rằng điều này sẽ giảm rủi ro cho AMD bằng cách giảm sự phụ thuộc vào bất kỳ một xưởng đúc nào.

**Ưu điểm so với người tiền nhiệm**

**Quá trình sản xuất**
Bộ xử lý dựa trên Zen sử dụng quy trình 14 nm FinFET. Các bộ xử lý này đang được sản xuất tại GlobalFoundries, mặc dù các báo cáo nêu rõ một số bộ xử lý Zen cũng có thể được sản xuất tại TSMC. Trước Zen, quy mô nhỏ nhất của AMD là 28 nm, được sử dụng bởi các vi cấu trúc Steamler và Excavator. Sự cạnh tranh ngay lập tức, vi kiến trúc Skylake và Kaby Lake của Intel, cũng được chế tạo ở quy trình 14 nm FinFET; mặc dù Intel đã lên kế hoạch bắt đầu phát hành các bộ phận 10 nm vào cuối năm 2017. So với quy trình 14 nm FinFET của Intel, AMD tuyên bố vào tháng 2 năm 2017, lõi Zen sẽ nhỏ hơn 10%. Intel sau đó đã tuyên bố vào tháng 7 năm 2018 rằng bộ xử lý chính 10 nm không nên được mong đợi trước nửa cuối năm 2019.
Đối với các thiết kế giống hệt nhau, các bộ thu nhỏ này sẽ sử dụng ít dòng điện (và công suất) hơn ở cùng tần số (hoặc điện áp). Vì CPU thường bị giới hạn điện năng (thường lên tới ~125W, hoặc ~45W cho thiết bị di động), các bóng bán dẫn nhỏ hơn cho phép công suất thấp hơn ở cùng tần số hoặc tần số cao hơn ở cùng công suất.

**Hiệu suất**
Một trong những mục tiêu chính của Zen là tập trung vào hiệu suất trên mỗi lõi và nó đang nhắm mục tiêu cải thiện 40% chỉ thị trên mỗi chu kỳ (IPC) so với các bản tiền nhiệm. Excavator, so sánh, đã cung cấp 4 cải tiến 15% so với các kiến trúc trước đây. AMD công bố kiến trúc vi mô Zen cuối cùng thực sự đạt được cải thiện 52% về IPC so với  Excavator. Việc bao gồm SMT cũng cho phép mỗi lõi xử lý tối đa hai luồng, tăng thông lượng xử lý bằng cách sử dụng tốt hơn các tài nguyên có sẵn.
Bộ xử lý Zen cũng sử dụng các cảm biến trên chip để tự động thay đổi tần số và điện áp. Điều này cho phép tần số tối đa được tự động và tự động xác định bởi bộ xử lý dựa trên khả năng làm mát có sẵn.
AMD đã trình diễn bộ xử lý Zen 8 lõi/16 luồng vượt trội so với bộ xử lý Intel Broadwell-E có xung nhịp tương đương trong kết xuất Blender và điểm chuẩn HandBrake.
Zen hỗ trợ AVX2 nhưng nó yêu cầu hai chu kỳ xung nhịp để hoàn thành mỗi lệnh AVX2 so với chỉ lệnh của Intel.

**Bộ nhớ**
Zen hỗ trợ bộ nhớ DDR4 (tối đa tám kênh) và ECC.
Báo cáo trước khi phát hành cho biết APU sử dụng kiến trúc Zen cũng sẽ hỗ trợ Bộ nhớ băng thông cao (HBM). Tuy nhiên, APU được chứng minh đầu tiên không sử dụng HBM. Các APU trước đây của AMD dựa vào bộ nhớ dùng chung cho cả GPU và CPU.

**Tiêu thụ điện năng và sản lượng nhiệt**
Bộ xử lý được xây dựng ở quy trình 14 nm FinFET sẽ hiển thị mức tiêu thụ điện năng giảm và do đó tỏ ít nhiệt hơn so với quy trình 28 nm và 32 nm tiền thân không phải là FinFET (đối với các thiết kế tương đương), hoặc mạnh hơn về mặt tính toán ở mức tiêu thụ nhiệt/năng lượng tương đương.
Zen cũng dự kiến sẽ sử dụng đồng hồ gating, giảm tần suất sử dụng không đúng mức của lõi để tiết kiệm điện. Điều này sẽ thông qua công nghệ SenseMI của AMD, sử dụng các cảm biến trên chip để tự động điều chỉnh tần số và điện áp.

**Hỗ trợ bảo mật và ảo hóa nâng cao**
Zen đã thêm hỗ trợ cho Mã hóa bộ nhớ an toàn (SME) của AMD và ảo hóa mã hóa bảo mật (SEV) của AMD. Mã hóa bộ nhớ an toàn là mã hóa bộ nhớ thời gian thực được thực hiện cho mỗi mục nhập bảng trang. Mã hóa xảy ra trên công cụ AES phần cứng và các khóa được quản lý bởi Bộ xử lý "Bảo mật" trên bo mạch (ARM Cortex-A5) khi khởi động để mã hóa từng trang, cho phép mọi bộ nhớ DDR4 (bao gồm cả các loại không bay hơi) được mã hóa. AMD SME cũng làm cho nội dung của bộ nhớ có khả năng chống lại việc rình mò bộ nhớ và các cuộc tấn công khởi động lạnh.

**Xem thêm**
 AMD K9- AMD K10- Jim Keller (kỹ sư)
*Ryzen- Steamler (vi kiến trúc)
*Zen+
*Zen2

**Chú thích**

**Liên kết ngoài**
  Bộ xử lý Ryzen language=en AMD
*language=en