Tải bản đầy đủ (.doc) (35 trang)

VI XỬ LÝ INTEL ITANIUM 9000

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.22 MB, 35 trang )

BÁO CÁO BÀI TẬP LỚN
KỸ THUẬT VI XỬ LÝ
ĐỀ TÀI
VI XỬ LÝ INTEL ITANIUM 9000
NHÓM THỨ : 12
LỚP: D09CN1
HỌC KỲ: HỌC KỲ 1 NĂM HỌC 2011-2012
Thành viên:
1. Nguyễn Sơn Tùng – CEO
2. Nguyễn Mạnh Tuấn – Giám đốc kỹ thuật
3. Nguyễn Mạnh Tưởng – Giám đốc công nghệ
4. Lê Văn Việt – Giám đốc tập lệnh
5. Vongsakda
Mục lục
A. Giới thiệu ...................................................................................................................2
I. Giới thiệu chung
II. Các thông số chính
III. Lịch sử
B. Kiến trúc ...................................................................................................................7
I. Sơ đồ chung
II. Các thành phần và thông số chính
III. Kiến trúc tập lệnh
C. Đặc tính – Công nghệ ...........................................................................................17
I. Công nghệ thuật toán song song
II. Công nghệ siêu phân luồng
III. Chức năng đa phương tiện
IV. Thanh ghi cải tiến tập tin
V. Floating-Point ứng dụng kỹ thuật chuyên sâu
VI. Modulo theo dự kiến vòng lặp Pipelines
VII. Những cải tiến về nhánh
VIII. Độ trễ bộ nhớ giảm


D. Tổng kết – Đánh giá hiệu năng ...............................................................................28
E. Nguồn – Trích dẫn ........................................................................................................30
A. Giới thiệu
I. 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.
II. Các thông số chính
• Codename: Monecito
• Process: 90nm
• Clock: 1.4 – 1.6 GHz
• L2 Cache: 256 kB + 1 MB
• L3 Cache: 6-25 MB
• Bus: 400/533 MHz
• Cores: 2
• Watts/device: 104
• Support: Virtualization, Multithread, no HW IA-32
III. Lịch sử
Vào cuối những năm 90, HP nhận định rằng máy tính sử dụng RIC đã đạt đến giới hạn xử lý 1
lệnh/1 chu kỳ và đã phát triển một mới kiến trúc được gọi là toán lệnh song song (EPIC), cho phép

các vi xử lý thực thi nhiều hơn một lệnh trong một chu kỳ đồng hồ.
HP và Intel đã trở thành đối tác vào năm 1994 và phát triển kiến trúc IA-64. Intel nỗ lực phát triển
IA-64 với hi vọng các bộ vi xử lý của hãng sẽ được sử dụng bởi phần lớn các hãng sản xuất máy
tính lớn. HP và Intel đã khởi xướng một cuộc thay đổi lớn, trước tiên là việc cung cấp sản phẩm đầu
tiên có tên mã là Merced, vào năm 1998. Intel công bố tên chính thức của bộ vi xử lý Itanium vào 04
tháng 10 năm 1998.
Bộ vi xử lý Itanium thời kỳ đầu: 2001-2002
Itanium đã được phát hành vào tháng Sáu năm 2001, nó đã không hiệu quả hơn RISC và CISC. Chỉ
có một vài nghìn sản phẩm được bán, do sản lượng kém, hiệu suất tương đối thấp, và chi phí cao.
Tuy nhiên, các máy này rất hữu ích cho việc phát triển Itanium 2 - bộ vi xử lý sau đó. IBM đã cho ra
đời một siêu máy tính dựa trên xử lý này.
Itanium 2: 2002-hiện tại
Itanium 2 được phát hành vào năm 2002, và chủ yếu hướng tới thị trường máy chủ. Itanium 2
ban đầu có tên mã là McKinley. McKinley sử dụng công nghệ 180 nm, nhưng nó ít xảy ra vấn đề về
hiệu suất hơn Itanium đời đầu.
Năm 2003, AMD đã phát hành Opteron, sử dụng kiến trúc x86-64. Opteron được chấp nhận nhanh
chóng trong thị trường máy chủ doanh nghiệp bởi vì nó cung cấp một bản nâng cấp dễ dàng từ x86.
Intel phản ứng bằng cách sử dụng x86-64 trong bộ vi xử lý Xeon được phát hành năm 2004. Intel
phát hành một thành viên mới trong họ Itanium 2, được đặt tên Madison, vào năm 2003. Madison sử
dụng công nghệ 130 nm và là cơ sở của tất cả các vi xử lý Itaniums sau này, cho đến khi Montecito
được phát hành trong tháng sáu năm 2006.
Các dòng vi xử lý Itanium đã cho thấy những tiến bộ vượt bậc về hiệu năng. Merced đã là một bằng
chứng về mặt khái niệm. McKinley đã cải thiện rất nhiều về phân cấp bộ nhớ và giúp Itanium trở
nên khá cạnh tranh trên thị trường. Madison, với sự chuyển đổi sang công nghệ 130nm, được cung
cấp đủ không gian cache để vượt qua các điểm tắc nghẽn cơ bản trong quá trình thực thi chính.
Monecito, với công nghệ 90nm, cho phép sự thực thi của công nghệ lõi kép và cải tiến chủ yếu
trong công năng mỗi watt.Monvale thêm 3 tính năng: core-level lockstep, demand-based switching
và front-side bus frequency of up to 667MHz.
B. Kiến trúc
I. Sơ đồ chung

• Dual-Core:
Theo Intel, với kiến trúc dual-core, Monecito có hiệu năng gấp đôi phiên bản trước nó, vi xử lý
Itanium 2 một lõi, và giảm thiểu tiêu thụ điện năng tới 20%. Ngoài ra, nó còn có khả năng xử lý đa
luồng ( 2 luồng mỗi lõi), hệ thống cache mở rộng (12 MB một lõi) và hỗ trợ silicon cho ảo hoá.
Bộ vi xử lý Intel Itanium hai lõi 64-bit trên một bộ xử lý có đến 24 MB bộ nhớ cache L3 có độ trễ
thấp, cung cấp băng thông rộng cho cả hai lõi. 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

II. 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
III. 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

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×