Sử dụng Intel TSX để có khả năng mở rộng cao hơn. Bộ điều chỉnh điện áp tích hợp

Ngày: 2014-08-13 22:26

Trở lại năm 2007, AMD đã phát hành thế hệ bộ xử lý Phenom mới. Sau này, các bộ xử lý này phát hiện có lỗi trong khối TLB (bộ đệm dịch sang một bên, bộ đệm để chuyển đổi nhanh địa chỉ ảo sang địa chỉ vật lý). Công ty không có lựa chọn nào khác ngoài việc giải quyết vấn đề này thông qua một bản vá dưới dạng bản vá BIOS, nhưng điều này đã làm giảm hiệu suất bộ xử lý khoảng 15%.

Điều gì đó tương tự hiện đã xảy ra với Intel. Trong các bộ xử lý thế hệ Haswell, công ty đã triển khai hỗ trợ cho các hướng dẫn TSX (Mở rộng đồng bộ hóa giao dịch). Chúng được thiết kế để tăng tốc các ứng dụng đa luồng và lẽ ra phải được sử dụng chủ yếu trong phân khúc máy chủ. Mặc dù CPU Haswell đã có mặt trên thị trường khá lâu nhưng bộ tập lệnh này hầu như không được sử dụng. Rõ ràng, nó sẽ không xảy ra trong tương lai gần.

Thực tế là Intel đã mắc một “lỗi đánh máy”, như chính công ty gọi nó, trong hướng dẫn TSX. Nhân tiện, lỗi này không được các chuyên gia của gã khổng lồ vi xử lý phát hiện ra. Nó có thể dẫn đến sự mất ổn định của hệ thống. Công ty chỉ có thể giải quyết vấn đề này bằng một cách, đó là cập nhật BIOS, cách này sẽ vô hiệu hóa bộ hướng dẫn này.

Nhân tiện, TSX không chỉ được triển khai trong bộ xử lý Haswell mà còn trong các mẫu CPU Broadwell đầu tiên, sẽ xuất hiện dưới tên Core M. Đại diện công ty xác nhận rằng Intel dự định triển khai phiên bản hướng dẫn TSX “không có lỗi” trong các sản phẩm tiếp theo của mình trong tương lai.

Thẻ: Bình luận

Tin tức trước đó

2014-08-13 22:23
Sony Xperia Z2 “sống sót” sau 6 tuần nằm dưới đáy ao mặn

Điện thoại thông minh thường trở thành anh hùng của những câu chuyện đáng kinh ngạc, trong đó chúng cố gắng đảm nhận vai trò áo giáp bỏ túi, chặn một viên đạn và cứu mạng.

2014-08-13 21:46
iPhone 6 đã bước vào giai đoạn thử nghiệm cuối cùng

Theo số liệu mới nhất từ ​​hãng tin Gforgames, iPhone 6 đã bước vào giai đoạn thử nghiệm cuối cùng trước khi đưa smartphone mới vào sản xuất hàng loạt. Hãy để chúng tôi nhắc bạn rằng iPhone 6 sẽ được lắp ráp tại các nhà máy ở Trung Quốc...

2014-08-12 16:38
Máy tính bảng iRU M720G lõi tám hỗ trợ thẻ SIM kép

Máy tính bảng có RAM 2 GB và bộ nhớ flash tích hợp 16 GB. Có hai camera trên máy: camera chính 8 megapixel và camera trước 2 megapixel. iRU M720G được trang bị các mô-đun 3G, GPS, Wi-Fi, Bluetooth, đài FM cũng như khe cắm hai thẻ SIM, cho phép nó thực hiện...

2014-08-10 18:57
LG đã phát hành điện thoại thông minh giá rẻ L60 ở Nga

Không hề phô trương và phô trương, LG Electronics đã giới thiệu tại Nga mẫu L Series III mới - LG L60. Cái này điện thoại thông minh rẻ tiềnđược trình bày trong phạm vi giá từ 4 đến 5 nghìn rúp từ...

Chúng tôi dịch... Dịch Tiếng Trung (Giản thể) Tiếng Trung (Phồn thể) Tiếng Anh Tiếng Pháp Tiếng Ý Tiếng Bồ Đào Nha Tiếng Nga Tiếng Tây Ban Nha Tiếng Thổ Nhĩ Kỳ

Rất tiếc, chúng tôi không thể dịch thông tin này ngay bây giờ - vui lòng thử lại sau.

Giới thiệu

Phần mềm được thiết kế để liên lạc và truyền dữ liệu đòi hỏi hiệu suất rất cao vì nó truyền số lượng lớn các gói dữ liệu nhỏ. Một trong những thách thức của việc phát triển các ứng dụng ảo hóa chức năng mạng (NFV) là bạn cần sử dụng ảo hóa ở mức độ lớn nhất có thể, đồng thời tối ưu hóa ứng dụng cho phần cứng bạn đang sử dụng khi thích hợp.

Trong bài viết này, tôi sẽ nêu bật ba tính năng của bộ xử lý Intel® hữu ích để tối ưu hóa hiệu suất của các ứng dụng NFV: Công nghệ phân bổ bộ đệm (CAT), Intel® Advanced Vector Extensions 2 (Intel® AVX2) để xử lý vectơ và Intel® Tiện ích mở rộng đồng bộ hóa giao dịch (Intel® TSX).

Giải quyết vấn đề đảo ngược ưu tiên bằng CAT

Khi một chức năng có mức độ ưu tiên thấp lấy cắp tài nguyên từ một chức năng có mức độ ưu tiên cao, chúng tôi gọi đây là “đảo ngược mức độ ưu tiên”.

Không phải tất cả các chức năng ảo đều được tạo ra như nhau. Ví dụ: chức năng định tuyến rất quan trọng đối với thời gian và hiệu suất xử lý, trong khi chức năng mã hóa phương tiện không quan trọng bằng. Tính năng này rất có thể được phép loại bỏ các gói theo định kỳ mà không ảnh hưởng đến trải nghiệm người dùng, vì dù sao đi nữa, sẽ không ai nhận thấy tốc độ khung hình video giảm từ 20 xuống 19 khung hình mỗi giây.

Bộ đệm mặc định được thiết kế theo cách mà người tiêu dùng tích cực nhất sẽ nhận được nó phần lớn nhất. Nhưng người tiêu dùng tích cực nhất không phải lúc nào cũng là ứng dụng quan trọng nhất. Trên thực tế, điều ngược lại thường đúng. Các ứng dụng có mức độ ưu tiên cao được tối ưu hóa, khối lượng dữ liệu của chúng giảm xuống mức nhỏ nhất có thể. Các ứng dụng có mức độ ưu tiên thấp không có nhiều nỗ lực để tối ưu hóa chúng, vì vậy chúng có xu hướng tiêu tốn thêm bộ nhớ. Một số chức năng này tiêu tốn rất nhiều bộ nhớ. Ví dụ: chức năng theo dõi gói để phân tích thống kê có mức độ ưu tiên thấp nhưng tiêu tốn nhiều bộ nhớ và tốn nhiều bộ nhớ đệm.

Các nhà phát triển thường cho rằng nếu họ đặt một ứng dụng có mức độ ưu tiên cao vào một kernel cụ thể thì ứng dụng đó sẽ an toàn ở đó và không bị ảnh hưởng bởi các ứng dụng có mức độ ưu tiên thấp. Thật không may, nó không phải vậy. Mỗi lõi có bộ nhớ đệm cấp một riêng (L1, bộ nhớ đệm cấp cao nhất bộ nhớ đệm nhanh, nhưng kích thước nhỏ nhất) và bộ đệm cấp hai (L2, kích thước lớn hơn một chút nhưng chậm hơn). Có các vùng bộ đệm L1 riêng biệt cho dữ liệu (L1D) và mã chương trình (L1I, "I" là viết tắt của hướng dẫn). Bộ đệm cấp ba (chậm nhất) là chung cho tất cả các lõi bộ xử lý. Trên các kiến ​​trúc bộ xử lý Intel® lên đến và bao gồm cả dòng Broadwell, bộ nhớ đệm L3 hoàn toàn bao gồm, nghĩa là nó chứa mọi thứ có trong bộ nhớ đệm L1 và L2. Do cách thức hoạt động của bộ đệm ẩn, nếu có nội dung nào đó bị xóa khỏi bộ đệm cấp ba thì nội dung đó cũng sẽ bị xóa khỏi bộ đệm cấp một và bộ đệm cấp hai tương ứng. Điều này có nghĩa là ứng dụng có mức độ ưu tiên thấp cần dung lượng trong bộ đệm L3 có thể thay thế dữ liệu từ bộ đệm L1 và L2 của ứng dụng có mức độ ưu tiên cao, ngay cả khi ứng dụng đó đang chạy trên lõi khác.

Trước đây, có một cách tiếp cận để giải quyết vấn đề này được gọi là “khởi động”. Khi cạnh tranh truy cập vào bộ đệm L3, “người chiến thắng” là ứng dụng truy cập bộ nhớ thường xuyên nhất. Do đó, giải pháp là có chức năng ưu tiên cao liên tục truy cập vào bộ đệm, ngay cả khi không hoạt động. Đây không phải là một giải pháp quá hay, nhưng nó thường được chấp nhận khá tốt và cho đến gần đây vẫn chưa có giải pháp thay thế nào. Nhưng giờ đây có một giải pháp thay thế: dòng bộ xử lý Intel® Xeon® E5 v3 giới thiệu Công nghệ phân bổ bộ đệm (CAT), mang đến cho bạn khả năng phân bổ bộ đệm dựa trên các ứng dụng và loại dịch vụ.

Tác động của việc đảo ngược mức độ ưu tiên

Để chứng minh tác động của việc đảo ngược mức độ ưu tiên, tôi đã viết một microbench đơn giản chạy định kỳ việc duyệt danh sách liên kết trên một luồng có mức độ ưu tiên cao, trong khi luồng có mức độ ưu tiên thấp liên tục chạy chức năng sao chép bộ nhớ. Các luồng này được gán cho các lõi khác nhau của cùng một bộ xử lý. Điều này mô phỏng trường hợp xấu nhất về tranh chấp tài nguyên: thao tác sao chép yêu cầu nhiều bộ nhớ, do đó có khả năng làm gián đoạn luồng quan trọng hơn đang truy cập vào danh sách.

Đây là mã trong C.

// Xây dựng danh sách liên kết có kích thước N với mẫu giả ngẫu nhiên void init_pool(list_item *head, int N, int A, int B) ( int C = B; list_item *current = head; for (int i = 0; i< N - 1; i++) { current->đánh dấu = 0; C = (A*C + B) %N; current->next = (list_item*)&(head[C]); hiện tại = hiện tại-> tiếp theo; ) ) // Chạm vào N phần tử đầu tiên trong danh sách liên kết void Warmup_list(list_item* current, int N) ( bool write = (N > POOL_SIZE_L2_LINES) ? true: false; for(int i = 0; i< N - 1; i++) { current = current->Kế tiếp;< 50; j++) { list_item* current = head; #if WARMUP_ON while(in_copy) warmup_list(head, N); #else while(in_copy) spin_sleep(1); #endif i1 = __rdtsc(); for(int i = 0; i < N; i++) { current->if (viết) hiện tại->đánh dấu ++; ) ) void Measure(list_item* head, int N) ( unsigned __long long i1, i2, avg = 0; for (int j = 0; j

đánh dấu++; hiện tại = hiện tại-> tiếp theo; ) i2 = __rdtsc(); trung bình += (i2-i1)/50; in_copy = đúng; ) kết quả=trung bình/N )

  • Nó chứa ba chức năng.
  • Hàm init_pool() khởi tạo một danh sách gộp trong vùng bộ nhớ trống được phân bổ lớn bằng cách sử dụng trình tạo số giả ngẫu nhiên đơn giản. Điều này ngăn không cho các mục trong danh sách ở gần nhau trong bộ nhớ, điều này sẽ tạo ra vị trí không gian, điều này sẽ ảnh hưởng đến các phép đo của chúng tôi vì một số mục sẽ tự động được tìm nạp trước. Mỗi phần tử danh sách chính xác là một dòng bộ đệm.
  • Hàm Warmup() liên tục lặp lại danh sách đã xây dựng. Có dữ liệu cụ thể cần được truy cập nên có trong bộ đệm, vì vậy chức năng này ngăn các luồng khác xóa danh sách đã soạn khỏi bộ đệm L3.

Kết quả điểm chuẩn vi mô trên bộ xử lý Intel® Core™ i7 thế hệ thứ 5 được hiển thị trong biểu đồ bên dưới, trong đó trục X là tổng số dòng bộ đệm trong danh sách được liên kết và trục Y là số chu kỳ CPU trung bình trên mỗi truy cập danh sách liên kết. Khi kích thước của danh sách liên kết tăng lên, nó sẽ di chuyển từ bộ đệm dữ liệu cấp một sang bộ đệm cấp hai và sau đó là bộ đệm cấp ba, rồi vào bộ nhớ chính.

Chỉ báo cơ bản là đường màu nâu đỏ, nó tương ứng với một chương trình không có luồng sao chép trong bộ nhớ, nghĩa là không có tranh chấp. Đường màu xanh lam thể hiện hậu quả của việc đảo ngược mức độ ưu tiên: do chức năng sao chép bộ nhớ nên việc truy cập danh sách mất nhiều thời gian hơn đáng kể. Tác động đặc biệt lớn nếu danh sách phù hợp với bộ đệm L1 hoặc L2 tốc độ cao. Nếu danh sách quá lớn đến mức không vừa với bộ đệm cấp ba thì tác động là không đáng kể.

Đường màu xanh lá cây hiển thị hiệu ứng khởi động khi chức năng sao chép bộ nhớ đang chạy: thời gian truy cập giảm mạnh và tiến gần đến giá trị cơ bản.

Nếu chúng tôi kích hoạt CAT và phân bổ các phần của bộ đệm L3 cho từng lõi để sử dụng riêng thì kết quả sẽ rất gần với đường cơ sở (quá gần để hiển thị trên sơ đồ), đó là mục tiêu của chúng tôi.

Bao gồmCON MÈO

Trước hết, hãy đảm bảo rằng nền tảng này hỗ trợ CAT. Bạn có thể sử dụng lệnh CPUID bằng cách kiểm tra lá địa chỉ 7, lá con 0 được thêm vào để cho biết tính khả dụng của CAT.

Nếu CAT được bật và hỗ trợ, các thanh ghi MSR có thể được lập trình để phân bổ các phần khác nhau của bộ đệm L3 cho các lõi khác nhau.

Mỗi socket bộ xử lý có các thanh ghi MSR IA32_L3_MASKn (ví dụ: 0xc90, 0xc91, 0xc92, 0xc93). Các thanh ghi này lưu trữ một mặt nạ bit cho biết mức độ phân bổ bộ đệm L3 cho mỗi loại dịch vụ (COS). 0xc90 lưu trữ phân bổ bộ đệm cho COS0, 0xc91 cho COS1, v.v.

Ví dụ: sơ đồ này hiển thị một số mặt nạ bit có thể có cho các loại dịch vụ khác nhau để minh họa cách phân chia bộ đệm: COS0 nhận một nửa, COS1 nhận một phần tư và COS2 và COS3 mỗi bộ nhận được một phần tám. Ví dụ: 0xc90 sẽ chứa 11110000 và 0xc93 sẽ chứa 00000001.

Thuật toán Nhập/Xuất Dữ liệu Trực tiếp (DDIO) có mặt nạ bit ẩn riêng cho phép luồng dữ liệu từ các thiết bị PCIe tốc độ cao như bộ điều hợp mạng được truyền đến các khu vực cụ thể của bộ nhớ đệm L3. Tuy nhiên, có khả năng xảy ra xung đột với các lớp dịch vụ đã xác định, vì vậy bạn cần tính đến điều này khi tạo các ứng dụng NFV chất lượng cao. băng thông. Để kiểm tra xung đột, hãy sử dụng để phát hiện lỗi bộ đệm. Một số BIOS có cài đặt cho phép bạn xem và thay đổi mặt nạ DDIO.

Mỗi lõi có một thanh ghi MSR IA32_PQR_ASSOC (0xc8f) cho biết loại dịch vụ nào áp dụng cho lõi đó. Lớp dịch vụ mặc định là 0, có nghĩa là bitmask trong MSR 0xc90 được sử dụng. (Theo mặc định, bitmask 0xc90 được đặt thành 1 để đảm bảo tính khả dụng tối đa của bộ đệm.)

nhất mô hình đơn giản sử dụng CAT trong NFV - phân bổ các khối bộ đệm L3 cho các lõi khác nhau bằng cách sử dụng mặt nạ bit riêng biệt và sau đó ghim các luồng hoặc máy ảođằng sau các lõi. Nếu máy ảo yêu cầu truy cập chungđể các hạt nhân thực thi, cũng có thể thực hiện một sửa chữa nhỏ đối với bộ lập lịch của hệ điều hành, thêm mặt nạ bộ đệm vào các luồng mà máy ảo đang chạy và tự động kích hoạt nó trong mỗi sự kiện lập lịch.

Có một cái khác cách khác thường sử dụng CAT để khóa dữ liệu trong bộ đệm. Đầu tiên, tạo mặt nạ bộ đệm đang hoạt động và truy cập dữ liệu trong bộ nhớ để tải vào bộ đệm L3. Sau đó vô hiệu hóa các bit đại diện cho phần này của bộ đệm L3 trong bất kỳ mặt nạ bit CAT nào được sử dụng trong tương lai. Dữ liệu sẽ bị khóa trong bộ đệm cấp ba, vì hiện tại không thể xóa nó khỏi đó (ngoài DDIO). Trong ứng dụng NFV, cơ chế này cho phép khóa các bảng tra cứu cỡ trung bình để định tuyến và phân tích gói trong bộ đệm L3 để đảm bảo quyền truy cập liên tục.

Sử dụng Intel AVX2 để xử lý vectơ

Lệnh SIMD (một lệnh, nhiều dữ liệu) cho phép bạn thực hiện cùng một thao tác trên các phần dữ liệu khác nhau cùng một lúc. Các lệnh này thường được sử dụng để tăng tốc độ tính toán dấu phẩy động, nhưng các phiên bản số nguyên, boolean và dữ liệu của lệnh cũng có sẵn.

Tùy thuộc vào bộ xử lý bạn đang sử dụng, bạn sẽ có sẵn các nhóm hướng dẫn SIMD khác nhau. Kích thước của vectơ được xử lý bởi các lệnh cũng sẽ khác nhau:

  • SSE hỗ trợ vectơ 128 bit.
  • Intel AVX2 hỗ trợ các lệnh số nguyên cho vectơ 256-bit và triển khai các lệnh cho các hoạt động thu thập.
  • Các phần mở rộng AVX3 trên kiến ​​trúc Intel® trong tương lai sẽ hỗ trợ vectơ 512 bit.

Một vectơ 128 bit có thể được sử dụng cho hai biến 64 bit, bốn biến 32 bit hoặc tám biến 16 bit (tùy thuộc vào hướng dẫn SIMD được sử dụng). Các vectơ lớn hơn sẽ chứa được nhiều phần tử dữ liệu hơn. Do nhu cầu thông lượng cao của các ứng dụng NFV, bạn phải luôn sử dụng các lệnh SIMD mạnh nhất (và phần cứng liên quan), hiện tại là Intel AVX2.

Các lệnh SIMD thường được sử dụng để thực hiện cùng một thao tác trên một vectơ giá trị, như trong hình. Ở đây, thao tác tạo X1opY1 đến X4opY4 là một lệnh đơn, xử lý đồng thời các mục dữ liệu X1 đến X4 và Y1 đến Y4. Trong ví dụ này, tốc độ tăng tốc sẽ nhanh hơn bốn lần so với thực thi (vô hướng) thông thường vì bốn thao tác được xử lý đồng thời. Tốc độ tăng tốc có thể lớn bằng vectơ SIMD lớn. Các ứng dụng NFV thường xử lý nhiều luồng gói theo cách tương tự, vì vậy ở đây hướng dẫn SIMD cho phép tối ưu hóa hiệu suất một cách tự nhiên.

Đối với các vòng lặp đơn giản, trình biên dịch thường sẽ tự động vector hóa các hoạt động bằng cách sử dụng các hướng dẫn SIMD mới nhất có sẵn cho CPU (nếu bạn sử dụng đúng cờ trình biên dịch). Bạn có thể tối ưu hóa mã của mình để sử dụng tập lệnh hiện đại nhất được phần cứng hỗ trợ trong thời gian chạy hoặc bạn có thể biên dịch mã cho một kiến ​​trúc đích cụ thể.

Hoạt động của SIMD cũng hỗ trợ tải bộ nhớ, sao chép tối đa 32 byte (256 bit) từ bộ nhớ sang thanh ghi. Điều này cho phép dữ liệu được truyền giữa bộ nhớ và các thanh ghi, bỏ qua bộ đệm và thu thập dữ liệu từ các vị trí khác nhau trong bộ nhớ. Bạn cũng có thể thực hiện các thao tác khác nhau với vectơ (thay đổi dữ liệu trong một thanh ghi) và vectơ lưu trữ (ghi tối đa 32 byte từ thanh ghi vào bộ nhớ).

Memcpy và memmov là những ví dụ nổi tiếng về các quy trình cơ bản được triển khai bằng hướng dẫn SIMD ngay từ đầu vì lệnh REP MOV quá chậm. Mã memcpy được cập nhật thường xuyên trong thư viện hệ thốngđể sử dụng các hướng dẫn SIMD mới nhất. Bảng quản lý CPUID được sử dụng để lấy thông tin về phiên bản mới nhất nào có sẵn để sử dụng. Đồng thời, việc triển khai các hướng dẫn SIMD thế hệ mới trong thư viện thường bị chậm trễ.

Ví dụ: quy trình memcpy sau đây, sử dụng một vòng lặp đơn giản, dựa trên các hàm dựng sẵn (thay vì mã thư viện) để trình biên dịch có thể tối ưu hóa nó cho phiên bản mới nhất của lệnh SIMD.

Mm256_store_si256((__m256i*) (dest++), (__m256i*) (src++))

Nó biên dịch theo mã hợp ngữ sau và có hiệu suất gấp đôi so với các thư viện gần đây.

C5 fd 6f 04 04 vmovdqa (%rsp,%rax,1),%ymm0 c5 fd 7f 84 04 00 00 vmovdqa %ymm0.0x10000(%rsp,%rax,1)

Mã hợp ngữ từ hàm nội tuyến sẽ sao chép 32 byte (256 bit) bằng cách sử dụng mã gần đây nhất hướng dẫn có sẵn SIMD, trong khi mã thư viện sử dụng SSE sẽ chỉ sao chép 16 byte (128 bit).

Các ứng dụng NFV thường cần thực hiện thao tác thu thập bằng cách tải dữ liệu từ nhiều vị trí ở các vị trí bộ nhớ khác nhau không liền kề nhau. Ví dụ: bộ điều hợp mạng có thể lưu vào bộ đệm các gói đến bằng DDIO. Ứng dụng NFV có thể chỉ cần truy cập vào phần IP đích của tiêu đề mạng. Với thao tác thu thập, ứng dụng có thể thu thập dữ liệu cho 8 gói cùng lúc.

Không cần sử dụng các hàm nội tuyến hoặc mã hợp ngữ cho hoạt động thu thập vì trình biên dịch có thể vector hóa mã, như đối với chương trình hiển thị bên dưới, dựa trên phép thử tổng hợp các số từ các vị trí giả ngẫu nhiên trong bộ nhớ.

Int một; int b; với (i = 0; tôi< 1024; i++) a[i] = i; for (i = 0; i < 64; i++) b[i] = (i*1051) % 1024; for (i = 0; i < 64; i++) sum += a]; // This line is vectorized using gather.

Dòng cuối cùngđược biên dịch thành mã lắp ráp sau.

C5 fe 6f 40 80 vmovdqu -0x80(%rax),%ymm0 c5 ed fe f3 vpaddd %ymm3,%ymm2,%ymm6 c5 e5 ef db vpxor %ymm3,%ymm3,%ymm3 c5 d5 76 ed vpcmpeqd %ymm5,% ymm5,%ymm5 c4 e2 55 90 3c a0 vpgatherdd %ymm5,(%rax,%ymm4,4),%ymm7

Một thao tác thu thập đơn lẻ nhanh hơn đáng kể so với một chuỗi tải xuống nhưng điều này chỉ có ý nghĩa nếu dữ liệu đã có trong bộ đệm. Nếu không, dữ liệu sẽ phải được tìm nạp từ bộ nhớ, việc này đòi hỏi hàng trăm hoặc hàng nghìn chu kỳ CPU. Nếu dữ liệu nằm trong bộ đệm, có thể tăng tốc gấp 10 lần
(tức là 1000%). Nếu dữ liệu không có trong bộ đệm, tốc độ tăng tốc chỉ là 5%.

Khi sử dụng các kỹ thuật như thế này, điều quan trọng là phải phân tích ứng dụng để xác định các điểm nghẽn và hiểu liệu ứng dụng có đang dành quá nhiều thời gian để sao chép hoặc thu thập dữ liệu hay không. Bạn có thể dùng .

Một tính năng hữu ích khác cho NFV trong Intel AVX2 và các hoạt động SIMD khác là các hoạt động bit và logic. Chúng được sử dụng để tăng tốc độ mã hóa không chuẩn và việc kiểm tra bit rất thuận tiện cho các nhà phát triển ASN.1 và thường được sử dụng cho dữ liệu trong viễn thông. Intel AVX2 có thể được sử dụng để so sánh chuỗi nhanh hơn bằng các thuật toán nâng cao như MPSSEF.

Tiện ích mở rộng Intel AVX2 hoạt động tốt trong các máy ảo. Hiệu suất là như nhau và không có lỗi thoát máy ảo nào.

Sử dụng Intel TSX để có khả năng mở rộng cao hơn

Một trong những thách thức của các chương trình song song là tránh xung đột dữ liệu, điều này có thể xảy ra khi nhiều luồng cố gắng sử dụng cùng một phần dữ liệu và ít nhất một luồng cố gắng thay đổi dữ liệu. Để tránh các kết quả tần suất không thể đoán trước, khóa được sử dụng: luồng đầu tiên sử dụng mục dữ liệu sẽ chặn nó khỏi các luồng khác cho đến khi công việc của nó hoàn thành. Nhưng cách tiếp cận này có thể không hiệu quả nếu thường xuyên có các khóa cạnh tranh hoặc nếu các khóa kiểm soát vùng bộ nhớ lớn hơn mức thực sự cần thiết.

Tiện ích mở rộng đồng bộ hóa giao dịch Intel (TSX) cung cấp hướng dẫn của bộ xử lý để vượt qua các khóa giao dịch trong bộ nhớ phần cứng. Điều này giúp đạt được khả năng mở rộng cao hơn. Nó hoạt động như thế này: khi một chương trình đi vào một phần sử dụng Intel TSXĐể bảo vệ vị trí bộ nhớ, tất cả các nỗ lực truy cập bộ nhớ đều được ghi lại và khi kết thúc phiên được bảo vệ, chúng sẽ tự động được cam kết hoặc tự động được khôi phục. Việc khôi phục được thực hiện nếu trong khi thực thi từ một luồng khác, có xung đột truy cập bộ nhớ có thể gây ra tình trạng dồn đuổi (ví dụ: ghi vào vị trí mà giao dịch khác đang đọc dữ liệu). Quá trình khôi phục cũng có thể xảy ra nếu bản ghi truy cập bộ nhớ trở nên quá lớn để triển khai Intel TSX, nếu có lệnh I/O hoặc lệnh gọi hệ thống hoặc nếu ngoại lệ bị ném ra hoặc máy ảo bị tắt. Các cuộc gọi I/O bị khôi phục khi chúng không thể được thực hiện theo suy đoán do sự can thiệp từ bên ngoài. Cuộc gọi hệ thống- một thao tác rất phức tạp làm thay đổi các vòng và bộ mô tả bộ nhớ, rất khó để khôi phục.

Trường hợp sử dụng phổ biến của Intel TSX là kiểm soát quyền truy cập trên bảng băm. Thông thường, khóa bảng bộ đệm được sử dụng để đảm bảo quyền truy cập vào bảng bộ đệm, nhưng điều này làm tăng độ trễ cho các luồng cạnh tranh quyền truy cập. Khóa thường quá thô: toàn bộ bảng bị khóa, mặc dù rất hiếm khi các luồng cố gắng truy cập vào cùng các phần tử. Khi số lượng lõi (và luồng) tăng lên, khóa thô sẽ cản trở khả năng mở rộng.

Như được hiển thị trong sơ đồ bên dưới, việc chặn thô có thể khiến một luồng phải đợi luồng khác giải phóng bảng băm, mặc dù các luồng đang sử dụng các phần tử khác nhau. Việc sử dụng Intel TSX cho phép cả hai luồng hoạt động, kết quả của chúng được ghi lại sau khi kết thúc giao dịch thành công. Phần cứng phát hiện xung đột một cách nhanh chóng và hủy bỏ các giao dịch vi phạm. Tại sử dụng Intel TSX thread 2 không phải chờ, cả hai luồng đều được thực thi sớm hơn nhiều. Khóa trên bảng băm được chuyển đổi thành khóa tinh chỉnh, giúp cải thiện hiệu suất. Intel TSX hỗ trợ độ chính xác theo dõi tranh chấp ở cấp độ của một dòng bộ nhớ đệm (64 byte).

Intel TSX sử dụng hai giao diện lập trình để chỉ định các phần mã thực hiện giao dịch.

  • Bỏ qua khóa phần cứng (HLE) tương thích ngược và có thể dễ dàng sử dụng để cải thiện khả năng mở rộng mà không cần thực hiện các thay đổi lớn đối với thư viện khóa. HLE hiện có tiền tố cho các hướng dẫn bị chặn. Tiền tố lệnh HLE báo hiệu cho phần cứng giám sát trạng thái khóa mà không cần lấy nó. Trong ví dụ trên, việc thực hiện các bước được mô tả sẽ đảm bảo rằng quyền truy cập vào các mục trong bảng băm khác sẽ không còn bị khóa trừ khi có quyền truy cập ghi xung đột vào một giá trị được lưu trữ trong bảng băm. Kết quả là quyền truy cập sẽ được song song hóa, do đó khả năng mở rộng sẽ được tăng lên trên cả bốn luồng.
  • Giao diện RTM bao gồm các hướng dẫn rõ ràng để bắt đầu (XBEGIN), cam kết (XEND), hủy (XABORT) và kiểm tra trạng thái (XTEST) của giao dịch. Những hướng dẫn này cung cấp cho các thư viện khóa một cách linh hoạt hơn để triển khai bỏ qua khóa. Giao diện RTM cho phép các thư viện sử dụng thuật toán hủy giao dịch linh hoạt. Tính năng này có thể được sử dụng để cải thiện Hiệu suất Intel TSX sử dụng khởi động lại giao dịch lạc quan, khôi phục giao dịch và các kỹ thuật nâng cao khác. Bằng cách sử dụng lệnh CPUID, thư viện có thể quay lại triển khai các khóa không phải RTM cũ hơn trong khi vẫn duy trì khả năng tương thích ngược với mã cấp người dùng.
  • Để biết thêm thông tin về HLE và RTM, tôi khuyên bạn nên xem các bài viết sau đây của Intel Developer Zone.

Giống như tối ưu hóa các nguyên tắc đồng bộ hóa cơ bản bằng cách sử dụng HLE hoặc RTM, các tính năng của gói dữ liệu NFV có thể được hưởng lợi từ Intel TSX khi sử dụng Bộ công cụ phát triển mặt phẳng dữ liệu (DPDK).

Khi sử dụng Intel TSX, thách thức chính không phải là triển khai các phần mở rộng này mà là đánh giá và xác định hiệu suất của chúng. Có các bộ đếm hiệu suất có thể được sử dụng trong các chương trình hoàn hảo của Linux* và để đo lường mức độ thành công của quá trình thực thi Intel TSX (số vòng lặp được thực thi và số vòng lặp bị hủy bỏ).

Nên sử dụng Intel TSX một cách thận trọng và kiểm tra cẩn thận trong các ứng dụng NFV vì các hoạt động I/O trong khu vực được Intel TSX bảo vệ luôn liên quan đến việc khôi phục và nhiều tính năng NFV sử dụng nhiều thao tác I/O. Nên tránh khóa đồng thời trong các ứng dụng NFV. Nếu cần phải khóa thì thuật toán bỏ qua khóa sẽ giúp cải thiện khả năng mở rộng.

Giới thiệu về tác giả

Alexander Komarov làm kỹ sư phát triển ứng dụng trong Nhóm Dịch vụ và Phần mềm của Tập đoàn Intel. Trong 10 năm qua, công việc chính của Alexander là tối ưu hóa mã để đạt được hiệu suất cao nhất trên nền tảng máy chủ Intel hiện tại và tương lai. Công việc như vậy bao gồm việc sử dụng các công cụ phát triển của Intel phần mềm: đây là các trình biên dịch, trình biên dịch, thư viện, bộ hướng dẫn mới nhất, kiến ​​trúc nano và các cải tiến về kiến ​​trúc của hầu hết bộ vi xử lý hiện đại kiến trúc và chipset x86.

thông tin thêm

Để biết thêm thông tin về NFV, hãy xem các video sau.

Kiến trúc của Haswell có xứng đáng được gọi là mới và được thiết kế lại không?

Trong hơn 5 năm, Intel đã thực hiện chiến lược tích tắc, luân phiên chuyển đổi một kiến ​​trúc cụ thể sang các chuẩn mực công nghệ phức tạp hơn bằng việc cho ra đời một kiến ​​trúc mới.

Kết quả là mỗi năm chúng tôi đều nhận được một kiến ​​trúc mới hoặc sự chuyển đổi sang quy trình kỹ thuật mới. “So” đã được lên kế hoạch cho năm 2013, tức là phát hành kiến ​​​​trúc mới - Haswell. Bộ xử lý có kiến ​​trúc mới được sản xuất bằng quy trình kỹ thuật tương tự như thế hệ trước Cầu thường xuân: 22 nm, cổng ba. Quy trình kỹ thuật không thay đổi, nhưng số lượng bóng bán dẫn đã tăng lên, có nghĩa là diện tích cuối cùng của tinh thể của bộ xử lý mới cũng tăng lên - và sau đó là mức tiêu thụ điện năng.

Tuân thủ truyền thống, Intel chỉ giới thiệu bộ xử lý hiệu suất cao và đắt tiền vào ngày công bố Haswell Dòng cốt lõi i5 và i7. Như mọi khi, việc công bố bộ xử lý lõi kép của các dòng thấp hơn vẫn bị trì hoãn. Điều đáng chú ý là giá bộ vi xử lý mới vẫn ở mức tương đương với Cầu thường xuân.

Hãy so sánh các khu vực khuôn của các thế hệ bộ xử lý lõi tứ khác nhau:

Như bạn có thể thấy, Haswell lõi tứ có diện tích chỉ 177 mm2, trong khi cầu bắc, bộ điều khiển RAM và lõi đồ họa được tích hợp vào nó. Như vậy, số lượng bóng bán dẫn đã tăng thêm 200 triệu và diện tích tăng thêm 17 mm2. Nếu so sánh Haswell với Sandy Bridge 32 nm, thì số lượng bóng bán dẫn đã tăng 440 triệu (38%) và diện tích do chuyển sang công nghệ xử lý 22 nm đã giảm 39 mm² (18%). Khả năng tản nhiệt gần như giữ nguyên trong suốt những năm qua (95 W đối với SB và 84 W đối với Haswell), và diện tích đã giảm.

Tất cả điều này đã dẫn đến thực tế là cần phải loại bỏ nhiều nhiệt hơn khỏi mỗi milimet vuông của tinh thể. Nếu trước đây từ 216 mm2 cần lấy 95 W, tức là 0,44 W/mm2 thì bây giờ từ diện tích 177 mm2 cần lấy 84 W - 0,47 W/mm2, nhiều hơn 6,8% so với trước đây . Nếu xu hướng này tiếp tục, việc loại bỏ nhiệt khỏi những khu vực nhỏ như vậy sẽ sớm trở nên khó khăn về mặt vật lý.

Về mặt lý thuyết thuần túy, chúng ta có thể giả định rằng nếu ở Broadwell, được sản xuất bằng công nghệ xử lý 14nm, số lượng bóng bán dẫn sẽ tăng 21%, giống như khi chuyển đổi từ 32 sang 22 nm, và diện tích sẽ giảm 26 % (bằng lượng như khi chuyển từ 32 sang 22 nm), chúng ta nhận được 1,9 tỷ bóng bán dẫn trên diện tích 131 mm². Nếu khả năng tản nhiệt cũng giảm 19% thì chúng ta nhận được 68 W, hoặc 0,52 W/mm2.

Đây là những tính toán lý thuyết, trên thực tế sẽ khác - quá trình chuyển đổi quy trình công nghệ từ 32 sang 22nm cũng được đánh dấu bằng sự ra đời của bóng bán dẫn 3D, giúp giảm dòng điện rò rỉ và cùng với đó là sinh nhiệt. Tuy nhiên, vẫn chưa có thông tin gì như thế này về quá trình chuyển đổi từ 22 nm sang 14 nm, vì vậy trên thực tế, các giá trị tản nhiệt rất có thể sẽ còn tệ hơn và bạn không nên hy vọng vào 0,52 W/mm². Tuy nhiên, ngay cả khi mức tản nhiệt là 0,52 W/mm2, vấn đề quá nhiệt cục bộ và khó loại bỏ nhiệt khỏi một tinh thể nhỏ sẽ càng trở nên nghiêm trọng hơn.

Nhân tiện, chính những khó khăn trong việc tản nhiệt với mức tản nhiệt 0,52 W/mm2 có thể là nguyên nhân khiến Intel muốn chuyển sang BGA hoặc cố gắng loại bỏ ổ cắm. Nếu bộ xử lý được hàn vào bo mạch chủ thì nhiệt sẽ được truyền trực tiếp từ chip sang tản nhiệt mà không có lớp vỏ trung gian. Điều này thậm chí còn phù hợp hơn trong bối cảnh việc thay thế chất hàn bằng keo tản nhiệt dưới vỏ của bộ xử lý hiện đại. Một lần nữa chúng ta có thể mong đợi sự xuất hiện của các bộ xử lý “trần” với các tinh thể mở theo ví dụ của Athlon XP, tức là không có nắp làm liên kết trung gian trong tản nhiệt.

Điều này đã được thực hiện trên card màn hình từ lâu và nguy cơ sứt mẻ tinh thể được giảm thiểu nhờ khung sắt xung quanh nó, vì vậy card màn hình không gặp phải những “vấn đề khẩn cấp” như keo tản nhiệt dưới nắp bộ xử lý. Tuy nhiên, việc ép xung sẽ càng trở nên khó khăn hơn và việc làm mát thích hợp cho bộ xử lý "mỏng hơn" sẽ gần như trở thành một môn khoa học. Và tất cả những điều này sẽ sớm chờ đợi chúng ta, trừ khi, tất nhiên, một điều kỳ diệu xảy ra...

Nhưng hãy quay lại nói về Haswell. Như chúng ta đã biết, Haswell đã nhận được một số “cải tiến/thay đổi” liên quan đến Sandy Bridge (và theo đó, Ivy Bridge, nói chung là sự chuyển giao SB sang một quy trình kỹ thuật tinh tế hơn):

  • bộ điều chỉnh điện áp tích hợp;
  • chế độ tiết kiệm năng lượng mới;
  • tăng khối lượng bộ đệm và hàng đợi;
  • tăng dung lượng bộ đệm;
  • tăng số lượng cổng phóng;
  • thêm các khối, chức năng, API mới trong lõi đồ họa tích hợp;
  • tăng số lượng đường ống trong lõi đồ họa.

Như vậy, việc đánh giá nền tảng mới có thể được chia thành ba phần: bộ xử lý, bộ tăng tốc đồ họa tích hợp, chipset.

Phần xử lý

Những thay đổi đối với bộ xử lý bao gồm việc bổ sung các lệnh mới và chế độ tiết kiệm năng lượng mới, bao gồm bộ điều chỉnh điện áp, cũng như những thay đổi đối với chính lõi bộ xử lý.

Bộ hướng dẫn

Kiến trúc Haswell có các tập lệnh mới. Chúng có thể được chia thành hai nhóm lớn: nhóm nhằm mục đích tăng hiệu suất vectơ và nhóm nhắm vào phân khúc máy chủ. Cái trước bao gồm AVX và FMA3, cái sau - bộ nhớ ảo hóa và giao dịch.

Phần mở rộng vectơ nâng cao 2 (AVX2)

Bộ AVX đã được mở rộng lên phiên bản AVX 2.0. Bộ AVX2 cung cấp:

  • hỗ trợ vectơ số nguyên 256 bit (trước đây chỉ hỗ trợ cho 128 bit);
  • hỗ trợ thu thập các hướng dẫn, loại bỏ yêu cầu về vị trí dữ liệu liền kề trong bộ nhớ; bây giờ dữ liệu được “thu thập” từ các địa chỉ bộ nhớ khác nhau - sẽ rất thú vị khi xem điều này ảnh hưởng đến hiệu suất như thế nào;
  • thêm hướng dẫn thao tác/thao tác trên bit.

Nói chung, bộ mới tập trung hơn vào số học số nguyên và lợi ích chính từ AVX 2.0 sẽ chỉ hiển thị trong các phép toán số nguyên.

Hợp nhất nhân-cộng (FMA3)

FMA là phép tính cộng nhân kết hợp trong đó hai số được nhân và cộng vào bộ tích lũy. Loại này các phép toán khá phổ biến và cho phép bạn thực hiện phép nhân vectơ và ma trận hiệu quả hơn. Hỗ trợ cho tiện ích mở rộng này sẽ làm tăng đáng kể hiệu suất của các hoạt động vectơ. FMA3 đã được hỗ trợ trong bộ xử lý AMD có lõi Piledriver và FMA4 đã được hỗ trợ trong Bulldozer.

FMA là sự kết hợp của phép nhân và phép cộng: a=b×c+d.

Đối với FMA3, đây là các lệnh gồm ba toán hạng, nghĩa là kết quả được ghi vào một trong ba toán hạng tham gia vào lệnh. Kết quả là chúng ta nhận được một phép toán như a=b×c+a, a=a×b+c, a=b×a+c.

FMA4 là các lệnh gồm bốn toán hạng với kết quả được ghi vào toán hạng thứ tư. Lệnh có dạng: a=b×c+d.

Nói về FMA3: sự đổi mới này sẽ tăng năng suất hơn 30% nếu mã được điều chỉnh phù hợp với FMA3. Điều đáng chú ý là khi Haswell vẫn còn ở rất xa, Intel đã lên kế hoạch triển khai FMA4 thay vì FMA3, nhưng sau đó đã thay đổi quyết định theo hướng ủng hộ FMA3. Rất có thể, chính vì điều này mà Bulldozer đã ra mắt hỗ trợ FMA4: họ nói rằng họ không có thời gian để chuyển đổi nó sang Intel (nhưng Piledriver đã ra mắt FMA3). Hơn nữa, ban đầu Bulldozer được lên kế hoạch triển khai FMA3 vào năm 2007, nhưng sau khi Intel công bố kế hoạch triển khai FMA4 vào năm 2008, AMD đã thay đổi quyết định bằng cách phát hành Bulldozer với FMA4. Và Intel sau đó đã thay đổi FMA4 thành FMA3 trong kế hoạch của mình, vì mức tăng từ FMA4 so với FMA3 là nhỏ và độ phức tạp của mạch logic điện là đáng kể, điều này cũng làm tăng ngân sách bóng bán dẫn.

Lợi ích từ AVX2 và FMA3 sẽ xuất hiện sau khi phần mềm được điều chỉnh theo các bộ hướng dẫn này, vì vậy bạn không nên mong đợi bất kỳ lợi ích hiệu suất nào “tại đây và ngay bây giờ”. Và vì các nhà sản xuất phần mềm khá trơ nên hiệu suất “bổ sung” sẽ phải chờ.

Bộ nhớ giao dịch

Sự phát triển của bộ vi xử lý đã dẫn đến sự gia tăng số lượng luồng - một bộ xử lý máy tính để bàn hiện đại có tám luồng trở lên. Một số lượng lớn các luồng ngày càng tạo ra nhiều khó khăn hơn khi thực hiện truy cập bộ nhớ đa luồng. Cần kiểm soát mức độ liên quan của các biến trong RAM: cần chặn dữ liệu để ghi kịp thời cho một số luồng và cho phép đọc hoặc thay đổi dữ liệu cho các luồng khác. Đây là một nhiệm vụ khó khăn và bộ nhớ giao dịch được phát triển để giữ cho dữ liệu luôn mới trong các chương trình đa luồng. Nhưng cho đến ngày nay, nó vẫn được triển khai bằng phần mềm, khiến năng suất giảm sút.

Haswell có Tiện ích mở rộng đồng bộ hóa giao dịch (TSX) mới - bộ nhớ giao dịch, được thiết kế để triển khai hiệu quả các chương trình đa luồng và tăng độ tin cậy của chúng. Tiện ích mở rộng này cho phép bạn triển khai bộ nhớ giao dịch “trong phần cứng”, nhờ đó tăng hiệu suất tổng thể.

Bộ nhớ giao dịch là gì? Đây là bộ nhớ chứa bên trong cơ chế quản lý các tiến trình song song nhằm cung cấp quyền truy cập vào dữ liệu được chia sẻ. Tiện ích mở rộng TSX bao gồm hai thành phần: Loại bỏ khóa phần cứng (HLE) và Bộ nhớ giao dịch bị hạn chế (RTM).

Thành phần RTM là một tập hợp các hướng dẫn mà lập trình viên có thể sử dụng để bắt đầu, kết thúc và hủy bỏ giao dịch. Thành phần HLE giới thiệu các tiền tố bị bộ xử lý bỏ qua nếu không hỗ trợ TSX. Tiền tố cung cấp khóa biến, cho phép các quy trình khác sử dụng (đọc) các biến bị khóa và thực thi mã của chúng cho đến khi xảy ra xung đột ghi dữ liệu bị khóa.

TRÊN khoảnh khắc này Các ứng dụng sử dụng tiện ích mở rộng này đã xuất hiện.

Ảo hóa

Tầm quan trọng của ảo hóa không ngừng tăng lên: ngày càng có nhiều máy chủ ảo nằm trên cùng một vật lý, và dịch vụ điện toán đám mâyđang ngày càng lan rộng hơn. Vì vậy, việc tăng tốc độ của các công nghệ ảo hóa và môi trường ảo hóa là nhiệm vụ hết sức cấp bách ở phân khúc máy chủ. Haswell chứa một số cải tiến nhằm mục đích cụ thể là tăng hiệu suất của môi trường ảo hóa. Hãy liệt kê chúng:

  • cải tiến để giảm thời gian chuyển đổi từ hệ thống khách sang hệ thống máy chủ;
  • đã thêm các bit truy cập vào Bảng trang mở rộng (EPT);
  • Thời gian truy cập TLB đã giảm;
  • hướng dẫn mới để gọi trình ảo hóa mà không cần thực thi lệnh vmexit;

Kết quả là thời gian chuyển đổi giữa các môi trường ảo hóa đã giảm xuống dưới 500 chu kỳ xử lý. Điều này sẽ giúp giảm chi phí hiệu năng tổng thể liên quan đến ảo hóa. Và Xeon E3-12xx-v3 mới có lẽ sẽ nhanh hơn trong loại nhiệm vụ này so với Xeon E3-12xx-v2.

Bộ điều chỉnh điện áp tích hợp

Ở Haswell, bộ điều chỉnh điện áp được chuyển từ bo mạch chủ xuống dưới nắp bộ xử lý. Trước đây (Sandy Bridge) cần phải cung cấp các điện áp khác nhau cho bộ xử lý để lõi đồ họa, đối với tác nhân hệ thống, đối với lõi bộ xử lý, v.v. Hiện chỉ có một điện áp Vccin 1,75 V được cung cấp cho bộ xử lý thông qua ổ cắm, điện áp này được cấp cho bộ điều chỉnh điện áp tích hợp. Bộ điều chỉnh điện áp bao gồm 20 ô, mỗi ô tạo ra 16 pha với tổng dòng điện là 25 A. Tổng cộng, chúng ta có 320 pha, nhiều hơn đáng kể so với những pha phức tạp nhất. bo mạch chủ. Cách tiếp cận này không chỉ cho phép đơn giản hóa cách bố trí bo mạch chủ (và do đó giảm giá thành của chúng) mà còn điều chỉnh chính xác hơn điện áp bên trong bộ xử lý, từ đó giúp tiết kiệm năng lượng nhiều hơn.

Đây là một trong những nguyên nhân chính khiến Haswell không thể tương thích vật lý với socket LGA1155 cũ. Đúng, chúng ta có thể nói về mong muốn kiếm tiền của Intel bằng cách phát hành nền tảng mới hàng năm ( chipset mới) và cứ hai năm một lần - ổ cắm mới, nhưng trong trường hợp này, để thay đổi ổ cắm thì có lý do khách quan: không tương thích vật lý/điện.

Tuy nhiên, mọi thứ đều có giá. Bộ điều chỉnh điện áp là một nguồn nhiệt đáng chú ý khác trong bộ xử lý mới. Và do Haswell được sản xuất bằng công nghệ xử lý tương tự như người tiền nhiệm Ivy Bridge, chúng ta có thể mong đợi bộ xử lý này sẽ nóng hơn.

Nhìn chung, cải tiến này sẽ có lợi hơn ở phân khúc di động: thay đổi điện áp nhanh hơn và chính xác hơn sẽ giảm mức tiêu thụ điện năng, cũng như kiểm soát tần số lõi xử lý hiệu quả hơn. Và rõ ràng, đây không phải là một tuyên bố tiếp thị trống rỗng, bởi vì Intel sắp công bố bộ xử lý di động có mức tiêu thụ điện năng cực thấp.

Chế độ tiết kiệm năng lượng mới

Haswell có các trạng thái ngủ S0ix mới, tương tự như trạng thái S3/S4, nhưng có thời gian chuyển đổi CPU nhanh hơn nhiều điều kiện làm việc. Trạng thái nhàn rỗi C7 mới cũng đã được thêm vào.

Chế độ C7 đi kèm với việc tắt phần chính của bộ xử lý, trong khi hình ảnh trên màn hình vẫn hoạt động.

Tần số nhàn rỗi tối thiểu của bộ xử lý là 800 MHz, điều này cũng giúp giảm mức tiêu thụ điện năng.

Kiến trúc bộ xử lý

Giao diện người dùng

Quy trình Haswell, như trong SB, có 14–19 giai đoạn: 14 giai đoạn cho một lần truy cập bộ đệm µop, 19 giai đoạn cho một lần bỏ lỡ. Kích thước của bộ đệm µop không thay đổi so với SB - 1536 µop. Cách tổ chức bộ đệm uop vẫn giống như trong SB - 32 bộ tám dòng, mỗi bộ có sáu uops. Mặc dù, do sự gia tăng số lượng thiết bị thực thi, cũng như các bộ đệm tiếp theo sau bộ đệm uop, người ta có thể mong đợi sự gia tăng trong bộ đệm uop - lên tới 1776 uops (tại sao chính xác thì khối lượng này sẽ được thảo luận bên dưới).

Bộ giải mã

Có thể nói, bộ giải mã không thay đổi - nó vẫn là bốn chiều, giống như SB. Nó bao gồm bốn kênh song song: một kênh dịch phức tạp (bộ giải mã phức tạp) và ba kênh đơn giản (bộ giải mã đơn giản). Một trình dịch phức tạp có thể xử lý/giải mã các lệnh phức tạp tạo ra nhiều uop. Ba kênh còn lại giải mã các hướng dẫn đơn giản. Nhân tiện, do sự hiện diện của việc hợp nhất các hoạt động macro, các lệnh tải với lệnh thực thi và dỡ tải sẽ tạo ra, chẳng hạn như một uop và có thể được giải mã trong các kênh giải mã “đơn giản”. Hướng dẫn SSE cũng tạo ra một uop, vì vậy chúng có thể được giải mã theo bất kỳ cách nào trong ba cách kênh đơn giản. Với sự ra đời của AVX, FMA3 256-bit, cũng như số lượng cổng kích hoạt và thiết bị chức năng ngày càng tăng, tốc độ bộ giải mã này có thể không đủ - và nó có thể trở thành nút thắt cổ chai. Một phần, nút cổ chai này được “mở rộng” bởi bộ nhớ đệm L0m uop, tuy nhiên, với bộ xử lý có 8 cổng khởi chạy, Intel nên nghĩ đến việc mở rộng bộ giải mã - đặc biệt, việc tăng số lượng kênh phức tạp sẽ không gây hại gì.

Lập lịch, sắp xếp lại bộ đệm, đơn vị thực thi

Sau bộ giải mã là một hàng hướng dẫn được giải mã và ở đây chúng ta thấy sự thay đổi đầu tiên. SB có hai hàng đợi gồm 28 mục - một hàng đợi cho mỗi luồng Siêu phân luồng ảo (HT). Trong Haswell, hai hàng đợi được kết hợp thành một hàng đợi chung cho hai luồng HT với 56 mục nhập, nghĩa là âm lượng của hàng đợi không thay đổi, nhưng khái niệm đã thay đổi. Bây giờ toàn bộ khối lượng 56 bản ghi có sẵn cho một luồng trong trường hợp không có giây - do đó, chúng ta có thể mong đợi sự gia tăng ở cả ứng dụng có luồng thấp và ứng dụng đa luồng (điều này là do thực tế là hai luồng có thể sử dụng một hàng đợi đơn hiệu quả hơn).

Bộ đệm sắp xếp lại cũng được thay đổi - tăng từ 168 lên 192 mục. Điều này sẽ cải thiện hiệu quả của HT do có nhiều khả năng có các uop “độc lập” với nhau hơn. Hàng đợi micro-op được giải mã đã tăng từ 54 lên 60. Các tệp thanh ghi vật lý xuất hiện trong SB cũng đã tăng - từ 160 lên 168 thanh ghi cho toán hạng số nguyên và từ 144 lên 168 cho toán hạng dấu phẩy động, phải có giá trị dương ảnh hưởng đến hiệu suất tính toán vectơ.

Hãy tóm tắt tất cả dữ liệu về những thay đổi trong bộ đệm và hàng đợi vào một bảng.

Về nguyên tắc, những thay đổi về tham số trong Haswell có vẻ khá được mong đợi, dựa trên logic chung trong quá trình phát triển kiến ​​trúc bộ xử lý Intel. Dựa trên logic tương tự, chúng ta có thể giả định rằng trong thế hệ Core tiếp theo, kích thước của bộ đệm và hàng đợi sẽ tăng không quá 14%, nghĩa là kích thước của bộ đệm sắp xếp lại sẽ vào khoảng 218. Nhưng đây hoàn toàn chỉ là lý thuyết giả định.

Theo sau hàng hoạt động được giải mã là các cổng kích hoạt và các thiết bị chức năng được gắn vào chúng. Ở giai đoạn này chúng ta sẽ nói chi tiết hơn.

Như chúng ta đã biết, Sandy Bridge có sáu cổng phóng được kế thừa từ Nehalem, sau đó là từ Conroe. Tức là, kể từ năm 2006, khi Intel bổ sung thêm hai cổng nữa vào bốn cổng có sẵn cho Pentium 4, số lượng cổng khởi chạy không thay đổi - chỉ có các thiết bị chức năng mới được thêm vào. Tuy nhiên, điều đáng nói là P4 có một loại kiến ​​trúc NetBurst nguyên bản, trong đó hai cổng của nó có thể thực hiện hai thao tác trong một chu kỳ xung nhịp (mặc dù không phải với tất cả các thao tác). Nhưng sẽ là chính xác nhất khi theo dõi sự phát triển của số lượng cổng khởi chạy không sử dụng ví dụ về P4 mà sử dụng ví dụ về PIII, vì P4 có một đường dẫn dài và các cổng khởi chạy có hiệu suất “gấp đôi” và bộ nhớ đệm theo dõi và toàn bộ kiến ​​trúc của nó khác biệt đáng kể so với kiến ​​trúc được chấp nhận chung. Và Pentium III rất gần với sơ đồ chức năng của các cổng khởi chạy đối với Conroe và cũng có một hộp chứa ngắn. Vì vậy, nhìn chung có thể nói Conroe là người kế thừa trực tiếp PIII. Dựa trên điều này, có thể khẳng định rằng năm 2006, chỉ có một cổng phóng được bổ sung so với PIII có năm cổng phóng.

Do đó, số lượng cổng khởi chạy đang tăng khá chậm và nếu có thêm cổng mới thì lần lượt từng cổng một. Haswell đã thêm hai cổng cùng một lúc, tạo ra tổng cộng tám cổng - chỉ một chút nữa thôi và chúng ta sẽ đến Itanium. Theo đó, Haswell cho thấy hiệu suất lý thuyết trên đường thực thi là 8 UOP/chu kỳ, trong đó 4 UOP dành cho các phép toán số học, 4 UOP còn lại dành cho các phép toán bộ nhớ. Hãy nhớ lại rằng Conroe/Nehalem/SB có 6 uops/chu kỳ: 3 uops cho các phép toán số học và 3 uops cho các phép toán bộ nhớ. Cải tiến này sẽ nâng cao điểm số IPC và do đó thực sự có những thay đổi rất nghiêm trọng trong kiến ​​trúc Haswell hoàn toàn chứng minh được vị trí của nó là “như vậy” trong kế hoạch phát triển của Intel.

Những thay đổi FU trong Haswell

Số lượng thiết bị truyền động cũng đã được tăng lên. Cổng thứ sáu (thứ bảy) mới đã bổ sung thêm hai bộ truyền động - một thiết bị dịch chuyển và số học số nguyên và một thiết bị dự đoán nhánh. Cổng thứ bảy (thứ tám) có nhiệm vụ dỡ địa chỉ.

Do đó, chúng tôi nhận được bốn đơn vị thực thi số học số nguyên, trong khi Sandy Bridge chỉ cung cấp cho chúng tôi ba đơn vị. Vì vậy, chúng ta có thể kỳ vọng tốc độ tính toán số nguyên sẽ tăng lên. Ngoài ra, về mặt lý thuyết, điều này sẽ cho phép chúng ta thực hiện đồng thời cả phép tính dấu phẩy động và số nguyên, do đó, có thể làm tăng hiệu quả của NT. Trong SB, các phép tính dấu phẩy động được thực hiện trên cùng các cổng nơi sử dụng các thiết bị hàm số nguyên, do đó, nhìn chung đã xảy ra tình trạng chặn, tức là bạn không thể có tải "không đồng nhất". Cũng cần lưu ý rằng việc thêm một bộ dự đoán nhánh bổ sung vào Haswell sẽ cho phép dự đoán nhánh mà không bị "chặn" trong quá trình tính toán số học - trước đây, trong quá trình tính toán số nguyên, bộ dự đoán nhánh đơn đã bị chặn, tức là có thể vận hành đơn vị thực thi số học hoặc người dự đoán. Cổng 0 và 1 cũng đã trải qua những thay đổi - hiện tại chúng hỗ trợ FMA3. Intel đã giới thiệu cổng thứ bảy (thứ tám) để tăng hiệu quả và loại bỏ "chặn" - khi cổng thứ hai và thứ ba đang hoạt động để tải xuống, cổng thứ bảy (thứ tám) có thể tham gia tải lên, điều này đơn giản là không thể trước đây. Giải pháp này là cần thiết để đảm bảo tốc độ thực thi cao của mã AVX/FMA3.

Nói chung, con đường điều hành rộng rãi như vậy có thể dẫn đến sự thay đổi trong HT - biến nó thành bốn luồng. Trong đồng bộ xử lý Intel Xeon Phi với đường dẫn thực thi HT hẹp hơn nhiều là bốn luồng, và như các nghiên cứu và thử nghiệm cho thấy, bộ đồng xử lý có quy mô khá tốt. Nghĩa là, về nguyên tắc, thậm chí một đường dẫn thực thi hẹp hơn cũng cho phép bạn làm việc hiệu quả với bốn luồng. Và một đường dẫn có tám cổng khởi chạy có thể chạy bốn luồng khá hiệu quả, hơn nữa, sự hiện diện của bốn luồng có thể tải tám cổng khởi chạy tốt hơn. Đúng, để có hiệu quả cao hơn, cần phải tăng bộ đệm (chủ yếu là bộ đệm sắp xếp lại) để có xác suất dữ liệu “độc lập” cao hơn.

Haswell cũng tăng gấp đôi thông lượng L1-L2, trong khi vẫn duy trì các giá trị độ trễ tương tự. Biện pháp này đơn giản là cần thiết, vì việc ghi 32 byte và đọc 16 byte sẽ không đủ nếu có tám cổng khởi chạy, cũng như AVX và FMA3 256-bit.

Cầu CátHaswell
L1i32k, 8 chiều32k, 8 chiều
L1d32k, 8 chiều32k, 8 chiều
Độ trễ4 biện pháp4 biện pháp
Tốc độ tải về32 byte/đồng hồ64 byte/đồng hồ
Tốc độ ghi16 byte/chu kỳ32 byte/đồng hồ
L2256k, 8 chiều256k, 8 chiều
Độ trễ11 thanh11 thanh
Băng thông giữa L2 và L132 byte/đồng hồ64 byte/đồng hồ
L1i TLB4k: 128, 4 chiều
2M/4M: 8/luồng
4k: 128, 4 chiều
2M/4M: 8/luồng
L1d TLB4k: 128, 4 chiều
2M/4M: 7/luồng
1G: 4, 4 chiều
4k: 128, 4 chiều
2M/4M: 7/luồng
1G: 4, 4 chiều
L2 TLB4k: 512, 4 chiềuChia sẻ 4k+2M: 1024, 8 chiều

TLB L2 đã được tăng lên 1024 mục và hỗ trợ cho các trang 2 megabyte đã xuất hiện. Sự gia tăng TLB L2 cũng kéo theo sự gia tăng khả năng kết hợp từ bốn lên tám.

Đối với bộ đệm cấp ba, tình huống với nó rất mơ hồ: trong bộ xử lý mới, độ trễ truy cập sẽ tăng do mất đồng bộ hóa, vì hiện tại bộ đệm L3 hoạt động ở tần số của chính nó chứ không phải ở tần số của lõi bộ xử lý, như trước đây. Mặc dù việc truy cập vẫn được thực hiện ở mức 32 byte trên mỗi chu kỳ xung nhịp. Mặt khác, Intel đang nói về những thay đổi đối với System Agent và cải tiến khối Load Balancer, khối này hiện có thể xử lý song song nhiều yêu cầu bộ đệm L3 và tách chúng thành các yêu cầu dữ liệu và phi dữ liệu. Điều này sẽ làm tăng thông lượng của bộ đệm L3 (một số thử nghiệm xác nhận điều này, băng thông bộ đệm L3 cao hơn IB một chút).

Nguyên lý hoạt động của bộ đệm L3 trong Haswell có phần giống với Nehalem. Ở Nehalem, bộ đệm L3 được đặt trong Uncore và có tần số cố định riêng, trong khi ở SB, bộ đệm L3 được gắn với các lõi bộ xử lý - tần số của nó bằng tần số của các lõi bộ xử lý. Do đó, các vấn đề đã nảy sinh - ví dụ: khi lõi bộ xử lý hoạt động ở tần số giảm khi không tải (và LLC "ngủ quên") và GPU cần PS LLC cao. Nghĩa là, giải pháp này đã hạn chế hiệu suất của GPU và cũng yêu cầu các lõi bộ xử lý phải được đưa ra khỏi trạng thái không hoạt động chỉ để đánh thức LLC. Trong bộ xử lý mới, để cải thiện tình trạng tiêu thụ điện năng và tăng hiệu suất của GPU trong các tình huống được mô tả ở trên, bộ đệm L3 hoạt động ở tần số riêng của nó. Các giải pháp dành cho thiết bị di động thay vì máy tính để bàn sẽ được hưởng lợi nhiều nhất từ ​​giải pháp này.

Điều đáng chú ý là kích thước bộ đệm có sự phụ thuộc nhất định. Bộ đệm cấp ba là hai megabyte mỗi lõi, bộ đệm cấp hai là 256 KB, ít hơn tám lần so với dung lượng L3 trên mỗi lõi. Dung lượng của bộ nhớ đệm cấp một lại nhỏ hơn L2 8 lần và là 32 KB. Bộ đệm uop hoàn toàn phù hợp với sự phụ thuộc này: khối lượng 1536 uops của nó nhỏ hơn 7-9 lần so với L1 (không thể xác định chính xác điều này, vì kích thước bit của uop không xác định và Intel khó có thể mở rộng về chủ đề này ). Đổi lại, bộ đệm sắp xếp lại 168 uops nhỏ hơn chính xác tám lần so với bộ đệm uop 1536 uops, mặc dù, dựa trên sự gia tăng rộng rãi của bộ đệm và hàng đợi, người ta có thể mong đợi bộ đệm uop tăng 14%, nghĩa là, lên tới 1776. Do đó, khối lượng bộ đệm và bộ đệm có kích thước tỷ lệ thuận. Đây có lẽ là một lý do khác khiến Intel không tăng bộ nhớ đệm L1/L2, coi những tỷ lệ như vậy về mặt khối lượng là hiệu quả nhất trong việc tăng hiệu suất trên mỗi lần tăng diện tích. Điều đáng chú ý là các bộ xử lý có lõi đồ họa cao cấp tích hợp có bộ nhớ nhanh trung bình với bus truy cập rộng, lưu trữ tất cả các yêu cầu vào RAM - cả bộ xử lý và bộ tăng tốc video. Dung lượng của bộ nhớ này là 128 MB. Đối với lõi bộ xử lý, nếu chúng ta coi bộ nhớ này là bộ đệm L4, thì dung lượng phải là 64 megabyte và với việc bổ sung lõi đồ họa, việc sử dụng 128 MB có vẻ khá hợp lý.

Đối với bộ điều khiển bộ nhớ, nó không nhận được sự tăng số lượng kênh cũng như không tăng tần số hoạt động của RAM, tức là nó vẫn là bộ điều khiển bộ nhớ tương tự với quyền truy cập kênh đôi ở tần số 1600 MHz. Quyết định này có vẻ khá kỳ lạ, vì việc chuyển đổi từ SB sang IB đã tăng tần số hoạt động của ICP từ 1333 MHz lên 1600 MHz, mặc dù đây chỉ là sự chuyển đổi kiến ​​trúc sang quy trình kỹ thuật mới. Và bây giờ chúng ta có kiến ​​trúc mới, trong khi tần suất hoạt động của bộ nhớ vẫn ở mức cũ.

Điều này thậm chí còn lạ hơn nếu chúng ta nhớ lại những cải tiến trong lõi đồ họa - xét cho cùng, chúng ta nhớ rằng ngay cả card màn hình HD2500 cấp thấp trong IB cũng sử dụng hoàn toàn băng thông 25 GB/s. Giờ đây, cả hiệu suất CPU và hiệu suất đồ họa đều tăng lên, trong khi băng thông bộ nhớ vẫn ở mức tương tự. Ở quy mô rộng hơn, đối thủ cạnh tranh không ngừng tăng băng thông bộ nhớ trong các APU của mình và cao hơn Intel. Sẽ là hợp lý khi mong đợi Haswell hỗ trợ bộ nhớ có tần số 1866 MHz hoặc 2133 MHz, điều này sẽ tăng băng thông tương ứng lên 30 và 34 GB/s.

Do đó, quyết định này của Intel không hoàn toàn rõ ràng. Đầu tiên, đối thủ cạnh tranh giới thiệu hỗ trợ bộ nhớ nhanh hơn mà không gặp vấn đề gì. Thứ hai, giá thành của các mô-đun bộ nhớ hoạt động ở tần số 1866 MHz không cao hơn nhiều so với các mô-đun 1600 MHz và bên cạnh đó, không ai bắt buộc phải mua bộ nhớ 1866 MHz - sự lựa chọn sẽ tùy thuộc vào người dùng. Thứ ba, không thể có bất kỳ vấn đề nào với việc hỗ trợ không chỉ 1866 MHz mà còn cả 2133 MHz: kể từ khi Haswell ra mắt, các kỷ lục thế giới về ép xung RAM đã được thiết lập, nghĩa là IKP sẽ có thể xử lý bộ nhớ nhanh hơn mà không cần có vấn đề gì không. Thứ tư, dòng máy chủ Xeon E5-2500 V2 (Ivy Bridge-EP) tuyên bố hỗ trợ 1866 MHz, nhưng Intel thường triển khai hỗ trợ nhiều hơn tiêu chuẩn nhanh bộ nhớ ở thị trường này muộn hơn nhiều so với các giải pháp dành cho máy tính để bàn.

Về nguyên tắc, người ta có thể cho rằng trong trường hợp không có sự cạnh tranh, Intel không cần phải “cứ như thế” xây dựng cơ bắp và tăng thêm tính ưu việt của mình, nhưng giả định này hoàn toàn không chính xác, vì việc tăng băng thông bộ nhớ, theo quy luật, sẽ tăng lên. hiệu năng của nhân đồ họa tích hợp và hầu như không làm tăng hiệu năng xử lý. Đồng thời, Intel vẫn thua xa AMD về hiệu năng đồ họa và những năm trước Bản thân Intel ngày càng chú ý nhiều hơn đến đồ họa và tốc độ cải thiện của nó cũng cao hơn nhiều so với lõi xử lý. Ngoài ra, nếu dựa vào kết quả thử nghiệm nhân đồ họa tích hợp của HD4000 thế hệ trước, kết quả cho thấy việc tăng băng thông bộ nhớ dẫn đến hiệu suất đồ họa tăng tới 30%, đồng thời cũng tính đến việc Nhân đồ họa HD4600 nhanh hơn đáng kể so với HD4000, khi đó sự phụ thuộc vào hiệu suất nhân đồ họa vào PSP càng trở nên rõ ràng hơn. Nhân đồ họa mới sẽ càng bị hạn chế hơn bởi băng thông bộ nhớ “hẹp”. Tóm lại tất cả sự thật, quyết định của Intel là hoàn toàn không thể hiểu nổi: bản thân công ty đã “bóp nghẹt” đồ họa của mình, nhưng việc tăng băng thông có thể cải thiện hiệu suất của nó.

Quay trở lại kiến ​​trúc của bộ đệm, chúng ta hãy bỏ qua một suy nghĩ: vì bộ đệm trung gian (bộ đệm lau) đã được thêm vào, vậy tại sao không thêm bộ đệm dữ liệu trung gian có kích thước khoảng 4-8 KB và có quyền truy cập thấp hơn độ trễ giữa bộ đệm L1d và các thiết bị điều hành, như từ P4 (vì khái niệm bộ đệm uop được lấy từ Netburst)? Hãy nhớ lại rằng trong P4, bộ đệm dữ liệu trung gian này có thời gian truy cập là hai chu kỳ xung nhịp và một chu kỳ P4 bằng khoảng 0,75 chu kỳ xung nhịp của bộ xử lý thông thường, nghĩa là thời gian truy cập là khoảng một chu kỳ rưỡi xung nhịp. Tuy nhiên, có thể chúng ta sẽ lại thấy điều gì đó tương tự - Intel rất thích nhớ lại những điều cũ đã bị lãng quên.

Như bạn có thể thấy, Intel nhắm đến hầu hết các thay đổi về kiến ​​trúc nhằm tăng hiệu suất của mã AVX/FMA3: điều này bao gồm việc tăng thông lượng bộ nhớ đệm, tăng số lượng cổng và tăng tốc độ tải lên/tải trong đường thực hiện. Do đó, hiệu suất tăng chính sẽ đến từ phần mềm được viết bằng AVX/FMA3. Về nguyên tắc, đánh giá qua kết quả kiểm tra, có vẻ như đúng như vậy. Hiệu suất khô ở cùng tần số trong các ứng dụng “cũ” nhận được mức tăng khoảng 10% so với lõi trước đó và các ứng dụng được viết bằng bộ hướng dẫn mới cho thấy mức tăng hơn 30%. Vì vậy, lợi ích của kiến ​​trúc Haswell sẽ được bộc lộ khi các ứng dụng được tối ưu hóa cho các tập lệnh mới. Đó là lúc sự vượt trội của Haswell so với SB sẽ trở nên rõ ràng.

Lợi ích chính từ một phần đáng kể của những đổi mới sẽ là thiêt bị di động. Họ sẽ được trợ giúp bằng cách tiếp cận mới đối với bộ đệm L3, bộ điều chỉnh điện áp tích hợp, chế độ ngủ mới và tần số hoạt động tối thiểu thấp hơn của lõi bộ xử lý.

Kết luận (phần xử lý)

Bạn có thể mong đợi điều gì từ Haswell?

Do số lượng cổng khởi chạy tăng lên, chúng ta có thể mong đợi IPC sẽ tăng lên, do đó kiến ​​trúc Haswell mới sẽ có lợi thế hơn một chút so với Sandy Bridge ở cùng tần số ngay cả bây giờ, ngay cả với phần mềm chưa được tối ưu hóa. Các lệnh AVX2/FMA3 là nền tảng cho tương lai và tương lai đó phụ thuộc vào các nhà phát triển phần mềm: họ điều chỉnh ứng dụng của mình càng nhanh thì người dùng cuối sẽ thấy hiệu suất tăng càng nhanh. Tuy nhiên, bạn không nên mong đợi sự tăng trưởng ở mọi thứ và ở mọi nơi: Các lệnh SIMD chủ yếu được sử dụng khi làm việc với dữ liệu đa phương tiện và trong các tính toán khoa học, do đó, nên mong đợi sự tăng trưởng hiệu suất trong các tác vụ này. Lợi ích chính từ việc tăng hiệu quả sử dụng năng lượng sẽ nằm ở các hệ thống di động, nơi vấn đề này thực sự quan trọng. Như vậy, có hai hướng chính trong đó kiến trúc mới Intel Haswell được hưởng lợi đáng kể - nó tăng hiệu suất SIMD và tăng hiệu quả sử dụng năng lượng.

Về khả năng ứng dụng của bộ xử lý Haswell mới, cần kiểm tra một số tùy chọn khác nhau cho ứng dụng của chúng: trong máy tính để bàn, trong máy chủ, trong giải pháp di động, dành cho game thủ, dành cho người ép xung.

Máy tính để bàn

Tiêu thụ điện năng không phải là khía cạnh quan trọng đối với bộ xử lý máy tính để bàn, vì vậy ngay cả ở châu Âu với nguồn điện đắt đỏ, khó có ai sẽ chuyển sang Haswell từ các thế hệ trước chỉ vì điều này. Hơn nữa, TDP của Haswell cao hơn IB nên mức tiết kiệm sẽ chỉ trong trường hợp tải tối thiểu. Khi câu hỏi được đặt ra theo cách này, không còn nghi ngờ gì nữa - nó không đáng.

Từ quan điểm hiệu suất, quá trình chuyển đổi cũng không giống như một thỏa thuận mang lại lợi nhuận: tốc độ tăng tối đa trong các tác vụ của bộ xử lý giờ đây sẽ không quá 10%. Việc chuyển sang Haswell từ Sandy Bridge hoặc Ivy Bridge sẽ chỉ hợp lý nếu bạn dự định sử dụng các ứng dụng có hỗ trợ phù hợp cho FMA3 và AVX2: Hỗ trợ FMA3 có thể giúp tăng tốc độ của một số ứng dụng từ 30% lên 70%. Những cải tiến liên quan đến ảo hóa và triển khai bộ nhớ giao dịch ít được quan tâm và sử dụng cho máy tính để bàn.

Máy chủ và máy trạm

Xét rằng các máy chủ hoạt động liên tục 24 giờ một ngày và có tải không đổi khá cao trên bộ xử lý, Haswell khó có thể tốt hơn IB về mức tiêu thụ điện năng thuần túy, mặc dù nó có thể mang lại một số lợi ích về hiệu suất trên mỗi watt. Hỗ trợ AVX2/FMA3 dường như không hữu ích trong các máy chủ, nhưng trong các máy trạm liên quan đến tính toán khoa học, sự hỗ trợ này sẽ rất rất hữu ích - nhưng chỉ khi các hướng dẫn mới được hỗ trợ trong phần mềm được sử dụng. Bộ nhớ giao dịch là một thứ khá hữu ích, nhưng không phải lúc nào cũng vậy: nó có thể giúp tăng cường các chương trình đa luồng và các chương trình làm việc với cơ sở dữ liệu, nhưng tối ưu hóa phần mềm cũng cần thiết để sử dụng hiệu quả.

Nhưng tất cả những cải tiến liên quan đến ảo hóa rất có thể sẽ có tác dụng tốt, vì môi trường ảo hiện được sử dụng rất tích cực và hầu hết các máy chủ vật lý đều có một số máy chủ ảo. Hơn nữa, sự phổ biến của ảo hóa được giải thích không chỉ bằng việc giảm đáng kể chi phí của môi trường ảo về mặt hiệu suất mà còn bởi hiệu quả kinh tế: việc duy trì nhiều máy chủ ảo trên một máy chủ vật lý sẽ rẻ hơn và cho phép hoạt động hiệu quả hơn. sử dụng tài nguyên, bao gồm cả tài nguyên bộ xử lý.

Vì vậy, sự xuất hiện của Haswell sẽ được chào đón tích cực trên thị trường máy chủ. Sau khi thay đổi máy chủ dựa trên Xeon E3-1200v1 và Xeon E3-1200v2 sang máy chủ Xeon E3-1200v3 (Haswell), bạn sẽ ngay lập tức nhận được sự gia tăng hiệu quả và sau khi tối ưu hóa phần mềm cho AVX2/FMA3 và bộ nhớ giao dịch, hiệu suất sẽ tăng lên thậm chí nhiều hơn nữa.

Giải pháp di động

Tất nhiên, lợi ích chính từ việc giới thiệu Haswell trong phân khúc di động nằm ở lĩnh vực cải thiện mức tiêu thụ điện năng. Đánh giá qua các bài thuyết trình của Intel, cũng như các kết quả thử nghiệm đã xuất hiện trên Internet, thực sự có một hiệu ứng và một hiệu ứng đáng chú ý.

Đối với hiệu suất thuần túy, việc chuyển đổi từ Ivy Bridge sang Haswell dường như không phải là một công việc hợp lý: mức tăng ròng sẽ tương đối nhỏ và những cải tiến trong các thành phần riêng lẻ (cùng hướng dẫn ảo hóa hoặc đa phương tiện) khó có thể mang lại nhiều lợi ích cho người dùng hệ thống di động, vì Máy tính xách tay và máy tính bảng hiếm khi được sử dụng để tạo môi trường hoặc thực hiện các phép tính khoa học phức tạp.

Nói chung, về hiệu năng của bộ xử lý, bạn không nên mong đợi nhiều, nhưng ở hệ thống di động Chắc chắn sẽ có nhu cầu tăng hiệu suất lõi đồ họa. Do đó, nếu vấn đề tiêu thụ năng lượng không quá quan trọng đối với bạn thì bạn không nên nghiêm túc xem xét việc nâng cấp từ Sandy Bridge hoặc Ivy Bridge - tốt hơn hết là bạn nên tiếp tục vận hành các hệ thống hiện có cho đến khi chúng trở nên lỗi thời hoàn toàn. Nếu bạn thường xuyên làm việc bằng pin thì Haswell có thể giúp tăng tuổi thọ pin đáng kể.

Game thủ

Theo quy luật, vấn đề tiêu thụ năng lượng của các game thủ ở Nga không phải là vấn đề - và tại sao lại như vậy khi card màn hình chơi game tiêu thụ 200 watt trở lên? Game thủ cũng không cần ảo hóa và bộ nhớ giao dịch. Thực tế không phải là AVX2/FMA3 sẽ được yêu cầu đặc biệt cho các trò chơi, mặc dù chúng có thể hữu ích trong tính toán vật lý. Những gì còn lại là hiệu suất thuần túy của bộ xử lý và ở đây, sự khác biệt với Ivy Bridge tương tự là rất nhỏ. Do đó, đối với nhóm người dùng này, việc chuyển đổi trực tiếp từ SB hoặc IB sang Haswell dường như cũng không phù hợp. Nhưng thật hợp lý khi chuyển sang bộ xử lý mới của Nehalem và Lynifield, và thậm chí còn hơn thế nữa từ Conroe.

Người ép xung

Đối với những người ép xung, bộ xử lý mới (nhưng tất nhiên chỉ có phiên bản K “đã mở khóa” của nó) có thể rất thú vị, đặc biệt nếu có thể “làm sạch” nó, tức là tháo vỏ kim loại và làm mát tinh thể trực tiếp. Nếu điều này không được thực hiện thì kết quả ép xung thậm chí còn khiêm tốn hơn so với Ivy Bridge. Thêm vào đó, bộ điều chỉnh điện áp tích hợp có thể là một yếu tố hạn chế. Đọc thêm về điều này

Với mỗi thế hệ mới, bộ xử lý Intel ngày càng kết hợp nhiều công nghệ và chức năng hơn. Một số người trong số họ rất nổi tiếng (chẳng hạn như ai không biết về siêu phân luồng?), trong khi hầu hết những người không chuyên thậm chí còn không biết về sự tồn tại của những người khác. Hãy mở cơ sở kiến ​​thức nổi tiếng về các sản phẩm Cơ sở tri thức quan hệ tự động (ARK) của Intel và chọn bộ xử lý ở đó. Chúng ta sẽ thấy một danh sách khổng lồ các tính năng và công nghệ - điều gì đằng sau những cái tên tiếp thị bí ẩn của chúng? Chúng tôi khuyên bạn nên đi sâu vào vấn đề, đặc biệt chú ý đến những công nghệ ít được biết đến - chắc chắn sẽ có rất nhiều điều thú vị ở đó.

Chuyển đổi dựa trên nhu cầu của Intel

Phối hợp với Công nghệ Intel SpeedStep nâng cao, công nghệ intel Chuyển mạch dựa trên nhu cầu có trách nhiệm đảm bảo rằng tại mọi thời điểm, dưới tải hiện tại, bộ xử lý hoạt động ở tần số tối ưu và nhận đủ năng lượng điện: không nhiều hơn và không ít hơn mức yêu cầu. Điều này giúp giảm mức tiêu thụ điện năng và tản nhiệt, điều này quan trọng không chỉ đối với các thiết bị di động mà còn đối với máy chủ - đây là nơi sử dụng Chuyển mạch dựa trên nhu cầu.

Truy cập bộ nhớ nhanh Intel

Chức năng điều khiển bộ nhớ để tối ưu hóa công việc với RAM. Nó là sự kết hợp của các công nghệ cho phép, thông qua phân tích chuyên sâu về hàng đợi lệnh, xác định các lệnh “chồng chéo” (ví dụ: đọc từ cùng một trang bộ nhớ), sau đó sắp xếp lại việc thực thi thực tế sao cho các lệnh “chồng chéo” được lần lượt được thực hiện. Ngoài ra, việc ghi vào bộ nhớ có mức độ ưu tiên thấp hơn được lên lịch vào những thời điểm mà hàng đợi đọc được dự đoán là trống, khiến quá trình ghi bộ nhớ thậm chí còn ít bị hạn chế hơn về tốc độ đọc.

Truy cập bộ nhớ linh hoạt Intel

Một chức năng khác của bộ điều khiển bộ nhớ, xuất hiện từ thời nó còn là một con chip riêng biệt, vào năm 2004. Cung cấp khả năng hoạt động đồng thời với hai mô-đun bộ nhớ và ngược lại với chế độ đơn giản chế độ kênh đôi, đã tồn tại trước đó, các mô-đun bộ nhớ có thể kích cỡ khác nhau. Bằng cách này, tính linh hoạt đã đạt được trong việc trang bị bộ nhớ cho máy tính, điều này được phản ánh qua tên gọi.

Phát lại hướng dẫn Intel

Một công nghệ rất sâu lần đầu tiên xuất hiện trong bộ xử lý Intel Itanium. Trong quá trình vận hành các đường ống bộ xử lý, có thể xảy ra tình huống khi các lệnh đã được thực thi nhưng vẫn chưa có dữ liệu cần thiết. Sau đó, hướng dẫn cần phải được “phát lại”: loại bỏ khỏi băng tải và chạy từ đầu. Đó chính xác là những gì đang xảy ra. Một cái khác chức năng quan trọng IRT – hiệu chỉnh lỗi ngẫu nhiên trên các đường ống xử lý. Đọc thêm về tính năng rất thú vị này.

Công nghệ WiFi của tôi Intel

Công nghệ ảo hóa cho phép bạn thêm Wi-Fi ảo bộ chuyển đổi vật lý hiện có; do đó, ultrabook hoặc máy tính xách tay của bạn có thể trở thành một điểm truy cập hoặc bộ lặp chính thức. Các thành phần phần mềm WiFi của tôi được bao gồm trong trình điều khiển Phần mềm Không dây Intel PROSet phiên bản 13.2 trở lên; Cần lưu ý rằng chỉ một số bộ điều hợp WiFi tương thích với công nghệ này. Bạn có thể tìm thấy hướng dẫn cài đặt cũng như danh sách khả năng tương thích phần mềm và phần cứng trên trang web của Intel.

Công nghệ nhàn rỗi thông minh Intel

Một công nghệ tiết kiệm năng lượng khác. Cho phép bạn vô hiệu hóa các khối bộ xử lý hiện không sử dụng hoặc giảm tần suất của chúng. Một thứ không thể thiếu đối với CPU điện thoại thông minh, chính xác là nơi nó xuất hiện - trong bộ xử lý Intel Atom.

Nền tảng hình ảnh ổn định của Intel

Một thuật ngữ đề cập đến quy trình kinh doanh hơn là công nghệ. Chương trình Intel SIPP đảm bảo độ ổn định của phần mềm bằng cách đảm bảo rằng các thành phần và trình điều khiển nền tảng cốt lõi không thay đổi trong ít nhất 15 tháng. Như vậy, khách hàng doanh nghiệp có cơ hội sử dụng các hình ảnh hệ thống đã triển khai tương tự trong giai đoạn này.

Hỗ trợ nhanh Intel

Đặt bằng phần cứng chức năng thực hiện, đòi hỏi số lượng tính toán lớn, ví dụ: mã hóa, nén, nhận dạng mẫu. Mục đích của QuickAssist là giúp mọi việc trở nên dễ dàng hơn đối với các nhà phát triển bằng cách cung cấp cho họ các khối xây dựng chức năng và tăng tốc ứng dụng của họ. Mặt khác, công nghệ cho phép bạn giao phó các tác vụ “nặng” cho không phải bộ xử lý mạnh nhất, điều này đặc biệt có giá trị trong các hệ thống nhúng bị hạn chế nghiêm trọng cả về hiệu suất và mức tiêu thụ điện năng.

Tiếp tục nhanh Intel

Công nghệ được phát triển cho máy tính dựa trên Nền tảng Intel Viiv, cho phép chúng bật và tắt gần như ngay lập tức, giống như đầu thu TV hoặc đầu DVD; đồng thời, ở trạng thái “tắt”, máy tính có thể tiếp tục thực hiện một số tác vụ mà không cần sự can thiệp của người dùng. Và mặc dù bản thân nền tảng này đã chuyển đổi suôn sẻ sang các hình thức khác cùng với những phát triển đi kèm với nó, dòng này vẫn hiện diện trong ARK, bởi vì nó cách đây không lâu.

Khóa bảo mật Intel

Tên chung cho các lệnh RDRAND 32 và 64 bit sử dụng triển khai phần cứng của Bộ tạo số ngẫu nhiên kỹ thuật số (DRNG). Hướng dẫn này được sử dụng cho mục đích mã hóa để tạo ra các khóa ngẫu nhiên đẹp và chất lượng cao.

Intel TSX-NI

Công nghệ có tên phức tạp Tiện ích mở rộng đồng bộ hóa giao dịch Intel - Hướng dẫn mới ngụ ý một tiện ích bổ sung cho hệ thống bộ nhớ đệm của bộ xử lý giúp tối ưu hóa môi trường thực thi của các ứng dụng đa luồng, nhưng tất nhiên chỉ khi các ứng dụng này sử dụng giao diện lập trình TSX-NI. Từ phía người dùng công nghệ này không hiển thị trực tiếp nhưng bất kỳ ai cũng có thể đọc mô tả của nó bằng ngôn ngữ dễ tiếp cận trên blog của Stepan Koltsov.

Tóm lại, chúng tôi muốn nhắc bạn một lần nữa rằng Intel ARK không chỉ tồn tại dưới dạng trang web mà còn tồn tại dưới dạng ứng dụng ngoại tuyến dành cho iOS và Android. Ở lại chủ đề!