Mục lục
Giới thiệu .2
Giới thiệu chungCác thông số chínhLịch sử
Kiến trúc .7
Sơ đồ chungCác thành phần và thông số chínhKiến trúc tập lệnh
Đặc tính – Công nghệ .17
Công nghệ thuật toán song songCông nghệ siêu phân luồngChức năng đa phương tiệnThanh ghi cải tiến tập tinFloating-Point ứng dụng kỹ thuật chuyên sâuModulo theo dự kiến vòng lặp PipelinesNhững cải tiến về nhánhĐộ trễ bộ nhớ giảm
Tổng kết – Đánh giá hiệu năng .28Nguồn – Trích dẫn 30
Giới thiệu
Giới thiệu chung
Itanium là bộ xử lý 64 bit đầu tiên của Intel được xuất xưởng đúng 10 năm trước để cạnh tranh với nền tảng RISC đang thống trị thị trường máy chủ doanh nghiệp thời kỳ đó. Hợp tác cùng HP đưa ra thị trường dòng CPU dùng cho máy chủ trung và lớn. Với tham vọng lật đổ nền tảng RISC đồng thời nắm gọn thị trường vi xử lý, itanium được coi như một huyền thoại của intel. 10 năm phát triển từ itanium tới itanium-2 với nhiều cải tiến vượt bậc, và cũng vô vàn khó khăn.
Itanium 2 là bộ xử lý thứ 2 thuộc dòng Itanium, các máy chủ và máy trạm chạy Itanium 2 có tốc độ nhanh gấp 2 lần những hệ thống chạy Itanium hiện hành. Bộ xử lý Itanium 2 hỗ trợ giao dịch khối lượng lớn, tính toán phức tạp. Điểm đáng lưu ý là các chip Itanium 2 đều xử lý ứng dụng 64 bit.
Itanium 2 9000 series là dòng vi xử lý được Intel Itanium phát triển dưới codename Monecito, đưa ra vào ngày 18 tháng 7 năm 2006. Vi xử lý Monecito, dựa trên công nghệ 90nm, có
xung nhịp 1,6 GHz tốc độ FSB 667 MHz với bộ nhớ đệm 3 MB. EPIC cải thiện thông lượng lệnh song song. Với công nghệ EPIC, bộ xử lý bớt đi được gánh nặng phải nhận dạng các cơ hội xử lý song song giúp Itanium 2 đạt mức băng thông xử lý dữ liệu 6G/s.
Các thông số chính
Codename: MonecitoProcess: 90nmClock: 1.4 – 1.6 GHzL2 Cache: 256 kB + 1 MBL3 Cache: 6-25 MBBus: 400/533 MHzCores: 2Watts/device: 104Support: Virtualization, Multithread, no HW IA-32
34 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2840 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Vi xử lý intel itanium 9000, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Bộ nhớ cache cao, cùng với Hyper-Threading (HT), tính năng cung cấp tăng gấp hai lần hiệu suất của bộ xử lý lõi kép so với các dòng trước đó.
Dual Core là gì và tại sao sử dụng Dual Core với Monecito ?
Dual-core ( Lõi kép) là một kiến trúc mà một CPU với 2 nhân xử lý hoàn chỉnh trong một vi xử lý. Hai nhân này, cache của chúng và các bộ điều khiển cache đều được tích hợp vào cùng một IC. Chúng đều có thể được coi là 2 vi xử lý mà làm việc cùng nhau nhằm giúp mỗi bên trong quá trình xử lý và thi hành.
Có nhiều điểm phân biệt giữa Dual-core và Dual-core CPU. Dual-core là khái niệm dùng để chỉ 2 nhân riêng biệt mà được đặt cùng nhau trong một chip. Còn Dual-processor là khái niệm để chỉ việc sử dụng 2 vi xử lý, không nhất thiết trên cùng một chip, thậm chí có thể không cùng trên 1 mainboard.
Có nhiều lý do giải thích việc dual-core đang phổ biến hiện nay, thực tế là khá thành công. Một số người nói nó là sự san bằng đường cong của clock speed mà đã buộc AMD và Intel phải chịu thua trước công nghệ này. Rào chắn clock speed đã bị đánh bại bởi hai người khổng lồ trong lĩnh vực microprocessor và họ đã chọn một lộ trình thay thế cho hiệu năng tiên tiến hơn, để “ thật hài long với việc ra những sản phẩm mới.”
Vấn đề với việc đẩy clock speed lên rất cao là nhiệt năng toả ra. Xung nhịp đồng hồ cao dẫn đến nhiệt năng toả ra lớn, điều này gây ra vô số ảnh hưởng xấu. Nguồn nhiệt năng này phát ra do sự tiêu hao của nguồn điện. Vận hành một vi xử lý tại một xung nhịp cao yêu cầu một lượng khổng lồ điện năng chạy quanh các vi mạch, làm chúng dễ bị ảnh hưởng gây nhiễu. Từ lúc những mạch kẻ trên vi xử lý được đặt trong khoảng cách cực nhỏ, sự rò rỉ điện từ mạch kẻ này sang mạch khác có thể huỷ hoại toàn bộ dữ liệu trên mạch kẻ đó. Những dữ liệu bị huỷ hoại này là nguyên nhân gây ra các lỗi.
Một vi xử lý lõi kép là sự kết hợp của vi xử lý 1 lõi và hệ thống 2 nhân. “Một vi xử lý lõi kép sẽ không nhanh gấp đôi vi xử lý 1 nhân hay ngang hệ thống 2 nhân.” Hiệu năng của lõi kép sẽ nằm giữa 2 hệ thống đó, nhưng nó chắc chắn tốt hơn là vi xử lý 1 nhân. Khi có tới 2 hệ thống ống lệnh thì 2 lệnh hoàn toàn được xử lý song song. Ngoài ra, 2 cache của 2 vi xử lý cho phép xử lsy nhiều dữ liệu hơn trên mạch nhằm đẩy tốc độ truy cập. Vấn đề duy nhất là 2 vi xử lý phải chia sẻ cùng một hệ thống bus và bộ nhớ, đây cũng chính là 1 trong nhiều trở ngại của vi xử lý lõi kép.
Kết luận, công nghệ lõi kép cung cấp hiệu năng lớn hơn nhiều so với vi xử lý 1 nhân. Nó mang lại nhiều lợi ích, đặc biệt với những người mong muốn vận hành nhiều công việc 1 lúc. Vi xử lý lõi kép mang lại cho các nhà sản xuất một cách không quá đắt để đưa ra những sản phẩm có năng suất cao.
Sơ đồ khối
Các thành phần và thông số chính
So sánh giữa Monecito và Madison
Madison
Monecito
Công Nghệ
130nm
90nm
Số lượng nhân
1
2
Tần số đồng hồ
1600MHz
1600MHz
Số đơn vị INT
6
6
Số đơn vị MM
6
6
Số đơn vị FP
2(*,+)
2(*,+)
Số đơn vị ADDR
2L+2S or 4L
2L+2S or 4L
Cache L1
16/16KB
16/16KB
Cache L2
256KB
1MB/256KB
Cache L3
9MB
24MB ngay trên mạch kẻ
Hệ thống BUS
-Tần số
-Độ rộng
6.4GB/s
- 400MHz
- 128 bit
8.5GB/s
- 533MHz
- 128 bit
Là vi xử lý đầu tiên chứa tới 1.72 tỷ transistor
• Phần cứng rộng, song song cho năng suất cao:Itanium chứa 128 thanh ghi tổng quát và 128 thanh ghi số thực dấu phẩy động luân phiên hỗ trợ. Ngoài ra, một công cụ ngăn xếp được sử dụng để cải tiến quản lý việc xử lý tài nguyên. Một tính năng được giới thiệu trong Itanium 2 là sự hỗ trợ của việc suy đoán giúp cải thiện hiệu suất xử lý.
• Bus hệ thống băng thông cao:Bộ xử lý sử dụng băng thông 8,53 GB/s. Nó có một bus dữ liệu 128-bit (64 bit dành riêng cho mỗi lõi). Nó cũng cung cấp 50-bit địa chỉ vật lý và 64-bit địa chỉ ảo.
• Tính năng hỗ trợ các môi trường nền tảng linh hoạt:Một lớp thực hiện IA-32 là có sẵn trong Itanium 2 để hỗ trợ cho các ứng dụng trên IA-32.
• Thông số kỹ thuật sơ đồ chân:Intel Itanium 2 có 611 chân được sử dụng cho đầu vào, đầu ra, hoặc cả hai đầu vào ra.
Cấu trúc bộ nhớBộ nhớ cache của Itanium 2 có 3 cấp độ. Bộ nhớ cache L1 có dung lượng 16KB dành cho tập lệnh và dữ liệu. Bộ nhớ cache L2 có dung lượng 256KB dành cho cả tập lệnh và dữ liệu. L3 khoảng từ 1,5 MB đến 24MB. Bus Itanium 2, có khả năng mở rộng cổng, có khả năng thay đổi 2x128 bit trên mỗi nhịp đồng hồ lên 533 MHz (chuyển tải 17,056 GB / s).
L1l
L1D
L2
L3
Size
16K
16K
256K
1.5/3/6M/9M on die
Line size
64B
64B
128B
128B
Ways
4
4
8
12
Replacement
LRU
NRU
NRU
NRU
Latency (Load to use)
I-Fetch:1
INT:1
INT:5
INT: 6
12/13
Write Policy
-
WT (RA)
WB(WA +RA)
WB (WA)
Bandwith
R: 32GBs
R: 16GBs
W:16GBs
R:32GBs
W:32GBs
R:32GBs
W:32GBs
Kiến trúc tập lệnh
Itanium là dòng chip tiên phong của intel trong nền tảng IA-64 Kiến trúc IA-64 giới thiệu một sự khởi đầu mới quan trọng của kỹ thuật siêu vô hướng - kỹ thuật xử lý lệnh song song . Itanium 9000 được tích hợp các tập các tập lệnh MMX, SSE, SSE2 tăng cường khả năng xử lý về số học hình ảnh đa phương tiện.
Tập lệnh MMX:
Mục đích chính của MMX là nâng cao hiệu quả xử lý các lệnh lặp về âm thanh, hình ảnh và đồ họa. Máy đạt được điều này phần nào do một dòng lệnh đơn có thể xử lý đồng thời một số mục dữ liệu. Công nghệ MMX bao gồm 8 thanh ghi từ MM0 đến MM7, tích hợp 4 kiểu dữ liệu kiểu bye kiểu word, kiểu doubleword và quadword, và các tập lệnh MMX.
Các tập lệnh MMX bao gồm các nhóm lệnh cơ bản
Lệnh truyền dữ liệu
Lệnh số học
Lệnh so sánh
Lệnh chuyển đổi
Lệnh logic
Bão hòa số học và chế độ bao quanh
MMX hỗ trợ khả năng tinh toán số học mới được gọi là chế độ bão hòa số học. Có nghĩa là kết quả của phép tính được đặt trong một phạm vi giới hạn giữa giá trị tối đa và giá trị tối thiểu. Ví dụ với một phép tính khi kết quả trả về vượt quá giá trị kiểu bye khai báo ban đầu nó sẽ được mặc định về 127 với giá trị lớn hơn 127 hoặc -128 với kết quả nhỏ hơn 128. Xét về tính toán nó có vẻ không được phù hợp cho lắm tuy vậy nó lại có ứng dựng quan trọng xử lí lân cận ví dụ xử lí ảnh tính toán báo hòa làm một vật giữ nguyên màu sắc trắng hoặc đen mà không cho phép đảo ngược.
Nhóm lệnh truyền dữ liệu với khả năng truyền các khối lệnh 32bit 64bit
Nhóm lệnh số học với các phép tính cộng trừ nhân chia
Nhóm lệnh so sánh so sánh bằng so sánh lớn hơn
Nhóm lệnh chuyển đổi với khả năng chuyển đổi các kiểu dữ liệu bye, word, doubleword....
Nhóm lệnh logic AND OR NOT.
Tập lệnh SSE :
Trong máy tính, Stream SIMD Extensions (SSE) là một tập lệnh SIMD mở rộng cho kiến trúc x86, được thiết kế bởi Intel và giới thiệu nắm 1999 trong dòng vi xử lý Pentium III như một câu trả lời cho 3DNow! của AMD (đã ra mắt một năm trước đó). SSE chứa 70 tập lệnh mới, phần lớn trong số đó làm việc trên độ chính xác đơn dữ liệu dấu chấm động. Tập lệnh SIMD có thể tăng đáng kể hiệu suất khi các thao tác tương tự được thực hiện trên nhiều đối tượng dữ liệu. Ứng dụng điển hình là xử lý tín hiệu số và xử lý đồ hoạ.
Nỗ lực đầu tiên của IA-32 SIMD của Intel là tập lệnh MMX. MMX gặp 2 vấn đề chính là tát sử dụng các thanh ghi dấu chấm động hiện có khiến CPU không thể hoạt động trên cả dấu chấm động và dữ liệu SIMD cùng lúc, và MMX cũng chỉ làm việc với số nguyên. Dấu chấm động của tập lệnh SSE hoạt động trên một thanh ghi mới độc lập (thanh ghi XMM), và thêm vào một vài tập lệnh với số nguyên làm việc với các thanh ghi MMX.
SSE sau đó được Intel mở rộng thành SSE2, SSE3, SSSE3 và SSE4. Vì nó hỗ trợ các phép toán với dấu chấm động, nên được áp dụng rộng rãi hơn MMX và dần trở nên phổ biến. Việc bố sung các hỗ trợ số nguyên trong SSE2 khiến MMX trở nên dư thừa, mặc dù hiệu suất hoạt động có thể tăng lên trong một số trường hợp sử dụng MMX song song với các hoạt động SSE.
SSE ban đầu thêm vào tám thanh ghi 128-bit mới, từ XMM0 đến XMM7. AMD64 mở rộng từ AMD (ban đầu được gọi là x86-64) đã bổ sung thêm 8 thanh ghi XMM8 đến XMM15. Và phần mở rộng được nhân đôi trong kiến trúc Intel 64. Ngoài ra còn có một thanh ghi kiểm soát/ trạng thái 32-bit mới, MXCSR. Các thanh ghi XMM8 đến XMM15 chỉ có thể truy cập trong chế độ điều hành 64-bit
SSE chỉ sử dụng một kiểu dữ liệu đơn cho các thanh ghi XMM:
Bốn số 32-bit chấm động độ chính xác đơn .
SSE2 sau đó mở rộng việc sử dụng của các thanh ghi XMM bao gồm:
Hai số 64-bit chấm động độ chính xác đôi, hoặc
Hai số nguyên 64-bit, hoặc
Bốn số nguyên 32-bit, hoặc
Tám số nguyên ngắn 16-bit, hoặc
Mười sáu số nguyên kiểu byte 8-bit, hoặc kí tự.
Bởi các thanh ghi 128-bit này bổ sung chương trình trạng thái mà hệ điều hành phải bảo quản trên nhiệm vụ chuyển mạch, chúng bị vô hiệu hoá theo mặc định cho đến khi hệ thống cho phép chúng hoạt động. Điềy này có nghĩa là hệ điều hành phải biết sử dụng tập lệnh FXSAVE và FXRSTOR, đó là cặp tập lệnh mở rộng có thể lưu trữ tất cả các thanh ghi x86 và SSE cùng một lúc. Sự hỗ trợ này đã nhanh chóng được bổ sung cho tất cả các hệ điều hành IA-32.
CPU đầu tiên hỗ trợ SSE, Pentium III, chia sẻ các tài nguyên thực hiện giữa SSE và FPU (Floating-Point Unit). Trong khi một ứng dụng biên dịch có thể xen kẽ các tập lệnh FPU và SSE cạnh nhau, sẽ không có vấn đề với Pentium III với mộp tập lênh FPU và SSE trong cùng một chu kì đồng hồ. Sự hạn chế này làm giảm hiệu quả của các hệ thống pipeline, nhưng các thanh ghi XMM riêng biệt cho phép SIMD và các thao tác chấm động vô hướng được trộn lẫn mà không thực hiện hit từ MMX cho phép / chuyển đổi chế độ dấu chấm động.
SSE bao gồm tập lệnh hướng và dấu chấm động có hướng.
Tập lệnh dấu chấm động:
+ Chuyển dữ liệu Ô nhớ đến Thanh ghi / Thanh ghi đến Ô nhớ / Thanh ghi đến Thanh ghi.
Vô hướng: MOVSS
Đóng gói: MOVAPS, MOVUPS, MOVLPS, MOVHPS, MOVLHPS, MOVHLPS
+ Số học.
Vô hướng: ADDSS, SUBSS, MULSS, DIVSS, RCPSS, SQRTSS, MAXSS, MINSS, RSQRTSS
Đóng gói: ADDPS, SUBPS, MULPS, DIVPS, RCPPS, SQRTPS, MAXPS, MINPS, RSQRTPS
+ So sánh.
Vô hướng: CMPSS, COMISS, UCOMISS
Đóng gói: CMPPS
+ Dữ liệu ngẫu nhiên và giải nén.
Đóng gói: SHUFPS, UNPCKHPS, UNPCKLPS
+ Chuyển đổi kiểu dữ liệu.
Vô hướng: CVTSI2SS, CVTSS2SI, CVTTSS2SI
Đóng gói: CVTPI2PS, CVTPS2PI, CVTTPS2PI
+ Bit hoạt động logic.
Đóng gói: ANDPS, ORPS, XORPS, ANDNPS
Tập lệnh với số nguyên:
SSE bao gồm tập lệnh hướng và dấu chấm động có hướng.
+ Số học.
PMULHUW, PSADBW, PAVGB, PAVGW, PMAXUB, PMINUB, PMAXSW, PMINSW
+ Chuyển dữ liệu.
PEXTRW, PINSRW
+ Khác.
PMOVMSKB, PSHUFW
Các tập lệnh khác:
SSE bao gồm tập lệnh hướng và dấu chấm động có hướng.
+ Quản lý MXCSR.
LDMXCSR, STMXCSR
+ Cache và quản lý bộ nhớ.
MOVNTQ, MOVNTPS, MASKMOVQ, PREFETCH0, PREFETCH1, PREFETCH2, PREFETCHNTA, SFENCE
Các vấn đề về phần mềm và phần cứng.
Với tất cả các phần mở rộng của tập lệnh x86, với BIOS, hệ điều hành và lập trình ứng dụng để kiểm tra và phát hiện sự tồn tại và hoạt động thích hợp.
Intel và AMD cung cấp ứng dụng để phát hiện những phần mở rộng mà CPU của bạn hỗ trợ.
CPUID opcode là một bộ vi xử lý bổ sung tập lệnh (tên của nó bắt nguồn từ CPU Identification) cho kiến trúc x86. Nó được giới thiệu bởi Intel năm 1993 khi giới thiệu Pentium và các bộ vi xử lý 486 SL-Enhanced.
Người sử dụng hấp thụ các phần mở rộng của x86 bị chậm cơ bản do MMX và SSE (trong một số trường hợp) không được hỗ trợ bởi các ứng dụng khoảng 10 năm sau khi các phần mở rộng đã trở thành phổ biến. Tính toán phân tán đã tăng tốc việc sử dụng các phần mở rộng trong cộng đồng khoa học và nhiều ứng dụng khoa học từ chối chạy – trừ khi CPU hỗ trợ SSE2 hay SSE3.
Việc sử dụng nhiều phiên bản của một ứng dụng để đối phó với nhiều thiết lập khác nhau của phần mở rộng có sẵn là cách đơn giản nhất xung quanh vấn đề tối ưu hoá phần mở rộng x86. Thư viện phần mềm và một số ứng dụng đã bắt đầu hỗ trợ các kiểu mở rộng ám chỉ rằng sử dụng đầy đủ các tập lệnh x86 có sẵn có thể trở nên phổ biến khoảng 5 – 15 năm sau khi các tập lệnh ban đầu được giới thiệu.
Tập lệnh SSE2
SSE2, Streaming SIMD Extensions 2, là một trong những tập lệnh nằm trong Intel SIMD (Single Instruction, Multiple Data) lần đầu được giới thiệu bởi Intel với phiên bản ban đầu của Pentium 4 vào năm 2001. Nó được mở rộng từ tập lệnh SSE trước đó, được dự định để thay thế đầy đủ tập lệnh MMX . Intel mở rộng SSE2 để tạo ra SSE3 vào năm 2004. SSE2 bổ sung thêm 144 lệnh mới so với SSE (chỉ với 70 lệnh). Đối thủ sản xuất chip AMD đã bổ sung tập lệnh trong vi xử lý Opteron và Athlon 64 (AMD64 64-bit) vào SSE2.
Những thay đổi
SSE2 mở rộng tập lệnh MMX để hoạt động trên thanh ghi XMM, cho phép người sử dụng hoàn toàn tránh khỏi việc các thanh ghi MMX 64-bit bị chồng trong các thanh ghi stack dấu chậm đọng chính thức IA-32. Điều này cho phép trộn phần nguyên SIMD với cơ cấu điểm nổi vô hướng mà không có chế độ chuyển đổi giữa MMX và x87. Tuy nhiên, điều này là over-shadowed giá trị của việc có thể thực hiện các hoạt động MMX trên các thanh ghi SSE lớn hơn.
Những sự bổ sung khác trong SSE2 bao gồm một bộ các lệnh điều khiển bộ nhớ cache nhằm mục đích chủ yếu để giảm thiểu cache pollution khi xử lý dòng thông tin vô hạn định, và một sự bổ sung phức tạp của các lệnh chuyển đổi định dạng số.
Sự khác biệt giữa x87 FPU và SSE2
Tập lệnh FPU (x87) thường lưu trữ kết quả trung gian với độ chính xác 80 bit. Khi các thuật toán của FPU được chuyển sang SSE2, kết hợp một số biểu thức toán học hoặc các bộ dữ liệu đầu vào có thể dẫn đến sai lệch số đo lường: Điều này quan trọng trong tính toán khoa học, nếu kết quả tính toán phải được so sánh với kết quả tạo ra từ một kiến trúc máy tính khác.
Tùy thuộc vào trình biên dịch hay là thông dịch viên được sử dụng , kết quả trung gian khác nhau của một biểu thức toán học nhất định hoặc thuật toán chứa vòng lặp có thể cần phải được tạm thời lưu lại, và nạp lại sau. SSE2 làm việc với độ chính xác 32 hoặc 64 bit (4 hoặc 8 byte) trong khi tập lệnh x87 thông thường cho kết quả trong 80-bit trong các thanh ghi 80-bit của nó (10 byte).. Tất cả 80 bit kết quả của x87 có thể được lưu trữ trong bộ nhớ, nhưng vẫn thường làm tròn đến 64 hoặc 32 bit cho khả năng tương thích với các loại dữ liệu dấu chấm động phổ biến nhất. Tùy thuộc vào độ chính xác khi làm tròn, kết quả có thể khác nhau. Sự khác biệt tương tự có thể thấy khi so sánh kết quả từ độ chính xác 32 hoặc 64-bit mã SSE2 với kết quả tương ứng với độ chính xác 32, 64, hoặc 80-bit mã x87 . Đoạn mã Fortran sau đây được biên dịch với G95 như một ví dụ, giá trị chính xác của số thứ ba và cuối cùng được in ra là 0.
Sự khác biệt giữa MMX và SSE2
SSE2 mở rộng tập lệnh MMX để hoạt động trên các thanh ghi XMM. Vì vậy, nó có thể chuyển đổi tất cả các mã trong MMX tương đương sang SSE2. Kể từ khi thanh ghi XMM lớn gấp đôi thanh ghi MMX, các bộ đếm vòng lặp và truy cập bộ nhớ cần phải được thay đổi để phù hợp với điều này.
Mặc dù một lệnh SSE2 có thể hoạt động với gấp đôi lượng dữ liệu so với một lệnh MMX, nhưng hiệu suất không tăng đáng kể. Hai lý do chính là: truy cập dữ liệu SSE2 trong bộ nhớ không phù hợp với giới hạn 16-byte sẽ có nguy cơ chịu nhiều lỗi nguy hiểm, và thông lượng của tập lệnh SSE2 trong hầu hết triển khai của x86 thường nhỏ hơn so với tập lệnh MMX. Intel gần đây đã giải quyết vấn đề đầu tiên bằng cách thêm một lệnh vào SSE3 để giảm sự quá tải khi truy cập dữ liệu không phù hợp, và vấn đề thứ 2 bằng cách mở rộng các engine trong vi kiến trúc Core.
Kết Luận:
Itanium là dòng CPU dùng cho máy chủ trung và lớn với yêu cầu tốc độ tính toán cao đòi hỏi CPU phải có khả năng xử lí nhanh các yêu cầu, với việc hỗ trợ 3 tập lệnh MMX,SSE,SSE2 itanium 9000 hoàn toàn có thể đáp ứng được các yêu cầu đó một cách hoàn hảo. Với dòng CPU dùng cho máy chủ, yêu cầu đăt ra khi thiết kế đó là tốc độ, nó không đòi hỏi quá nhiều phép tính phức tạp nhưng bù lại nó cần đáp ứng yêu cầu tốc độ khi đồng thời xử lý nhiều luồng dữ liệu. 3 Tập lệnh mà intel hỗ trợ cho Itanium 9000 tăng cường khả năng xử lý của CPU qua đó cải thiện rất lớn về mặt tốc độ, độ chính xác.
Việc intel tấn công vào thị trường IA-64 là một bước đi mạo hiểm, bởi trước đó nền tảng IA-64 hoàn toàn do AMD nắm dữ, trong thời gian gần đây itanium đang mất dần đi vị trí của mình. Liệu nền tảng IA-64 có đem lại thành công cho in tel chúng ta hãy chờ đợi thêm một thời gian nữa.
Đặc tính – Công Nghệ
Công nghệ thuật toán song song ( Explicity Parallel Instruction Computing)
Công nghệ thuật toán song song (EPIC - Explicitly Parallel Instruction Computing) là cốt lõi của kiến trúc vi xử lý Itanium 2, được cùng phát triển bởi Intel và HP. EPIC thực ra được bắt nguồn từ các phòng phát triển của HP dựa trên những nghiên cứu từ năm 1989. Kiến trúc toán tử song song là một tiến bộ mới mở ra khả năng của vi xử lý nhằm vượt qua các giới hạn của RISC. Kiến trúc này mang lại cho các trình biên dịch khả năng kiểm soát được các lợi ích của xử lý song song ( Instruction Level Parallelism – ILP) thoát ra khỏi các giới hạn của những thiết kế out- of- order RISC.
Công nghệ thuật toán song song cung cấp khả năng thực hiện song song, dự báo, và suy đoán tốt cho một lệnh song song (ILP). Tính năng này giúp giải quyết các yêu cầu cao của doanh nghiệp và khối lượng công việc lớn.
Những thiết kế EPIC đã chuyển sự rắc rối của Out-of-Order RISC từ phần cứng sang phần mềm.
Những bước ngoặt về mặt kiến trúc gần đây xuất phát từ mong muốn giảm bớt sự rắc rối cồng kềnh của phần cứng nhằm giảm thời gian cần thiết để thiết kế và kiểm tra một vi xử lý mới hay tăng tần số hoạt động của vi xử lý. RISC là giải pháp để giảm sự phức tạp của những thiết kế CISC.
Những kỹ thuật về vi kiến trúc thông thường đưa những kiến trúc đó vào một phương cách phức tạp hơn để nâng cao hiệu suất mà không cần thay đổi kiến trúc tập lệnh. Đây chính là hiện trạng của những thiết kế Out-of-Order ( OoO) RISC. Kiến trúc EPIC là một phần của giải pháp nhằm tăng sự phức tạp của những thiết kế OoO RISC, và nhằm tái khởi động toàn bộ phần cứng tới một mức ít rắc rối hơn.
OOO RISC thiết kế rất phức tạp và đòi hỏi nỗ lực xử lý xác nhận thời gian tiêu thụ rộng lớn. Thiết kế RISC OOO hiện tại rất khó để mở rộng vượt ngưỡng 4 hướng dẫn rộng và cải tiến hiệu suất chính đáng mà không cần thêm nhiều chủ đề thực hiện trong phần cứng. Các nhà thiết kế EPIC công nhận rằng nếu các trình biên dịch đã được sự hỗ trợ đúng kiến trúc, sau đó trình biên dịch có thể làm nhiều của OOO phần cứng hiện nay. Những khái niệm này sẽ được thảo luận chi tiết sau này, nhưng đây là một vài ví dụ:
- EPIC cho phép trình biên dịch xác định trình tự chỉ thị độc lập, cho phép phần cứng để bỏ qua kiểm tra sự phụ thuộc giữa các chỉ thị. Chức năng này cùng một phần cứng trong các thiết kế RISC OOO rất tốn kém và phức tạp.
- Rõ ràng số nguyên lớn hơn và các tập tin thanh ghi FP trong các gia đình bộ xử lý Itanium thay thế các thanh ghi đổi tên và các tập tin thanh ghi ngầm trong thiết kế RISC OOO. Những tập tin thanh ghi lớn hơn rõ ràng cho phép Itanium có các trình biên dịch để thay thế các chức năng của đổi tên thanh ghi và cho phép hoạt động nhiều hơn để được thực hiện song song bởi vì kiến trúc thanh ghi có sẵn.
- Chức năng truyền trong EPIC cho phép explicitex ecution để tiến hành inparallel trên cả hai con đường của một bài kiểm tra chi nhánh, bỏ qua các kết quả trên con đường không chính xác khi các kiểm tra chi nhánh được giải quyết.
EPIC, tải và lưu trữ có thể được thực hiện hỏng do để kiểm soát và đầu cơ tính năng dữ liệu OOO RISC này phải được thực hiện với sự đặc biệt, phần cứng (và ẩn từ trình biên dịch) phức tạp. Tải Bảng Địa chỉ nâng cao (ALAT) EPIC được sử dụng để giải quyết xung đột bộ nhớ nhỏ hơn và đơn giản hơn so với các phần cứng cần thiết trong các thiết kế OOO điển hình.
Điều này không có nghĩa phần cứng EPIC là đơn giản. EPIC là không đơn giản như thiết kế vi xử lý RISC ban đầu. Đó là chính xác hơn để nói rằng một số sự phức tạp của các thiết kế RISC OOO có thể được giao cho phần mềm tạo ra trình biên dịch đã được chuyển đến các phần mềm. Các chức năng khác, mà không thể được thực hiện trong phần mềm, được yêu cầu của phần cứng. Một số ví dụ về các chức năng phần cứng mới là vị điều khiển bit, NAT điều khiển bit, thanh ghi tập tin lưu và phục hồi động cơ (RSE), và ALAT phần cứng (nâng cao tải Bảng địa chỉ). Chúng sẽ được thảo luận trong các phần sau đây. Tóm lại, EPIC là một kiến trúc "tao nhã" hơn bởi vì nó làm một công việc tốt hơn phân vùng phức tạp và chức năng giữa phần cứng và phần mềm.
MOVING COMPLEXITY BETWEEN HARDWARE & SOFTWARE
Bằng việc thiết lập môi trường dẫn các lệnh song song có thông lượng lớn, tạo khả năng xử lý song song, khả năng mở rộng và độ tin cậy đối với cơ sở dữ liệu, công nghệ EPIC được thiết kế đặc biệt cho chế độ xử lý song song hiệu quả cao - khả năng xử lý nhiều lệnh hoặc tiến trình đồng thời. Chế độ song song làm tăng khối lượng công việc được hoàn tất đối với mỗi bộ vi xử lý trong một chu kỳ xung nhịp do đó làm tăng đáng kể hiệu năng của các phần mềm ứng dụng. Bằng việc thiết lập một nền tảng tiên tiến cho chế độ song song, tăng thông lượng lệnh song song EPIC cho phép mở rộng hiệu năng bộ vi xử lý.
Với các kiến trúc truyền thống, bộ vi xử lý phải tự xác định được khả năng xử lý song song; EPIC có một bộ lệnh tăng cường cho phép các khả năng xử lý song song được xác lập một cách rõ ràng bởi chương trình dịch trước khi các đoạn mã phần mềm được chuyển tới bộ vi xử lý. Chương trình dịch hoàn toàn phù hợp với nhiệm vụ này vì nó có thể quan sát và phân tích toàn bộ đoạn mã phần mềm để đưa ra biện pháp xử lý song song hiệu quả nhất.
Về mặt hiệu quả: cả phần cứng và phần mềm tự do thực hiện việc xử lý dữ liệu theo phương thức tốt nhất. Chương trình dịch định hướng chương trình ứng dụng theo hướng tối ưu hoá hiệu năng. Bộ vi xử lý chỉ đơn gián xử lý các lệnh song song ở tốc độ nhanh nhất. Sự phân công công việc không chỉ đem lại lợi ích về hiệu năng mà còn tạo cơ hội cho việc mở rộng hoạt động trong tương lai.
Về phần mềm, các bộ chương trình dịch sẽ ngày càng phát triển, tiến bộ hơn trong việc tối ưu hoá mã phần mềm nhằm làm tăng thông lượng xử lý song song. Về phần cứng, những nỗ lực phát triển sẽ tiếp tục tập trung vào việc gia tăng số lượng các lệnh có thể xử lý được trong một chu kỳ xung nhịp.
Công nghệ siêu phân luồng ( Hyper Threading)
Với công nghệ HT trong bộ xử lý Itanium, số lượng các thread trong các hệ thống được tăng gấp đôi trong mỗi lõi, nên đã tăng bốn lần thread mà hệ điều hành sử dụng. Điều này sẽ cho hiệu suất cao hơn nhiều so triển khai như trước. HT không được giới thiệu trước khi họ Itanium ra đời, nó được giới thiệu lần đầu tiên trong bộ xử lý Intel Itanium2.
HyperThreading là tên của Intel đặt cho công nghệ SMT (Simultaneous Multi-Threading). Công nghệ này cho phép một nhân xử lý có thể thực sự xử lý song song các thread do các ứng dụng tạo ra, bằng cách trang bị thêm một số thành phần của nhân xử lý, khiến hệ điều hành nghĩ rằng nó đang làm việc với nhiều nhân xử lý. Như vậy, với một hệ điều hành tương thích bộ xử lý nhiều nhân hay nhiều bộ xử lý, nó sẽ sắp xếp để nhiều thread cùng được gửi đến các bộ xử lý “ảo” đó.
Nó dựa trên nguyên tắc là vào một thời điểm chỉ có một phần tài nguyên của CPU được sử dụng để thực thi lệnh của một tiến trình, những phần chưa được sử dụng có thể được dùng để thực thi các tiến trình khác.Trong các CPU sử dụng công nghệ Hyper-Threading, mỗi CPU logic sở hữu một tập các thanh ghi, kể cả thanh ghi đếm chương trình PC riêng (separate program counter), CPU vật lý sẽ luân phiên các giai đoạn tìm/giải mã giữa hai CPU logic và chỉ cố gắng thực thi những thao tác từ hai chuỗi lệnh đồng thời theo cách hướng tới những đơn vị thực thi ít được sử dụng.
Về mặt lý thuyết, khi chúng ta chỉ có một nhân xử lý thì nó có xử lý song song được bao nhiêu thread cũng không thể tăng tốc độ xử lý chúng lên được. Tuy nhiên trong thực tế, không phải bất kỳ lúc nào mọi thành phần của nhân xử lý cũng được sử dụng đến, và những thành phần không được sử dụng đến này có thể dùng để xử lý thread thứ hai (hoặc thứ ba, thứ tư…). Công nghệ SMT còn giúp bộ xử lý làm việc hiệu quả hơn bằng cách giảm bớt số lần nhân xử lý phải chuyển qua chuyển lại giữa các thread ‘’song song”. Quá trình chuyển này, như đã nói ở trên, diễn ra rất nhanh và liên tục, nhưng không có nghĩa là không mất thời gian, và bằng việc giảm bớt lượng công việc này, bộ xử lý có thể được rảnh rang để tập trung vào chuyên môn hơn.
Chức năng đa phương tiện (Multimedia Functionality)
Kiến trúc Itanium bao gồm khả năng xử lý đa phương tiện hiện đại và thanh ghi cần thiết cho nhiều loại xử lý đa phương tiện hoặc các tiến trình. Ứng dụng đa phương tiện ngày càng tăng, và bao gồm video trực tuyến, hình ảnh động, hình ảnh 2D và 3D và trình diễn, chế biến hình ảnh, nén / giải nén âm thanh và video , âm thanh và tổng hợp giọng nói, nhận dạng giọng nói, trò chơi và video hội nghị. Xử lý đa phương tiện liên quan đến việc giải mã, mã hóa, giải thích, tăng cường và biên dịch của dữ liệu số. Các thanh ghi trong kiến trúc EPIC cung cấp tương tự như HP PA-RISC của MAX-2 và IA-32 MMX và SSE của Intel. • Hỗ trợ song song thanh ghi đa phương tiện số nguyên 32-bit . Thanh ghi song song số học được cung cấp cho 32, 16 và 8 bit dữ liệu. Một cách cải tiến hiệu suất của 2x hoặc hơn nữa có thể được thu được bằng cách sử dụng các thanh ghi khi tập hợp dữ liệu ít hơn 64 bit. hoạt động có thể tùy chọn được thực hiện với quá tải số học.• Phần mở rộng song song nổi điểm SIMD (SSE). Kiến trúc Itanium định nghĩa lệnh song song duy nhất chính xác dấu phẩy động có hiệu quả có thể tăng gấpđ ôi hiệu suất cho loại hình hoạt động dữ liệu này .• Dòng hợp nhất I / O . I / O hoạt động cho các ứng dụng đa phương tiện thường được thực hiện trên nền 32-bit hoặc 64-bit và không được ghi vào không gian bộ nhớ cache. Nếu mỗi thao tác được gửi trực tiếp đến hệ thống bus để truyền đến thiết bị I / O, và do tốc độ dữ liệu chậm hơn trên một bus, nên hiệu suất sẽ bị ảnh hưởng rất nhiều. Kiến trúc Itanium cung cấp các bộ nhớ đặc biệt gợi ý cho phần cứng xử lý để kết hợp lại các hoạt động lưu trữ khối dòng kích thước vào bộ nhớ cache trước khi ghi dữ liệu vào thiết bị I / O.Những lệnh khác được cung cấp cho các dòng được ghi bởi bộ vi xử lý. yêu cầu nạp cũng có thể được kết hợp thành Bus đơn lớn hơn và được nạp vào các đệm hợp nhất.
Với sự phổ biến của các ngôn ngữ lập trình có cấu trúc và hướng đối tượng, các lời gọi thủ tục trở nên thường xuyên hơn, và các thiết bị chuyển mạch yêu cầu thanh ghi có thể mất nhiều thời gian xử lý hơn. Kiến trúc Itanium cung cấp hai cải tiến đáng kể để giảm thiểu vấn đề này.
• Thanh ghi ngăn xếp vật lý số nguyên tập tin lớn. Itanium kiến trúc quy định cụ thể 128 Thanh ghi số nguyên: 32 là "fixed" và 96 được "stacked". Mỗi lời gọi thủ tục có thể phân bổ đến 96 thanh ghi "stacked" trong khi có truy cập vào tất cả 32 thanh ghi "fixed". Mỗi thủ tục riêng của mình thanh ghi khung linh hoạt trong kích thước (không giống như các kiến trúc Sparc). Hầu hết các lời gọi thủ tục chỉ cần một vài thanh ghi mới tham gia xử lý, do đó, nhiều lời gọi có thể được thực hiện trước khi vượt quá giới hạn vật lý của thanh ghi tập tin. Nếu chương trình trả về mà không vượt quá kích thước ngăn xếp vật lý, thì sau đó không có bộ nhớ được cấp để lưu và khôi phục lại nội dung thanh ghi. Đây là một phương pháp hiệu quả để giảm lưu lượng truy cập bộ nhớ và tốc độ lời gọi thủ tục và trả về.
Kiến trúc SPARC là kiến trúc hình thức có khả năng thay đổi phạm vi sử dụng.
Thanh ghi cải tiến tập tin (Register File Improvement)
• Thanh ghi Lưu Engine (RSE) trong phần cứng. Các phần cứng RSE xử lý tràn và Van cân điều kiện trong các tập tin thanh ghi số nguyên tự động. Khi một lời gọi thủ tục vượt quá số lượng các thanh ghi vật lý có sẵn, phần cứng đặc biệt này sẽ ngay lập tức sử dụng không gian bằng cách tiết kiệm đi thanh ghi cũ vào bộ nhớ. Khi trở về, phần cứng RSE sẽ tự động khôi phục lại nội dung thanh ghi để thích hợp với các thanh ghi tập tin vật lý. Các hoạt động này là trong suốt người sử dụng và có thể được thực hiện trong lúc một "rảnh rỗi" (bất cứ khi nào cần thiết) hoặc "cần thiết" (cơ hội). (Cả Itanium cũng như các bộ vi xử lý Itanium 2 hỗ trợ các hoạt động của RSE.)
• Sử dụng năng lượng:Intel Itanium 2 sử dụng năng lượng ít hơn 20% so với dual-core Itaniums với hiệu suất cao gấp 2,5 lần cho mỗi watt, làm giảm nhu cầu năng lượng.
Độ dài từ của lệnh là 128-bit và có ba tập lệnh. Lệnh lấy dữ liệu từ bộ nhớ (Instruction fetch) có khả năng cung cấp hai trong số nhiều lệnh vào các pipelines dẫn từ bộ nhớ cache L1 trên mỗi chu kỳ đồng hồ. Điều này cho phép thực hiện 6 lệnh trong mỗi chu kỳ đồng hồ. Pipelines này bao gồm ba mươi giai đoạn có thể thực hiện một phần của Lệnh. Các đơn vị thực hiện được chia thành mười một nhóm có thể thực hiện một lệnh trên mỗi chu kỳ đồng hồ.
Floating-Point ứng dụng kỹ thuật chuyên sâu (Floating-Point Intensive Technical Applications)
Ứng dụng kỹ thuật có thể được hỗ trợ từ rất nhiều các các tính năng đã được tích hợp trong các pipelining, việc dự đoán, tính toán, tập lệnh SIMD, và số nguyên có giá trị lớn và các thanh ghi file dấu phẩy động. Một số tính năng và kiến trúc bổ sung có giá trị.• Thanh ghi file lớn FP(Large FP Register File). Kiến trúc gồm 32 "fixed" và 96 thanh ghi "rotating" FP. Những thanh ghi rotaing này được sử dụng bởi phần cứng pipelining để cung cấp vòng lặp tự động pipelining. (Thanh ghiquay được cung cấp trong các tập tin thanh ghisố nguyên để hỗ trợ phần mềm pipelining quá.) • Thnah ghi nạp cặp FP(Load FP Pair Instruction). Thanh ghi nạp cặp dấu phẩy động hoạt động rất hiệu quả cho phép truyền dữ liệu FP tới thanh ghi FP File và các đơn vị thực hiện FP. • Tăng chính xác của FP. Các đơn vị dấu phẩy động có kích thước 82 bit. Với 82 bit chính xác FP có thể hỗ trợ đơn, đôi và 80-bit có khả năng tiêu mở rộng chuẩn IEEE.
Modulo theo dự kiến vòng lặp Pipelines (Modulo Scheduled Software-pipelined Loops)
Kiến trúc EPIC đã cung cấp một phương pháp hiệu quả cho modulo vòng Bởi vì có rất ít chi phí, kỹ thuật này có thể có hiệu quả áp dụng cho vòng lặp lớn hay nhỏ, cung cấp nhiều cơ hội hơn cho việc tối ưu trình biên dịch. Nạp cơ bản > nạp > hoạt động > lưu trữ > nhánh vòng lặp được minh họa. ( Đây là điển hình của điểm nổi nhiều vòng ).Quá trình được chia thành ba giai đoạn: prolog, hạt nhân, và epilog. Kiến trúc EPIC cho phép cả ba giai đoạn được mã hóa vào một vòng lặp nhỏ gọn điều khiển bởi bits.
Việc thực hiện EPIC của modulo có ba kiến trúc kỹ thuật chính: thanh ghi luân phiên , luân phiên các vị, và kiểm soát nhánh vòng lặp. Thanh ghi luân phiên tự động tăng thanh ghi số ngăn xếp vật lý tăng quy định mỗi lặp đi lặp lại của vòng lặp, đảm bảo rằng vòng lặp tiếp theo sẽ không ghi đè lên dữ liệu trước đó. luân phiên các vị cho phép hoạt động để giai đoạn trong prolog và giai đoạn ra trong epilog. Các nhánh vòng lặp hỗ trợ lặp đi lặp lại thực hiện cho đến khi tất cả các lặp đi lặp lại hoàn thành và hoàn toàn có thể dự đoán thời điểm thoát ra khỏi vòng lặp. Người sử dụng hoặc trình biên dịch cung cấp hai giá trị cho việc kiểm soát các nhánh của các vòng. Các loop coubt (LC) là tính số lần lặp cho các giai đoạn và hạt nhân thực hiện. các epilog count (EC) cho biết cần thiết lặp đi lặp lại các vòng lặp để hoàn thành đúng tiến độ.
Những cải tiến về nhánh (Branching Improvements)
Một vấn đề lớn cho tất cả các vấn đề rộng (ví dụ như Alpha, PA-RISC) hoặc siêu pipelined (Pentium 4) vi kiến trúc là phân nhánh. Nhiều nhánh có thể dự đoán khá tin cậy và dự đoán rẽ nhánh tốt phần cứng có thể xử lý những chi nhánh này, nhưng một số nhánh không thể dự đoán đáng tin cậy. Điều này có thể là một mất mát lớn về hiệu suất. Kiến trúc EPIC cung cấp một số kỹ thuật để giúp giảm tác động của việc không thể đoán trước nhánh.( Phần này mô tả kỹ thuật dự đoán nhánh đó là tùy chọn cho phần cứng. Vi xử lý Itanium và Itanium 2 thực hiện một tập hợp con của những kỹ thuật này. Phần này không có nghĩa là tất cả các kỹ thuật được thực hiện ở hai bộ xử lý Itanium hoặc các bộ vi xử lý Itanium 2.
Độ trễ bộ nhớ giảm (Memory Latency Reduction)
Sự dự đoán giúp loại bỏ các nhánh từ các đường dẫn thực thi quan trọng, nhưng sớm hay muộn chương trình vẫn cần phải nạp từ bộ nhớ. Các bộ nhớ cache cấp độ đầu tiên đánh vào bộ vi xử lý Itanium 2 có một độ trễ chỉ có 1 chu kỳ, nhưng mức độ 1/3 bộ nhớ cache hit có 12 chu kỳ, và bộ nhớ hệ thống có thể mất 100 hơn thế số chu kỳ. Một kiến trúc tốt, kiến trúc và trình biên dịch có thể giúp giảm độ trễ hiệu quả cho hoạt động bộ nhớ.
Lập kế hoạch mã xung quanh các hoạt động nạp bộ nhớ là khó khăn, bởi vì thời gian nạp trễ có thể sẽ mất nhiều thời gian và không thể đoán trước. Di chuyển nạp trước của các ngành và các đơn vị lưu trữ suy đoán có thể làm giảm hiệu quả thời gian trễ bộ nhớ, nhưng không an toàn (do lỗi trang có thể vi phạm lệnh hoặc nạp / lưu trữ) trên nhiều RISC kiến trúc. Kiến trúc EPIC cho phép tối ưu hóa hiệu suất được thực hiện một cách an toàn, hiệu quả và cung cấp một số kỹ thuật giảm độ trễ bộ nhớ khác.
• Dự đoán điều khiển (Control Speculation): cho phép nạp được thực hiện sớm bằng cách thực hiện trước các nhánh mà không có phát hiện lỗi giả. Nếu dự đoán truy cập được thực hiện để một phần của bộ nhớ được trống, không hợp lệ, hoặc một người sử dụng không được phép truy cập, một kiến trúc thông thường sẽ yêu cầu một lỗi tốn kém để được thực hiện. Sử dụng một lệnh dự đoán nạp, vi xử lý Itanium trì hoãn một lỗi cho đến khi kết quả của hành động nạp được tiến hành. Một nạp ngắt dự đoán kết quả là một NAT trì hoãn mã thông báo cho các số nguyên, hoặc một NaTVal được mã hoá trong một toán hạng điểm nổi. Hầu hết các lệnh Itanium sẽ gọi một NAT đầu vào kết quả của nó, do đó cho phép một dự đoán mã trình tự để tiếp tục qua nhiều lệnh một cách chính xác và hiệu quả.
Kết quả của một hoạt động dự đoán phải được kiểm tra bởi một lệnh kiểm tra đặc biệt. Lệnh kiểm tra này có thể được thực hiện song song với việc sử dụng của kết quả dự đoán nó không có thời gian thực hiện báo lỗi. Khi một kết quả dự đoán được tìm thấy để có một mã thông báo NAT hoặc NaTVal, nhánh sẽ được thực hiện để phục hồi mã được cung cấp bởi trình biên dịch. Các hoạt động dự đoán sẽ được tái thực hiện và bất kỳ lỗi nào tồn tại sẽ được thực hiện bình thường. Nạp dự đoán có thể được kết hợp với sự suy đoán, nhưng các đơn vị lưu trữ không bao giờ thực hiện suy đoán. Một sử dụng quan trọng của kiểm soát dự đoán là vượt qua một danh sách liên kết trong khi đồng thời kiểm tra con trỏ NULL. Truy cập qua con trỏ NULL thường sẽ gây ra một lỗi, nhưng như là một dự đoán nạp, lỗi là chậm và không thực hiện nếu dữ liệu không bao giờ được sử dụng.
• Dự đoán dữ liệu (Data Speculation): cho phép nạp để nâng cao an toàn trước khi các đơn vị lưu trữ có thể thay đổi giá trị nạp. Trong ngôn ngữ lập trình hiện đại, nó được phổ biến để cho phép các chương trình sử dụng con trỏ với các loại dữ liệu. Đôi khi sử dụng con trỏ là khó khăn cho trình biên dịch để xác định nếu nạp và hoạt động lưu trữ đang tham chiếu tới cùng một vị trí bộ nhớ hay không. Để an toàn, một trình biên dịch cho một kiến trúc thông thường không được sắp xếp lại một nạp trên các vị trí lưu trữ.
Sử dụng một lệnh nạp cao cấp (ld.a), bộ vi xử lý Itanium có thể thay đổi nạp trước của các đơn vị lưu trữ, trong khi theo dõi sự toàn vẹn của dữ liệu được nạp cao cấp cho đến khi các dữ liệu được nạp được sử dụng. Nạp cao cấp hoạt động như một nạp bình thường ngoại trừ việc nó cũng duy trì một mục trong một nạp nâng cao on-chip “bảng nạp địa chỉ“- Advanced Load Address Table (ALAT) với thanh nạp ghi số, địa chỉ và kích thước. Bất kỳ đơn vị lưu trữ để địa chỉ đó từ nạp cao cấp và kiểm tra sau này sẽ mất hiệu lực nhập trong ALAT.
Khi kết quả của nạp cao cấp được sử dụng trong các mã, một lệnh kiểm tra (Ld.c hoặc chk.a) được ban hành cùng với việc sử dụng kết quả của nạp cao cấp. Các lệnh kiểm tra không có bất kỳ thực hiện có độ trễ. Lệnh kiểm tra truy vấn các cấu trúc ALAT để bảo đảm nạp cao cấp vẫn còn hiệu lực (tức là một đơn vị lưu trữ cùng một địa chỉ không được gặp giữa việc nạp cao cấp và sử dụng của nó). Nếu ALAT chỉ ra rằng các dữ liệu nạp đã được sửa đổi, sau đó nạp (và đôi khi code khác) là thực hiện một lần nữa, và giá trị cập nhật dữ liệu được nạp vào thanh ghi tập tin.
• Tìm và nạp trước dòng bộ nhớ cache (Explicit Cache Line Prefetching): là một cách khác để giảm độ trễ bộ nhớ hiệu quả. Tập lệnh Itanium cài đặt một dòng bộ nhớ cache lấy lệnh gợi ý nhằm dự đoán việc sử dụng dữ liệu bộ nhớ cache và mang lại một dòng bộ nhớ cache từ bộ nhớ với các đặc quyền cụ thể (chỉ đọc hoặc ghi), và nó có thể trực tiếp dòng bộ nhớ cache để một cấp bộ nhớ cache cụ thể. Có các phiên bản của lệnh này cho phép một lỗi (ví dụ, một lỗi trang) được thực hiện ngay lập tức hoặc bị trì hoãn cho đến khi bộ nhớ dòng cache là có thể sử dụng.
• Những gợi ý cache (Cache Hints): được cung cấp trong kiến trúc EPIC để tối ưu hóa việc sử dụng bộ nhớ đệm cấu trúc đa cấp. Nếu một dòng bộ nhớ cache được phân loại là non-temporal (NTA), sau đó bộ nhớ cache có thể chọn để thay thế cho dòng bộ nhớ cache trước khi những công việc khác trong thời gian ngắn. Những gợi ý này có thể giúp ngăn ngừa quá nạp nhỏ hơn mức lưu trữ đầu tiên hoặc mức thứ hai với các dòng dữ liệu lớn được sử dụng một thời gian ngắn. Ngoài ra, chúng có thể được sử dụng hiệu quả để giảm độ trễ của một truy cập bộ nhớ bằng cách đưa dữ liệu vào cache trước khi chương trình có nhu cầu.
Tổng kết – Đánh giá hiệu năng
Vi xử lý Dual-core Intel Itanium 2 9000
Nhiều tính năng mới nhằm cải thiện hiệu năng:
Dual-Core
24MB Cache L3 và 2MB Cache L2
Công nghệ Siêu phân luồng của Intel
Công nghệ Ảo hoá của Intel
104W, cải thiện hiệu năng lên gấp 2.5 lần
Hỗ trợ PCI Express và DDR2
Bên cạnh đó:
Xây dựng dựa trên kiến trúc EPIC
Đầy đủ các tính năng cho cấp độ máy chủ lớn
Vi xử lý 1.72 tỷ transistor đầu tiên
Được sử dụng rộng rãi trên thế giới
Được rất nhiều công ty lớn đầu tư
Tính ứng dụng tuyệt vời
Đáng giá số tiền đầu tư để đạt hiệu năng tốt
Lợi ích:Một số các tính năng quan trọng của Itanium bao gồm công nghệ an toàn Intel cachecung cấp bộ nhớ cache tự động phục hồi. Máy kiểm tra kiến trúc nâng cao của nócho phép phát hiện lỗi trên phạm vi rộng và có khả năng điều chỉnh.
Trong trường hợp lỗi bộ nhớ cache, Itanium sẽ tự động vô hiệu hóa đường dẫn của bộ nhớ cache, làm cho nó bị đóng băng. Các đường dẫn địa chỉ sửa lỗi hệ thống có khả năng tự động phát hiện lỗi, khai thác lỗi và chỉnh sửa. Ngoài ra, năng lượng có thể được phục vụ trong khi chạy và các máy chủ có thể được điều khiển từ xa.
Itanium có nhiều lợi ích. Chúng bao gồm khả năng phục hồi lỗi bộ nhớ cache và các cấp cao hơn của thời gian hoạt động máy tính. Hơn nữa, nó có thể phát hiện bit lỗi và quản lý dữ liệu hỏng. Cuối cùng, một số tính năng cho phép Itanium server có độ tin cậy cao, quản lý và cung cấp dịch vụ một cách dễ dàng.
Hỗ trợ:Trong một nỗ lực để tăng số lượng các phần mềm có thể chạy trên Itanium, Intel phát triển trình biên dịch hiệu quả cho nền tảng của nó. Itanium được hỗ trợ bởi Windows Server 2003, một số bản phân phối Linux (như Debian, Red Hat, và Novell SuSE), và HP-UX. Nó cũng hỗ trợ GCOS - môi trường máy tính lớn và một số của hệ điều hành IA-32 bằng cách sử dụng tập lệnh mô phỏng. Theo Intel,có hơn 10.000 ứng dụng sẵn cho các hệ thống dựa trên Itanium.
Cạnh tranh: Itanium cạnh tranh với các máy chủ dành cho doanh nghiệp khác như Sun Microsystems UltraSPARC IV, SPARC64 của Fujitsu, IBM POWER6, Opteron của AMD, và máy chủ Xeon của Intel. Itanium có 128 thanh ghi số thực dấu phẩy động luân phiên hỗ trợ. Tính năng này không cần thiết cho công việc của hầu hết các máy chủ dành cho doanh nghiệp.
Nguồn - Trích dẫn
1. Inside the Intel Intanium 2 Processor: an Itanium Processor Family member for balanced performance over wide range of applications - a Hewllet Packard Technical White Paper July 2002
2. Itanium 2 Platform and Technologies – Alexander Grudinski
3. Intel Itanium Architecture Update – Dr. Feixiong Liu
4. Itanium architecture vol 3 manual – Intel
5. Intel Itanium 9000 – 9100 datasheet – Intel
6. Intel Itanium 2 Product Brief – Intel
7. Dual-core Architecture: The Intel Itanium 2 (9000 series) Intel Processor – Mohd Adnan Khan, Noor Bilal Mohiuddin, Faisal Arafsha
8. Intel Itanium 2 Processor – Intel Software College
Tất cả các tài liệu trên được download tại ĐÂY
Một số bài báo tham khảo
10 năm bộ xử lý Itanium của Intel
NND
Nền tảng huyền thoại Itanium của Intel vẫn tiếp tục phát triển bất chấp sự suy giảm từ từ của thị trường Unix.
Các công ty lớn thường độc đoán. Bởi vậy, năm rồi, khi Kevin Armour - Giám đốc Công nghệ của Công ty Paycor - nghe thông tin Microsoft ngừng hỗ trợ Itanium, ông hiểu rằng trước mắt là những khó khăn lớn đang chờ. Ông nói: "Tôi rất thất vọng trước quyết định này của Microsoft". Armour có 3 năm sử dụng nền tảng cơ sở dữ liệu trên nền Itanium, nền tảng đã mang lại độ tin cậy cần thiết cho việc vận hành kinh doanh trôi chảy trong công ty của ông. Phần thiết bị của nền tảng bao gồm 2 máy chủ, 8 khe cắm HP Integrity với bộ xử lý 2 nhân Itanium chạy Microsoft SQL Server và Windows 2003 Server. Theo lời Armour, ông từng hài lòng với hệ thống này và chuẩn bị nâng cấp nó...
Itanium là bộ xử lý 64 bit đầu tiên của Intel được xuất xưởng đúng 10 năm trước để cạnh tranh với nền tảng RISC đang thống trị thị trường máy chủ doanh nghiệp thời kỳ đó (Tham khảo: Intel muốn thay thế RISC). Microsoft đã chuyển Windows sang nền tảng Itanium, nhưng khi xuất hiện những bộ xử lý 64 bit kiến trúc x86, "việc bán Windows cho Itanium đã sụt giảm hoàn toàn", theo Natan Brookvood, nhà phân tích chính của Công ty Insight 64.
Hiện tại, theo đánh giá của các chuyên gia Gartner và IDC, thị phần Windows cho Itanium so với tất cả các hệ điều hành khác đang chạy trên bộ xử lý này không được tới 10%. Trong số các nền tảng phần mềm mà HP hỗ trợ Itanium có HP-UX, OpenVMS và NonStop. Năm 2009, Công ty Red Hat cũng công bố kế hoạch ngừng hỗ trợ Itanium và theo nhà phân tích Jad Scaramella của IDC, hiện tại HP đang nắm chừng 90% thị trường Itanium. Tỷ lệ hệ thống chạy bộ xử lý này trên tổng số máy chủ bán ra quý 4/2010 là 7,1% hay là 1,1 tỷ USD (~22.917 tỷ đồng). Một năm trước đó, thị phần Itanium ở trên mức 8%.
Bộ xử lý Itanium huyền thoại của Intel...
"Về khuynh hướng chung của thị trường Unix, việc chuyển hoàn toàn sang kiến trúc x86 chỉ là vấn đề thời gian", Scaramella nói.
Thị trường các hệ thống Unix từ lâu đã giảm dần nhưng vẫn còn rất lớn. Theo IDC, trong quý 4/2010, tỷ lệ của các hệ thống Unix trong doanh thu máy chủ toàn cầu là 26% hay là 3,8 tỷ USD (~79.167 tỷ đồng), giảm 4% so với năm trước đó. Các kỹ sư của Intel vẫn tiếp tục hoàn thiện bộ xử lý Itanium và giới thiệu thế hệ bộ xử lý Itanium mới là những con chip 8 nhân mang tên mã Poulson. Nó sẽ có 3,1 tỷ transistor, nhiều hơn 0,9 tỷ transistor so với model Itanium Tukwila hiện hành.
Theo số liệu của Brookvood, khi phát triển Poulson, Intel đã xem lại toàn bộ kiến trúc của bộ xử lý này. Đối với Itanium, nhược điểm đặc trưng là chip chỉ có thể cùng lúc cung cấp 6 lệnh (Instruction). Poulson là model đầu tiên có thể cùng lúc cung cấp 12 lệnh. "Về mặt lý thuyết, nhờ có điều đó, các ứng dụng có thể hoạt động nhanh hơn trên cùng một xung nhịp xử lý", Brookvood cho biết.
Trở lại câu chuyện với Armour. Armour đã nhận ra những khả năng của kiến trúc x86. Ông chuyển hệ thống của mình dựa trên Windows Server và SQL Server từ HP Integrity sang HP Proliant DL980 - là các máy chủ 8 khe cắm với các bộ xử lý Xeon. Tổng số nhân trong hệ thống này là 64. Theo Armour, Công ty ông đã tiến hành thử nghiệm sơ bộ các hệ thống trên nền Itanium và Xeon và kết luận rằng các máy chủ x86 - mỗi máy có 512GB bộ nhớ - có thể xoay xở được với mức tải yêu cầu. Hệ thống quản lý cơ sở dữ liệu DBMS mà Armour sử dụng đảm bảo cung cấp các dịch vụ tính lương và quản trị nhân sự cho gần 19.000 khách hàng doanh nghiệp của Công ty, với tổng số nhân sự vượt quá 700.000 người. Các hệ thống kiến trúc x86 có vẻ rẻ tiền hơn, được Armour sử dụng từ tháng 11. "Chúng không kém tin cậy so với Integrity", ông tin tưởng.
Cơ sở để Microsoft đi đến quyết định chấm dứt hỗ trợ Itanium là "quá trình tiến hoá tự nhiên" của các bộ xử lý x86 đa nhân dẫn đến cải thiện quy mô và độ tin cậy. Microsoft duy trì sự hỗ trợ thông thường với Itanium đến tháng 7/2013, và hỗ trợ mở rộng kéo dài tới 2018. Nhà phân tích của IDC Matthew Eastwood không cho rằng quyết định nói trên của Microsoft mang lại tổn thất lớn cho Itanium: "Việc sử dụng phần mềm trên Itanium đã giảm nhưng sản phẩm chính của Microsoft cho bộ xử lý này là SQL Server lại làm việc tuyệt vời trên các hệ thống x86". Nhà phân tích của Gartner George J. Weiss đồng tình rằng quyết định của Microsoft không ảnh hưởng lớn lên thị phần của Itanium. Hơn nữa, Weiss cho biết, khả năng hỗ trợ của hàng loạt nền tảng khác đã đảm bảo cho bộ xử lý tăng điểm xét từ khía cạnh tiếp thị. "Thị phần Unix trong suốt mười năm gần đây không ngừng suy giảm, cả với các nhà cung cấp RISC lẫn Itanium - Weiss nói - Giờ đây, họ buộc phải tìm những con đường giữ vững việc kinh doanh các hệ thống kiến trúc khác với x86".
Katie Curtin-Mestre, Giám đốc kế hoạch và tiếp thị sản phẩm phần mềm của HP Business Critical Systems khẳng định rằng thị phần Windows trong tổng lượng bán của HP Integrity không đáng kể: "Việc ngừng hỗ trợ Windows đối với Itanium không hề ảnh hưởng đến chiến lược của chúng tôi với các máy chủ Integrity và các hệ điều hành HP-UX, OpenVMS và NonStop chạy trên chúng".
Intel Itanium vẫn tiếp tục phát triển
NND
Intel đang hoạch định tiếp tục phát triển chip Itanium và sẽ đẩy mạnh Xeon ra thị trường máy chủ cấp cao.
Hình mnh hoạ.
Công ty Intel xác nhận ý định tiếp tục phát triển bộ xử lý (BXL) Itanium nhưng tuyên bố, ý định chính là để gia tăng thị phần BXL máy chủ Xeon trên thị trường máy chủ năng suất cao mà BXL Itanium cũng nhắm tới. Trong tháng 4/2010, Công ty Intel đã xuất xưởng các BXL máy chủ Xeon 7500 còn Microsoft thì tuyên bố ý định để Windows Server tiếp tục hỗ trợ các hệ thống chạy Itanium làm cho tương lai của BXL này càng khó xác định.
Các BXL Xeon 7500 nổi danh với tên mã Nehalem-EX. Đây là những BXL mạnh nhất do Intel xuất xưởng cho dòng máy chủ doanh nghiệp. Theo tính chất an toàn và tin cậy, chúng sánh được với Itanium. Ở Intel, người ta định đề xuất đại diện dòng x86 làm giải pháp thay thế các BXL như Power7 của IBM và Oracle/Sun SPARC có kiến trúc RISC. Shannon Poulin, Giám đốc phụ trách tiếp thị nền tảng Xeon của Intel cho rằng, Công ty muốn đề xuất Nehalem-EX trong các phân khúc thị trường mới. “Chúng tôi không chuẩn bị cho việc hạn chế phát hành Xeon”, Poulin tuyên bố.
Ông không trả lời câu hỏi trong tương lai, liệu Xeon có thay thế được Itanium không. Tuy nhiên, các nhà phân tích cho rằng việc tiếp tục suy giảm thị trường của Itanium có thể khuyến khích cầu với Xeon vì người dùng doanh nghiệp sẽ chuyển sang các máy chủ chạy BXL kiến trúc x86 mặc dù chuyện này đỏi hỏi không chỉ 1 năm. Giữa tháng 4/2010, Microsoft đã tuyên bố ý định đến năm 2018, Windows Server 2008 R2, phiên bản mới nhất của Windows Server sẽ chấm dứt hỗ trợ hệ thống chạy Itanium.
“Giải thích thế nào những biến đổi ấy? Tiến hoá tự nhiên của kiến trúc x86-64 đã dẫn đến việc chế tạo các BXL và máy chủ có quy mô và độ tin cậy cần thiết cho những phép tính cực kỳ quan trọng”, Dan Readger, Quản đốc trưởng của Microsoft về các sản phẩm Windows Server nói. Poulin thì thừa nhận Windows Server được cài đặt trên chưa đầy 5% máy chủ Itanium và Microsoft đơn giản thấy không có lợi nên ngừng hỗ trợ.
Hiện tại, Intel đang cố tái định hướng Itanium lên đặc tính sử dụng khác để nó nổi bật trong đám các BXL kiến trúc x86. Theo Rob Shiveli, Giám đốc phụ trách tiếp thị các nền tảng đặc biệt quan trọng của Intel thì Itanium sẽ hướng tới các máy chạy HP-UX và các phân khúc riêng biệt của thị trường Mainframe mà Unix và các HĐH khác cùng thứ hạng đang làm việc. Mặt khác, các BXL Xeon sẽ được đề xuất cho những máy chủ quan trọng chạy HĐH Windows, Linux và Solaris. Ngoài ra, Intel định đầu tư phát triển thế hệ Itanium mới mà như Công ty nói thì sẽ được xuất xưởng sau mỗi 2 năm. Mới đây, Intel đã đề xuất model Itanium đang được chờ đợi phát triển dưới tên mã Tukwila, sau đó sẽ là Poulson và sau đó nữa là Kittson.
Các nhà phân tích cho rằng Intel có cơ sở để tiếp tục phát triển Itanium. Natan Brookvood, nhà phân tích chính của Insight 64 cho biết, hàng loạt khách hàng của Intel vẫn đề cao Itanium, lớn nhất là HP vì HP đang sử dụng những BXL này cho dòng máy chủ Integrity vận hành ổn định cao. Intel có thoả thuận với HP về phát triển dài hạn Itanium và Công ty sẽ thực hiện hàng loạt nghĩa vụ. HP có không ít khó khăn khi chuyển từ kiến trúc PA-RISC của mình và hoàn toàn có khả năng Công ty chưa sẵn sàng từ bỏ kiến trúc đó vì lợi ích của x86.
Vào năm 1994 , HP đã tham gia vào dự án nghiên cứu và phát triển để cung cấp công nghệ tiên tiến cho những máy chủ , những máy trạm và những sản phẩm dùng cho xí nghiệp và đến tháng 10 năm 1997 họ đã tiết lộ những chi tiết đầu tiên cho cấu trúc tính toán 64-bit .Vào thời gian đó thành viên đầu tiên của bộ vi xử lí Intel với dòng 64-bit có tên mã là “Merced” được giới thiệu vào năm 1999 dùng công nghệ sản xuất 180nm . Lúc đó những lập trình phát triển trên Merced bị lỗi cho tới khi Intel hoàn thành xong với một tên mới Itanium vào tháng 10 năm 1999 được giới thiệu trên Diễn đàn Phát triển của Intel (IDF) .Lợi ích lớn nhất của cấu trúc tính toán 64-bit là tổng số bộ nhớ có thể được địa chỉ hoá , có nghĩa là dung lượng bộ nhớ được tăng lên . Vào giữa năm 1980 bộ nhớ có thể địa chỉ hoá tới 4GB dựa trên 32-bit địa chỉ đã là quá nhiều . Mặc dù như vậy cho đến cuối thế kỷ 20 cơ sở dữ liệu đã vượt quá hơn thế rất nhiều . Thời gian truy cập dữ liệu và tải dữ liệu vào độ nhớ ảo đã ảnh hưởng lớn tới hiệu suất của hệ thống . Với 64-bit địa chỉ có khả năng địa chỉ hoá tới 16TB bộ nhớ , như vậy 64-bit là đủ sức mạnh để lưu trữ . Với công nghệ EPIC (Explicitly Parallel Instruction Computing – Tính toán lệnh song song ) được giới thiệu cho Cấu trúc tập lệnh 64-bit ISA (Instruction Set Architecture ) trong công nghệ cải tiến lớn nhất của Itanium .
Các file đính kèm theo tài liệu này:
- Vi xử lý intel itanium 9000.doc