Silde thuyết trinh tìm hiểu kiến trúc vi xử lý INTEL pentium m
Trang 1 Giảng Viên Hướng Dẫn: TS PHẠM VĂN CƯỜNG
Nhóm Sinh Viên Thực Hiện:
[1] ĐẶNG VĂN QUÝ
[2] PHẠM THẾ ANH [3] VŨ VĂN TOÀN [4] LƯU ĐỨC TIẾN
Trang 31.1 Vi xử lý là gì?
Vi xử lý là một chip bán dẫn kết hợp các chức năng của đơn vị xử lý trung tâm (CPU) trên một hoặc một vài mạch tích hợp
Vi xử lý là trái tim của bất kỳ một máy tính thông thường nào
Một vi xử lý thi hành một loạt các lệnh máy báo cho đơn vị xử lý biết phải làm gì
Dựa trên các lệnh, một vi xử lý làm được 3 việc cơ bản sau:
• Sử dụng ALU, một vi xử lý có thể làm các phép toán như cộng, trừ, nhân, chia Các vi xử lý hiện đại có thể bao gồm xử lý dấu phảy động với các phép toán yêu cầu độ chính xác cao
• Một vi xử lý có thể chuyển dữ liệu từ một vị trí trong bộ nhớ tới một vị trí khác
• Một vi xử lý có thể tạo các quyết định và nhảy tới một tập lệnh mới
1 Giới thiệu chung
311/10/13
Trang 41.2 Các thành phần cơ bản :
Một bus địa chỉ gửi địa chỉ tới bộ nhớ
Một bus dữ liệu gửi hoặc nhận dữ liệu từ bộ nhớ
Một đường RD(đọc) và WR(ghi) để vi xử lý thông báo cho cho bộ nhớ biết nó đang gần đặt hay lấy giá trị của vùng được đánh dấu địa chỉ
Một đường clock cho các xung clock của bộ xử lý
Một đường reset bộ đếm chương trình về 0 khi bắt đầu thực hiện một lệnh
Thanh ghi A,B,C là các chốt đơn giản được tạo từ các mạch lật
Chốt địa chỉ(address latch) cũng giống các thanh ghi A,B,C
Bộ đếm chương trình là các mạch lật với khả năng tăng thêm 1 và trở về 0 khi được yêu cầu
1 Giới thiệu chung
411/10/13
Trang 5và quyết định xem chúng bằng nhau, nhỏ hơn hay lớn hơn
số còn lại Thanh ghi này còn để lưu bit từ trạng thái của
bộ cộng trước đó
3-state trong sơ đồ tren là bộ đệm tri-state(3 trạng thái) cho phép nhiều đầu ra kết nối với một dây dẫn nhưng chỉ
có một trong số chúng được đi vào dòng 0 hoặc 1
Thanh ghi lệnh và bộ giải mã lệnh chịu trách nhiệm trong việc điều khiển tất cả các thành phần khác
1 Giới thiệu chung
511/10/13
Trang 62.1 Xuất sứ
Pentium M được xây dựng trên kiến trúc thế hệ thứ 6 của Intel.
Intel Pentium M được sản xuất từ năm 2003 đến năm
2008, là bộ xử lý cuối cùng mang tên Pentium, trước
đó là vi xử lý Intel Pentium 4
Vi xử lý với tên mã là Banias và được cho là hoàn hảo nhất của kiến trúc P6 Nó là sự kết hợp giữa nhân P3 với các đặc tính tiên tiến của P4, kết quả là được một
vi xử lý có tốc độ khá nhanh với yêu cầu năng lượng thấp
2 Giới thiệu về vi xử lý Intel Pentium M(PM)
611/10/13
Trang 72.2 Ứng dụng
Intel đã hướng cho PM gia nhập thị trường các thiết bị di động, ngành sản xuất mainboard như AOpen, DFI và MSI đã thiết kế cho Pentium M tương thích với các bản mạch dành cho những người quan tâm, HTPC, máy trạm và máy chủ.
Pentium M là một vi xử lý của Intel hướng tới thị trường di động và đã được
sử dụng trong thế hệ đầu tiên của nền tảng Centrino
Centrino không phải là một bộ vi xử lý cho laptop mà là một nền tảng kết hợp giữa 3 yếu tố:
Vi xử lý intel Pentium M
Intel wireless LAN
Một chipset Intel (855 hoặc tương tự)
3 thành phần này làm việc cùng nhau một cách thông minh giúp tiết kiệm điện năng tiêu thụ cho laptop
NỘI DUNG CHÍNH
2 Giới thiệu về vi xử lý Intel Pentium M(PM)
711/10/13
Trang 8Clock Speed Ultra Low Volt
Front Side Bus 533 or 400 MHz 400 MHz
Chipset Intel® 855 Chipset Family Intel® 855 Chipset Family
Wireless Intel® PRO/Wireless Network Connection Intel® PRO/Wireless Network Conne
ction
2.3 Các thông số chính
2 Giới thiệu về vi xử lý Intel Pentium M(PM)
811/10/13
Trang 92.4 Các dòng vi xử lý PM :
Pen
2.4.1 Banias
Dòng sản phẩm đầu tiên của Pentium M có tên mã
la Banias.
Banias hỗ trợ công nghệ SSE2,công nghệ Enhanced SpeedStep nâng cao trên
mô hình SL6NA và SL6P4(làm giảm xung nhịp CPU để tiết kiệm pin khi máy tính nhàn rỗi).
400 MHz (100 MHz vận chuyển 4 luồng dữ liệu trên 1 chu lỳ đồng hồ)
Trang 102.4 Các dòng vi xử lý PM : 2.4.2 Dothan
Intel ra mắt pentium M cải tiến với tên mã là Dothan,với những phiên bản được biết đến là Pentium M 710 (1.4 GHz), 715 (1.5 GHz), 725 (1.6 GHz), 735 (1.7 GHz), 740 (1.73 GHz), 745 (1.8 GHz), 750 (1.86 GHz), 755 (2.0 GHz), and 765 (2.1 GHz).
Có hỗ trợ cấu trúc SSE2,công nghệ Enhanced SpeedStep,và công nghệ Execute Disable,socket
478 và 479.
Hình 2.4.2:
PM 730 core Dothan
2 Giới thiệu về vi xử lý Intel Pentium M(PM)
400 MHz hoặc 533 MHz (100 MHz hoặc 133MHz chuyển bốn dữ liệu trên chu kỳ đồng hồ)
Trang 121 SƠ ĐỒ KHỐI
12
11/10/13
Trang 132 Các thành phần chính và hoạt động.
13
11/10/13
Trang 142.1, Pipeline trong Pentium M
2.1.1, Các giai đoạn và cơ chế hoạt động:
Pipeline là một danh sách các giai đoạn mà một lệnh cho
trước phải đi qua để có thể được thực hiện đầy đủ.
So với PPro, P2, P3, PM cũng có các giai đoạn chính:
Dự đoán rẽ nhánh, đọc lệnh.
Giải mã lệnh.
Register renaming (tránh việc tuần tự hóa một cách
không cần thiết của các thao tác chương trình bằng việc tái sử dụng các thanh ghi).
Reorder buffer read.
Reservation station(mỗi toán hạng trong mỗi lệnh
trong hàng đợi có một vị trí trong các file thanh ghi ).
Trang 152.1.2, Hiện tượng nút cổ chai
Truy cập bộ nhớ: PM có 6 cổng ghi, việc có nhiều hơn 6 thao tác ghi liền
lúc cũng khiến cho quá trình xử lý bị chậm lại vài chu kỳ clock
Tìm nạp và giải mã lệnh: Các lệnh nên được tổ chức để sao cho không có
quá 6 vi lệnh được sinh ra sau giải mã, tránh các lệnh có nhiều hơn 1 tiền tố
Hợp các vi lệnh: cho phép các vi lệnh chứa nhiều thông tin hơn.
Các cổng thực thi: Các vi lệnh hợp sau khi được tách ra phải được phân bổ
đều về 5 cổng Cổng 0 và 1 dễ trở thành một nút cổ chai trong một đoạn mã
có một vài thao tác với bộ nhớ
Dự đoán rẽ nhánh: Bộ đệm rẽ nhánh đích (BTB) trong PM nhỏ hơn trong
các bộ xử lý khác vì vậy nên tránh các lệnh nhảy không cần thiết để hạn chế tải trên BTB
2 Các thành phần chính và hoạt động.
15
11/10/13
Trang 162.2 Bộ nhớ cache và đơn vị tìm nạp
2 Các thành phần chính và hoạt động.
Bộ nhớ cache: Dung lượng bộ
nhớ cache L2 có thể là 1MB(dòng Banias) hoặc 2MB(dòng Dothan), trong khi
vi xử lý có hai bộ nhớ cache L1, một có dung lượng 32KB
để chứa các lệnh và phần còn lại chứa dữ liệu cũng với dung lượng 32KB.
16
11/10/13
Trang 17 Đơn vị tìm nạp lệnh: chia làm 3 giai đoạn
Tải một dòng(32 byte) vào trong bộ đệm dòng lệnh(ISB),
Instruction Length Decoder nhận dạng ranh giới các lệnh trong vòng 16 byte Các lệnh x86 không có độ dài
cố định , giai đoạn này đánh dấu nơi lệnh bắt đầu và kết thúc trong vòng nạp 128 bit Nếu có bất kỳ lệnh rẽ nhánh nào trong số các bit này, địa chỉ của nó sẽ được lưu lại tại Branch Target Buffer(BTB) để CPU có thể sử dụng chúng trong các mạch dự đoán rẽ nhánh BTB có
512 lối vào
Giai đoạn Decoder Alignment đánh dấu vị trí của đơn
vị giải mã lệnh mà mỗi lệnh được gửi tới.
2.2 Bộ nhớ cache và đơn vị tìm nạp (tiếp)
2 Các thành phần chính và hoạt động.
17
11/10/13
Trang 182.3 Bộ giải mã lệnh và đổi tên thanh ghi
2 Các thành phần chính và hoạt động.
18
11/10/13
Trang 19 Bộ giải mã lệnh:
Có thể chuyển đổi 3 lệnh x86 trong mỗi chu kỳ clock,
một lệnh phức tạp tại bộ giải mã 0 và hai lệnh đơn giản
ở bộ gải mã 1 và 2, trả về hàng đợi lệnh đã được giải
mã 6 vi lệnh mỗi chu kỳ clock
Một lệnh x86 cực kỳ phức tạp có thể cần vài chu kỳ
clock để giải mã, phụ thuộc vào bao nhiêu vi lệnh được sinh ra
Mỗi vi lệnh dài 118 bit, PM thay vì làm việc với các vi
lệnh 118bit, nó làm việc với vi lệnh 236bit (gộp lại từ
hai lệnh 118 bit) => Để tiết kiệm năng lượng và tăng
hiệu năng CPU cũng ít ngốn điện hơn kho có ít vi lệnh trong mạch hơn.
2 Các thành phần chính và hoạt động.
19
11/10/13
Trang 20 Bộ đổi tên thanh ghi:
Đổi tên và nội dung của thanh ghi mà chương trình sử dụng
thành một trong 40 thanh ghi bên trong ( mỗi thanh rộng 80 bit vì vậy nhận cả dữ liệu kiểu nguyên và kiểu thực).
Cho phép các lệnh chạy ở cùng một thời điểm với các lệnh
khác cũng đang sử dụng thanh ghi đó, điều này cho phép lệnh thứ hai có thể chạy trước lệnh thứ nhất ngay cả khi chúng dùng chung thanh ghi.
2 Các thành phần chính và hoạt động.
20
11/10/13
Trang 212.4 Bộ đệm xắp xếp
Khi các vi lệnh đến ROB, cúng
có thể được tải và được thực hiện không đúng bởi đơn vị thi hành.
Sau khi được thi hành, các lệnh
được gửi trả lại bộ đêm sắp xếp
Sau đó tại trạng thái nghỉ, các lệnh đã được thi hành sẽ được ra khỏi bộ đệm với thứ tự y
nguyên khi chúng được đẩy vào
2 Các thành phần chính và hoạt động.
21
11/10/13
Trang 222.5 Reservation station và đơn vị thực thi
Pentium M sử dụng các vi
lệnh hợp từ đơn vị giải
mã gửi tới các cổng đặt tại trạm đăng ký(RS) RS
sẽ phân tích các hợp lệnh này
PM có 5 cổng gửi đi đánh
số từ 0 đến 4 trên trạm đăng ký Mỗi cổng kết nối với một hoặc nhiều đơn vị thực thi, có thể thấy trong hình.
2 Các thành phần chính và hoạt động.
Hình 2.5-a: RS và Execution Unit
22
11/10/13
Trang 232.6 Đơn vị tính toán và số học ALU
ALU là một mạch điện tử thực hiện các thao tác số học và
logic
Hầu hết các ALU đều có thể thực hiện các thao tác sau:
Các phép toán với bit (AND,NOT, OR, XOR)
Các thao tác với số nguyên : (cộng, trừ, nhân, chia)
Các phép dịch bit
Các kiến trúc sư có thể thiết kế ALU để tính toán bất kỳ phép toán nào, ví dụ như tính toán căn bình phương của một số
2 Các thành phần chính và hoạt động.
23
11/10/13
Trang 242.7 Đơn vị xử lý dấu phảy động FPU (Floating Point Unit)
Là một bộ phận của hệ thống máy tính được thiết kế để tính toán trên
các số dấu phảy động
Hoạt động chính của các FPU bao gồm các phép tính toán số học
thông thường như cộng, nhân
Một số FPU có thể thực hiện các chức năng phức tạp hơn như số mũ,
logarit và lượng giác…
2 Các thành phần chính và hoạt động.
24
11/10/13
Trang 252.8 Bộ nhớ Cache.
Cache cho phép máy tính thực hiện các tác vụ nhanh chóng
hơn Máy tính có thể thực hiện các thao tác trong một khoảng thời gian cực ngắn Thời gian để bộ xử lý truy xuất tới bộ nhớ RAM chỉ khoảng 60 nano giây (1 nano giây bằng một phần tỉ giây)
Pentium M có 2 cache L1, một cho dữ liệu và một cho các lệnh,
sử dụng SRAM tốc độ cao thay vì DRAM rẻ nhưng chậm.
L2 Cache là một chip nhớ nằm giữa L1 Cache ngay trên nhân
CPU và bộ nhớ hệ thống.
2 Các thành phần chính và hoạt động.
25
11/10/13
Trang 262.8 Bộ nhớ Cache (tiếp)
Khi CPU xử lý, L1 Cache sẽ tiến hành kiểm tra L2 Cache xem
có dữ liệu mình cần không trước khi truy cập vào bộ nhớ hệ thống Vì thế, bộ nhớ đệm càng lớn, CPU càng xử lý nhanh hơn.
Do giá rất đắt, nên dung lượng Cache không thể tăng ồ ạt được
Bộ nhớ cache chính L1 Cache vẫn chỉ ở mức từ 8 tới 32 KB Trong khi, L2 Cache thì được đẩy lên dần tới hiện nay cao nhất
là Pentium M Dothan 2 MB (cho máy tính xách tay) và Pentium
4 Prescott 1 MB (máy để bàn)
2 Các thành phần chính và hoạt động.
26
11/10/13
Trang 272.9 Giao diện bus
2 Các thành phần chính và hoạt động.
Hình 2.9-a: Các bus trong hệ thống máy tính
Kiến trúc Dual Independent Bus
(DIB - hai tuyến bus độc lập), bus
hệ thống dùng chung được tách thành Frontside Bus (FSB - tuyến bus trước) và Backside Bus (BSB - tuyến bus sau)
FSB là nhịp cầu quan trọng nối
bộ xử lý với bộ nhớ chính và tuyến bus ngoại vi.
BSB chỉ tập trung chuyển tải
dữ liệu giữa bộ xử lý với bộ đệm thứ cấp
=> Kiến trúc P6 tách bus hệ thống thành 2 kênh độc lập góp phần tăng hiệu năng xử lý nhờ cho phép
bộ xử lý truy xuất đồng thời trên
cả hai kênh giao tiếp quan trọng
27
11/10/13
Trang 283 Kiến trúc tập lệnh
Kiến trúc lệnh chung của Intel Pentium M:
Sử dụng kiến trúc lệnh x86, độ dài chỉ lệnh không cố định
Các phép toán có thể thực hiện với 8 , 16, 32, 64 bit tùy theo thế hệ kiến trúc
Thực tế bộ tập chỉ lệnh không được cải thiện tốt hơn cho việc lập trình
Opcode (các loại code được viết dưới dạng ngôn ngữ máy) có thể lên đến 3 byte khá linh động
Pentium M được hỗ trợ 3 tập lệnh là : MMX, SSE và SSE2
28
11/10/13
Trang 293.1 MMX (MultiMedia eXtentions)
Gồm 57 lệnh multimedia do Intel phát triển năm 1997
Mục đích: nâng cao hiệu quả xử lý các lệnh lặp về âm thanh,
hình ảnh và đồ họa
Một dòng lệnh đơn có thể xử lý đồng thời một số mục dữ liệu
MMX (năm 1996), phiên bản cải tiến của Pentium với công nghệ
MMX được Intel phát triển để đáp ứng nhu cầu về ứng dụng đa phương tiện và truyền thông
MMX kết hợp với SIMD (Single Instruction Multiple Data) cho
phép xử lý nhiều dữ liệu trong cùng chỉ lệnh, làm tăng khả năng
xử lý trong các tác vụ đồ họa, đa phương tiện
MMX chỉ cung cấp các thao tác với số nguyên Vào thời kỳ đầu,
nó chỉ phục vụ cho toán học thông thường!
3 Kiến trúc tập lệnh
29
11/10/13
Trang 303.2 SSE (Single SIMD Extentions):
Gồm 70 lệnh mà Intel đưa vào Pentium III để phục vụ việc xử lý dữ
Hỗ trợ khả năng thực hiện tính toán chấm động và hình học, các tính
năng cần thiết để hiển thị và di chuyển hình ảnh 3D trên màn hình Cải tiến khả năng đồ họa của các bộ vi xử lý
Nhóm lệnh SSE đại diện một phần mở rộng của mô hình thực thi
SIMD với công nghệ MMX SSE chỉ có thể thực thi trên các vi xử lí Intel 64 và IA-32 mà hỗ trợ các mở rộng SSE
3 Kiến trúc tập lệnh
30
11/10/13
Trang 313.3 SSE2 (Streaming SIMD Extensions 2)
Là một trong những SIMD Intel (lệnh đơn, dữ liệu bội) được
mở rộng từ công nghệ MMX và công nghệ SSE các lệnh được thiết lập trước đó, và được dự định để thay thế đầy đủ MMX
Intel mở rộng SSE2 để tạo ra SSE3 vào năm 2004 SSE2 thêm
144 lệnh mới cung cấp tăng hiệu suất trên 1 loạt các ứng dụng SSE2 cho phép các nhà phát triển phần mềm có sự linh hoạt tối
đa để thực hiện các thuật toán và cung cấp cải tiến hiệu xuất khi chạy phần mềm chẳng hạn như MPEG-2, MP3, đồ họa 3D.
3 Kiến trúc tập lệnh
31
11/10/13
Trang 323.3 SSE2 (Streaming SIMD Extensions 2)
SSE2 là sự mở rộng khả năng tính toán của MMX hoạt động
trên các thanh ghi XMM.Phần mở rộng bao gồm một bộ điều khiển bộ nhớ cache nhằm mục đích chủ yếu để giảm thiểu dư thừa dữ liệu không cần thiết lúc bộ nhớ cache khi xử
lý dòng thông tin vô hạn, và bổ sung một tính toán tinh vi chuyển đổi định dạng số.
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ã hiện có của MMX sang SSE2 dưới dạng tương đương Do thanh ghi
XMM dài gấp đôi thanh ghi MMX, nên vòng lặp đếm và truy cập bộ nhớ phải thay đôi để phù hợp với thanh đổi này.
3 Kiến trúc tập lệnh
32
11/10/13
Trang 33 Missprediction penalty mất khoảng 13 chu kỳ clock đối với Pentium
M và 15 chu lỳ đối với Core2, phụ thuộc vào độ dài pipeline
Những lệnh nhảy, gọi, và trả về xa thì không dự đoán được
4.2 Mô hình nhận biết điều kiện nhảy
Điều kiện nhảy được xử lý bới một bộ dự đoán kết hợp giữa một bộ
đếm vòng lặp và dự đoán hai tầng Thêm vào đó có một cơ chế cho
dự đoán các lệnh nhảy và lời gọi gián tiếp
Một lệnh rẽ nhánh được nhận biết là có hành vi lặp lại nếu đi một
đường n-1 lần và sau đó đi vào đường khác một lần Một bộ đếm vòng lặp có thể dự đoán hành vi lặp lại một cách hoàn hảo nếu độ dài của n không lớn hơn 64
4 Cơ chế dự đoán rẽ nhánh
4.1 Mispredition penalty:
33
11/10/13
Trang 34 Sử dụng dự đoán hai tầng giống như lệnh rẽ nhánh Các nhánh rẽ
không lặp và lệnh nhảy,lời gọi gián tiếp cùng chia sẻ bộ đệm lịch sử
và mô hình bảng lịch sử, nhưng không cùng BTB (Branch Target Buffer)
Bộ đệm lịch sử lưu trữ nhiều hơn một bit cho mỗi cổng vào để phân
biệt giữa hai đích trong một lệnh nhảy/lời gọi gián tiếp Một mô hình định kỳ có thể được dự đoán nếu tất cả độ dài của các mô hình con là khác nhau
Cho phép dự đoán cho các điều kiện nhảy bới chúng dùng chung bộ
đệm lịch sử Một điều kiện nhảy có thế tạo ra một dự đoán dựa trên
sự khác nhau giữa đích nhảy và lệnh nhảy gián tiếp trước đó
4 Cơ chế dự đoán rẽ nhánh
4.3 Nhận biết lệnh nhảy và lời gọi gián tiếp:
34
11/10/13