Các vi xử lý hiện đại có thể bao gồm xử lý dấu phảy động vớicá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ộ
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
LỚP : D09CN4 NHÓM 4
Trang 2M c l c ục lục ục lục
I,GIỚI THIỆU: 3
1, Giới thiệu chung 3
1.1, Vi xử lý là gì? 3
1.2, Các thành phần cơ bản : 3
2, Giới thiệu về vi xử lý Intel Pentium M(PM) 5
2.1, Xuất sứ 5
2.2, Ứng dụng 6
2.3, Các thông số chính 7
2.4, Các dòng vi xử lý PM : 9
II, KIẾN TRÚC CỦA VI XỬ LÝ INTEL PENTIUM M 11
1 Sơ đồ khối : 13
2, Các thành phần chính và cách hoạt động của chúng 14
2.1, Pipeline trong Pentium M 14
2.2, Bộ nhớ cache và đơn vị tìm nạp 18
2.3, Instruction Decoder và Register Renaming 19
2.4, Bộ đệm xắp xếp 20
2.5, Reservation station và đơn vị thực thi 21
2.6, Đơn vị tính toán và số học ALU 23
2.7, Đơn vị xử lý dấu phảy động FPU(Floating Point Unit) 23
2.8, Cache L1 23
2.9, Giao diện bus 24
2 Kiến trúc tập lệnh 25
2.1, MMX(MultiMedia eXtentions, Multiple Math eXtension, orMatrix Math eXtension): 25 2.2, SSE (Single SIMD Extentions): 26
2.3, SSE2: 27
3,Cơ chế dự đoán rẽ nhánh trong PM 29
3.1, Mispredition penalty: 29
3.2, Mô hình nhận biết điều kiện nhảy 29
3.3, Nhận biết lệnh nhảy và lời gọi gián tiếp: 29
III, CÁC ĐẶC TÍNH VÀ CÔNG NGHỆ MỚI 30
1, Các đặc trưng chủ yếu của Intel Pentium M” 30
2, Công nghệ SpeedStep nâng cao(Enhanced SpeedStep Technology) 33
III, KẾT LUẬN 35
1 So sánh đánh giá 35
2
Trang 3Vi xử lý là trái tim của bất kỳ một máy tính thông thường nào Bất kể làmáy bàn, laptop hay server, vi xử lý bạn đang sử dụng là loại gì thì chúng cũnggần giống nhau và làm việc theo cách gần như nhau
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ếtphả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ớicá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.2, Các thành phần cơ bản :
Các thành phần cơ bản của vi xử lý nói chung :
- 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ỉ
3
Trang 4- 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ộtlệ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
Hình 1.2.1-a : Các thành phần cơ bản của vi xử lý
- 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
- ALU có thể coi đơn giản như là một bộ cộng 8 bit, hoặc có thể cộng, trừ,nhân, chia
- Thanh ghi thử là một chốt đặc biệt để giữ các giá trị từ phép so sánhtrong ALU Một ALU có thể so sánh hai số và quyết định xem chúngbằ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ềukhiển tất cả các thành phần khác
4
Trang 52, Gi i thi u v vi x lý Intel Pentium M(PM) ới thiệu về vi xử lý Intel Pentium M(PM) ệu về vi xử lý Intel Pentium M(PM) ề vi xử lý Intel Pentium M(PM) ử lý Intel Pentium M(PM)
lý Pentium Pro vào năm 1995, nó đã từng thành công với vi kiến trúc NestBurst
và cuối cùng hồi sinh trong các dòng sản phẩm PM, người kế nhiệm của PM vàcác vi xử lý Core đời sau cũng đều là biến thể từ vi kiến trúc P6
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 P 4 ra đời làkết quả của tác động thị trường hướng tới việc gia tăng tốc độ xung nhịp,nhưng đi kèm với đó là việc tiêu tốn điện năng và tỏa nhiệt lớn, không chophép các máy tính xách tay hoạt động trong một thời gian dài Intel hiểu họphải làm gì đó nếu muốn tiếp tục cạnh tranh trong thị trường này, vì vậy họgiao nhiệm vụ cho một đội thiết kế đặt tại Isarel làm việc với bộ xử lý x86 mới
để thiết kế từ đầu với mục tiêu tiết kiệm năng lượng đặt lên hàng đầu
5
Trang 6Hình 2.1-a: quá trình ra đời của các vi xử lý intel với số transitor tích hợp ngày càng tăng cao
Vi xử lý với tên mã là Banias cuối cùng là PM ra đời PM là phiên bảncuối cùng 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ữanhân P3 với các đặc tính tiên tiến của P 4, 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 Trong các bài kiểm tra benchmark,
PM đứng ngang hàng với P4 với tốc độ xung nhịp cao hơn, sự ra đời của P3cũng đánh dấu sự chấm dứt cho P4 Các vi xử lý Core thế hệ sau dựa trên nềntảng PM dù tên gọi khác hẳn Vi kiến trúc PM thừa hưởng một vài đặc tính từPentium III và Pentium 4, bổ sung thêm nhiều đặc tính mới Giống như các CPUPentium 4, vi xử lý PM khai thác quaq-pump Front SideBus chạy ở 100 và133MHz, hoặc hiệu quả hơn tại 400 và 533 MHz P M chia ra 32 KB cache lệnh
và cache dữ liệu( rộng hơn hai lần so với của Pentium 4 và Pentium III), cachethứ cấp rộng 1 hoặc 2 MB, bao gồm tập lệnh MMX, SSE, và SSE2 Vi xử lý hỗ trợnhiều chế độ tiết kiệm năng lượng đã được giới thiệu trong Mobile Pentium 4,bao gồm chế độ Deeper Sleep Thêm vào các chế độ này, CPU còn bao gồm bộlogic giúp tắt các phần trong CPU khi chúng không cần thiết để tiết kiệm điệnnăng Intel PM còn được trang bị công nghệ SpeedStep tiên tiến, công nghệnày cho phép CPU chuyển đổi về tần số và điện áp thấp hơn khi không yêu cầuhiệu năng tối đa Nằm trong gói 479 micro FC-BGA và gói 478 pin micro FC-PGA Gói FC-PGA này không tương thích với các gói 478 khác mà Intel sử dụngvới mobile Pentium III-M, Mobile Pentium 4/4-M Core Duo/Solo và vi xử lýCore 2 Duo
2.2, ng d ng Ứng dụng ục lục
Mặc dù 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 Mtương thích với các bản mạch dành cho những người quan tâm, HTPC, máytrạm và máy chủ Một bộ chuyển đổi, CT-479 đã được phái triển bởi ASUS đểcho phép sử dụng vi xử lý PM trong các thiết kế bo mạch chủ được lựa chọncủa ASUS cho socket 478 Pentium 4, Pentium M còn thích hợp với các hệ thốngnhúng vì tính tiết kiệm năng lượng và Pentium M cho phép thiết kế không cầnquạt tản nhiệt và thu nhỏ nhúng vào PC Như đã nói ở trên 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
6
Trang 7Centrino không phải là một bộ vi xử lý cho laptop mà là một nền tảng kết hợpgiữ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ếtkiệm điện năng tiêu thụ cho laptop.Trong một vài trường hợp, Pentium Mđược gọi là Centrino, thực ra chỉ có Centrino khi hội tụ đầy đủ 3 thành phầntrên Vì vậy nếu bạn có một laptop với Pentium M mà không có 2 phần kia thìkhông thể gọi là Centrino được Nền tảng Centrino có 5 thế hệ và bộ xử lý PMđược sử dụng trong hai thế hệ đầu tiên là Carmel và Sonoma
Clock Speed Low Volt 1.30 to 1.60 GHz 1.10 to 1.20 GHz
Clock Speed Ultra Low 1 to 1.30 GHz 1 GHz and 900 MHz
7
Trang 8Intel® 855 Chipset Family
Intel® 855 Chipset Family
Wireless Intel® PRO/Wireless
Network Connection
Intel® PRO/Wireless Network Connection
Đây là xung nhịp của bộ vi xử lý được tính bằng số phép tính mà bộ vi
xử lý tính được trong 1 giây Xung nhịp là 1.6 GHz cho biết vi xử lý có thể tínhđược 1,6 triệu phép tính trong 1 giây Không thể chỉ dựa vào xung nhịp đểđánh giá độ mạnh yếu của vi xử lý vì nó còn phụ thuộc vào rất nhiều thứnhư bộ nhớ đệm hay số nhân
Bộ xử lý PM làm việc dưới các tần số lõi như sau:
1.3GHz, 1.40GHz,1.50GHz,1.60GHz,1.70GHz
- Trạng thái điện áp thấp: 1.10GHz, 1.20GHz,1.30GHz
- Trạng thái điện áp cực thấp:
900MHz,1.00GHz,1.10GHz
FSB (Front Side Bus)
Là chỉ số đo tốc độ của đường
giao tiếp giữa CPU và mainboard Một
chip vi xử lý được đánh giá nhanh hay
chậm tuỳ thuộc khá lớn vào giá trị này
Khi chọn main và CPU bạn phải chọn
CPU có Bus thấp hơn hoặc bằng
mainboard thì CPU mới làm việc được
tối đa công suất
Instruction
8
Trang 9Các tập lệnh được hỗ trợ: MMX, SSE và SSE2
package
Vi xử lý PM được đóng trong hai gói: Micro-FCPGA và Micro-FCBGA
Ngoài ra PM còn có một số đặc trưng sau
.
Power Optimized 533/400 MHz processor
system bus, Micro-ops Fusion & Dedicated
Stack Manager.
Cho phép thực hiện nhanh hơn vớinăng lượng thấp hơn
Support for enhanced Intel SpeedStep®
Technology w/ multiple voltage & frequency
Support for Intel® Mobile Voltage
Positioning (Intel® MVP IV).
Tự động làm giảm điện áp dựa trên sựhoạt động của vi xử lý để thiết kế mứcđiện năng thấp hơn cho máy tính xáchtay có kích thước nhỏ hơn
Micro FCPGA & FCBGA packaging technology Thiết kế mỏng hơn,nhẹ hơn nhưng
vẫn mang lại hiệu suất vượt trội
1M,làm việc với tốc độ bus mặt trong là 400 Mhz(100 MHz
vận chuyển 4 luồng dữ liệu trên 1 chu lỳ đồng hồ),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 để
9
Trang 10tiết kiệm pin khi máy tính nhàn rỗi).Banias sản xuất với quy trình 130nm,vớisocket 478 hoặc là 479 và có 77 triệu transistors trên diện tích 3.36 inch(cỡ82.79 mm2),sử dụng đồng trên các lớp kim loại của nó.
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).Dòng
pentium M 700 vẫn giữ nguyên thiết kế như như bản
gốc nhưng được sản xuất dưới công nghệ 90nm và gấp
đôi bộ nhớ thứ cấp Dothan có tới 140 triệu tranzitor,
công suất được giảm xuống 21W(so với 24,5 W của
dòng Banias) Mặc dù sử dụng năng lượng thấp hơn
nhưng xung nhịp lại tăng nhẹ Kết quả kiểm tra Dothan
và banias trên laptop chothấy mức tiêu thụ pin lànhư nhau
10
Hình 2.4.2-a: Dothan core
Hình 2.4.2-b: PM 730 core
Dothan
Trang 11Cấu trúc bộ nhớ đệm như sau: L1 là 32kb và l2 là 2M.làm việc với tần số bus
400 MHz hoặc là 533 MHz(100 MHz hoặc 133MHz chuyển bốn dữ liệu trên chu
kỳ đồng hồ).có hỗ trợ cấu trúc SSE2,công nghệ Enhanced SpeedStep,và côngnghệ Execute Disable,socket 478 và 479 và 140 triệu transistors trên diện tíchvuông là 3.45 inch(87.66 mm2)
II, KI N TRÚC C A VI X LÝ INTEL PENTIUM M ẾN TRÚC CỦA VI XỬ LÝ INTEL PENTIUM M ỦA VI XỬ LÝ INTEL PENTIUM M Ử LÝ INTEL PENTIUM M
Trước khi tìm hiểu kiến trúc của vi xử lý PM, chúng ta hãy xem xét
vi kiến trúc P6 và các đặc điểm nổi trội của nó so với thế hệ trước.Nếu nhưtrong vi kiến trúc thế hệ thứ năm, đặc tính chính là kiến trúc superscalar,hai đơn vị thực thi lệnh có thể thực hiện đồng thời, song song thì trongkiến trúc P6 có xử lý động và kiến trúc hai bus độc lập, một tiến bộ lớn sovới thế hệ trước
Xử lý động(Dynamnic Execution): Cho phép bộ xử lý thực hiện
nhiều lệnh song song, vì vậy tác vụ được hoàn thành nhanh hơn Côngnghệ mới này bao gồm 3 nhân tố chính:
dự đoán rẽ nhiều nhánh: dự đoán luồn chương trình thông quamột vài nhánh
phân tích dòng dữ liệu(Dataflow analysis): sắp xếp lịch trìnhcho các lệnh để được xử lý khi sắn sàng, không phụ thuộc vàothứ tự của chúng trong chương trình ban đầu
thực hiện suy đoán: tăng tỉ lệ thực thi bằng cách nhìn vào phíatrước của bộ đếm chương trình và thực hiện các lệnh được cho
là cần thiết
Hai bus độc lập: đặc tính chính của vi kiến trúc P6 được biết đến là
có hai bus độc lập Điều này đề cập đến thực tế là bộ xử lý có hai bus dữliệu, một cho hệ thống(bo mạch chủ) và một dành riêng cho cache Điều nàycho phép bộ nhớ cache chạy ở tốc độ mà các thế hệ trước không thể nàosánh được
11
Trang 12Vi kiến trúc P6 nâng cấp vi kiến trúc P5 bằng cách thêm vào nhiềuđơn vị thực thi hơn và bẻ các lệnh thành các vi lệnh nhỏ hơn Đây cũng làlúc các lệnh CISC được bẻ thành các nhóm lệnh RISC nhỏ hơn Các nhómlệnh RISC thì nhỏ hơn và dễ xử lý song song hơn
Để hiểu rõ về kiến trúc PM hãy so sánh sự khác nhau giữa các CPUPentium M và Pentium III:
Nhìn bên ngoài có vẻ như PM làm việc giống với P4, truyền tải dữ liệu 4 lần trên một chu kỳ clock Kỹ thuật này gọi là QDR(quad data rate) và làmcho bus trong có hiệu năng tăng gấp bốn lần chỉ số thực của đồng hồ, xem bảng sau:
Bảng : tốc độ thực của đồng hồ và hiệu năng bus đạt được
L1 memory cache: Hai L1 memory cache 32 KB, một cho dữ liệu và một cho chỉ lệnh (Pentium III có hai L1 memory cache16 KB)
L2 memory cache: 1 MB trên các mô hình 130 nm (lõi “Banias”) hay 2
MB trên các mô hình 90 nm (lõi “Dothan”) Pentium II chỉ có đến 512 KB.Celeron M, phiên bản rẻ tiền nhất của Pentium M cũng có 512 KB L2 memory cache Hỗ trợ cho các lệnh SSE2
Dự báo rẽ nhánh tiên tiến: Dự báo rẽ nhánh đã được thiết kế lại (và được dựa trên mạch của Pentium 4) để cải thiện hiệu suất
Sự hợp các vi lệnh : Bộ giải mã chỉ lệnh hợp nhất hai vi lệnh thành một
để có thể tiết kiệm được năng lượng và cải thiện hiệu suất
Công nghệ SpeedStep nâng cao, đây là công nghệ cho phép các CPU có thể giảm được clock trong chế độ nhàn rỗi để tiết kiệm thời gian sống của pin Một số tính năng nhằm tiết kiệm cho pin cũng đã được bổ sung vào kiến trúc siêu nhỏ của Pentium M, vì mục đích của các CPU này ban đầu được thiết kế cho các dòng di động
Bây giờ chúng ta hãy đi xem xét sâu hơn về kiến trúc của Pentium M
12
Trang 131 S đ kh i ơ đồ khối ồ khối ố chính :
Hình II.1-a: sơ đồ khối của bộ xử lý Pentium
Sơ đồ khối trên chỉ ra hai ống lệnh: U và V Ống U có thể thực hiện tất
cả các lệnh số nguyên và dấu phảy động, ống V dành cho các lệnh số nguyênđơn giản và lệnh dấu phảy động FXCH
Các cache được chỉ ra bao gồm code cache và data cache Data cache
có hai cổng, mỗi cổng cho một ống lệnh Data cache có một bộ đệmTranslation Lookaside(TLB) dành riêng để truyền các địa chỉ tuyến tính tới cácđịa chỉ vật lý được data cache sử dụng
Code cache, branch target buffer và prefetch buffer chịu trách nhiệmlấy các lệnh vào cho đơn vị thực thi Các lệnh được đọc vào từ cache lệnh hoặc
13
Trang 14từ bus ngoài Các địa chỉ nhánh được ghi nhớ trong bộ đệm nhánh đích TLBdịch các địa chỉ tuyến tính thành các địa chỉ vật lý cho code cache sử dụng
Đơn vị giải mã giải mã các lệnh được đọc vào để đơn vị xử lý có thểthi hành chúng Đơn vị điều khiển ROM bao gồm các vi mã điều khiển chuỗicác thao tác phải được thực hiện, nó điều khiển trực tiếp cả hai ống lệnh
2, Các thành ph n chính ần chính và cách ho t đ ng c a chúng ạt động của chúng ộng của chúng ủa chúng
Hình II.2-a: vi xử lý Pentium
2.1, Pipeline trong Pentium M
2.1.1, Các giai đo n và c ch ho t đ ng: ạn và cơ chế hoạt động: ơ chế hoạt động: ế hoạt động: ạn và cơ chế hoạt động: ộng:
Pipeline là một danh sách các giai đoạn mà một lệnh cho trước phải điqua để có thể được thực hiện đầy đủ Intel không tiết lộ cấu trúc pipeline củaPentium M nên chúng ta sẽ nói về Pentium III Việc phân tích Pentium III sẽcho ta thấy cách vi kiến trúc Pentium M làm việc, trên cơ sở đó dự đoán cácgiai đoạn mà Intel đã đưa thêm vào kiến trúc này Pentium M có kiến trúc cơbản giống với PPro, P2 và P3 với các giai đoạn chính là : dự đoán rẽ nhánh, đọclệnh, giải mã lệnh, register renaming(được sử dụng để tránh việc tuần tự hóamộ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ụngcác thanh ghi), reorder buffer read, reservation station(mỗi toán hạng trongmỗi lệnh trong hàng đợi có một vị trí trong các file thanh ghi ), các cổng thực
14
Trang 15thi, bộ đệm ghi lại và giai đoạn nghỉ Một vài thay đổi nhỏ đã được tạo ranhưng nói chung thì chức năng của chúng không khác nhau là mấy
Hình II.1.2.1-a:cấu trúc pipeline của Pentium Pro
Hình II.1.2.1-b: pipeline của Pentium III
Sau đây là các giải thích cơ bản cho mỗi giai đoạn trong pipeline củaP3, đồng thời giải thích cách thức các bộ xử lý P6 xử lý một lệnh được giao nhưthế nào
IFU1: tải từ 1 dòng(32 byte,256 bíts) từ cache lệnh L1 và lưu trữ
trong Instruction Streaming Buffer
IFU2: nhận dạng lệnh giới hạn trong vòng 16 byte(128 bit) Kể từ
lệnh x86 không có độ dài cố định, giai đoạn được đánh dấu từ lúckhởi đầu lệnh và kết thúc khi đã load được 16 byte Nếu có lệnh rẽnhánh nào trong vòng 16 byte này, địa chỉ của nó sẽ được lưu trữtại Branch Target Buffer(BTB) để CPU có thể sử dụng những thôngtin này trong mạch dự đoán rẽ nhánh
15
Trang 16 IFU3: đánh dấu nơi các lệnh giải mã được gửi tới, có 3 bộ giải mã
hướng tới các đơn vị khác nhau
DEC1: giải mã lệnh x86 thành vi lệnh RISC, khi CPU có tới 3 bộ giải
mã thì không thể cùng lúc giải mã 3 lệnh được
DEC2: gửi các vi lệnh đến hàng đợi giải mã lệnh, với dung lượng là
6 vi lệnh Nếu lệnh được chuyển đổi thành nhiều hơn 6 vi lệnh thìgiai đoạn phải được lặp lại để lấy các lệnh còn thiếu
RAT: từ khi vi kiến trúc P6 kế thừa OOO(out of order execution,
một mô hình được sử dụng hầu hết trong các vi xử lý hiệu năngcao để tận dụng vòng đợi lệnh) , giá trị của một thanh ghi có thểđược thay thế bởi việc đặt nó trong dòng chương trình trước khitính đúng đắn của nó được xác định, làm gián đoạn việc lấy dữliệu của các lệnh khác Để giải quyết xung đột này, tại giai đoạnnày , thanh ghi gốc mà lệnh sử dụng được đổi thành 1 trong 40thanh ghi bên trong mà vi kiến trúc P6 có
ROB: tại giai đoạn này , 3 micro-ops được load vào Reorder
Buffer(ROB) Nếu tất cả dữ liệu cần thiết cho việc thi hành một vilệnh có sẵn và nếu có một vị trí tại hàng đợi vi lệnh reservationstation thì một vi lệnh sẽ được chuyển đến hàng đợi này
DIS: nếu vi lệnh không được gửi đến trạm đăng ký hàng đợi(RS) thì
nó đã hoàn thành tại giai đoạn này Vi lệnh sẽ gửi nó tới đơn vị thihành thích hợp
EX: vi lệnh được thi hành tại đơn vị thi hành lệnh thích hợp,
thường mỗi vi lệnh chỉ cần một chu kỳ đồng hồ để được thi hành
RET1: kiểm tra Reorder Buffer nếu có vi lệnh nào có thể đánh dấu
cờ đã thi hành
RET2: khi tất cả các vi lệnh liên quan đến lệnh x86 trước đây đã
được chuyển khỏi Reorder Buffer và các lệnh x86 hiện tại đangđược thi hành, các vi lệnh này được chuyển khỏi Reorder Buffer vàthanh ghi x86 được cập nhật Giai đoạn nghỉ phải được thực hiệntheo thứ tự Có thể có đến 3 vi lệnh được chuyển khỏi ReorderBuffer trong mỗi chu kỳ clock
Độ dài của pipeline có thể ước lượng được từ việc mispredictionpenalty Việc dự đoán sai trong PM kéo dài hơn trong P2 và P3 khoảng 3-4 chu
16
Trang 17kỳ clock Điều này chỉ ra rằng pipeline PM phải dài hơn khoảng 3-4 giai đoạn,chúng ta sẽ lần lượt tìm hiểu xem các giai đoạn này dùng để làm gì.
Cơ chế dự đoán rẽ nhánh trong PM phức tạp hơn các bộ xử lý trước
đó, vì thế có thể nó cần tới 3 giai đoạn trong pipeline thay vì hai Việc tìm nạplệnh cũng được cải tiến để giới hạn 16 byte hay giới hạn dòng cache không làmchậm lệnh nhảy Việc này có thể yêu cầu mở rộng đơn vị đọc lệnh từ 3 lên 4giai đoạn Stack engine mới được thực hiện gần giải mã lệnh, ít nhất một giaiđoạn pipeline được dành cho stack engine và cho việc đồng bộ hóa các vi lệnhđược chèn trong stack Liệu cơ chế hợp các vi lệnh có yêu cầu thêm giai đoạntrong pipeline hay không? Số các giai đoạn từ giai đoạn ROB-read tới giai đoạnROB-writeback có thể ược ước lượng bằng cách đo việc đọc của thanh ghi Quátrình đo đạc chỉ ra rằng nó chỉ khoảng 3 chu kỳ clock nên có thể kết luận làkhông có giai đoạn bổ sung nào dành cho việc tách các vi lệnh trước khi đưachúng vào xử lý Hai phần của một vi lệnh hợp cùng chia sẻ một lối vào ROB.Các giai đoạn RAT, ROB-read và RS đều đã được chỉnh sửa để xử lý hợp nhất 3
vi lệnh với 3 đầu vào phụ thuộc Có thể một giai đoạn bổ sung của pipelineđược thêm vào RAT vì khối lượng công việc trong giai đoạn này tăng lên PMcòn có nhiều đặc tính tiết kiệm năng lượng bằng cách tắt các phần trong bustrong, các đơn vị thực thi, … khi chúng không được sử dụng đến Chúng takhông biết liệu các đặc tính này liệu có yêu cầu thêm giai đoạn trong pipelinehay không, nhưng nó mang lại ảnh hưởng tích cực trong việc chạy với tần số tối
đa mà không làm nóng chip Các cơ chế hợp lệnh, stack engine và dự đoán rẽnhánh phức tạp không những giúp giảm hao phí điện năng mà còn giúp tăngtốc độ thực thi
Nói tóm lại pipeline của PM có nhiều hơn pipeline PPro khoảng 3 đến
4 giai đoạn, bao gồm một giai đoạn cho dự đoán rẽ nhánh, một cho việc tìmnạp lệnh, và một cho stack engine
2.1.2, Hi n t ện tượng nút cổ chai ượng nút cổ chai ng nút c chai ổ chai
Đây là điểm quan trọng cần chú ý, khi tối ưu hóa một mẩu của đoạn mã,
để tìm ra nhân tố điều khiển tốc độ thực thi
Truy cập bộ nhớ:Nếu chương trình đang làm việc với một lượng
dữ liệu rất lớn, hoặc nếu dữ liệu được đặt rải rác trong bộ nhớ sẽ dẫn đến tình trạng cache không tìm đúng được dữ liệu đó Việc
17
Trang 18truy cập vào dữ liệu không có trong cache dẫn đến việc tốn thời gian Các cache được tổ chức như các dòng được căn độ dài 64 byte mỗi dòng, neesy một byte trong số 64 byte được truy ập thì tất cả 64 byte sẽ được tải về cache L1 Vì vậy để tránh tình trạng miss của cache, nên đặt các dữ liệu có liên quan ở cùng một chỗ
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ố, lệnh 26bit với toán hạng tức thì trong chế độ
32 bit
Hợp các vi lệnh : Hợp các vi lệnh và stack engine cho phép các vi
lệnh chứa nhiều thông tin hơn Nó có thể là một lợi thế nế bộ giải
mã hoặc giới hạn 3 vi lệnh/chu lỳ clock là một nút cổ chai
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à một 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ớ Các vi lệnh stack đồng bộ hóa đi đến cổng 0 hoặc 1 Số các lệnh kiểu này
có thể được hạn chế bằng cách thay lệnh MOV liên quan đến con trỏ stack bằng các lệnh PUSH và POP
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.2, B nh cache và đ n v tìm n p ộng của chúng ới thiệu về vi xử lý Intel Pentium M(PM) ơ đồ khối ị tìm nạp ạt động của chúng
Dung lượng bộ nhớ cache L2 cóthể là 1MB(dòng Banias) hoặc2MB(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ạichứa dữ liệu cũng với dunglượng 32KB Đơn vị tìm nạplệnh được chia làm 3 giai đoạn.Đơn vị tìm nạp tải một dòng(32byte) vào trong bộ đệm dòng
18 hình II.2.2-a: bộ nhớ cache và đơn vị tìm nạp
Trang 19lệnh(ISB), sau đó Instruction Length Decoder nhận dạng ranh giới các lệnhtrong vòng 16 byte Các lệnh x86 không có độ dài cố định , giai đoạn này đánhdấ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 TargetBuffer(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 Sau đó 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.3, Instruction Decoder và Register Renaming
Từ khi giới thiệu kiến trúc P6 với bộ xử lý Pentium Pro sử dụng kiếntrúc CISC/RISC, bộ xử lý phải chấp nhận các lệnh CISC, còn được biết đến như
là các lệnh của x86, cho đến nay, tất cả các phần mềm được viết đều sử dụngloại lệnh này Một CPU chỉ có RISC không thể sử dụng trong PC bởi nó khôngchạy được các phần mềm ngày nay như Window hay Office Vì vậy giải phápđược sử dụng cho tất cả các bộ xử lý trên thị trường ngày nay từ Intel tới AMD
là sử dụng một bộ giải mã CISC/RISC Trong CPU, RISC được xử lý như lệnh,nhưng phía trước kết thúc của nó chỉ chấp nhận các lệnh CISC x86
Các lệnh CISC x86 được gọi là lệnh như các lệnh RISC bên trong đượcgọi là vi lệnh Tuy nhiên các vi lệnh RISC không được truy cập trực tiếp, vì vậykhông thể tạo được phần mềm dựa trên các lệnh này thông qua bộ giải mã.Mặc dù vậy, mỗi CPU sử dụng ác lệnh RISC riêng không được công bố rộng rãi
và không tương thích với các vi lệnh từ CPU khác Vi lệnh của PM khác với P4.Phụ thuộc vào độ phức tạp của lệnh x86, nó phải được chuyển đổi về các vilệnh RISC
Hình II.2.3-a: bộ giải mã lệnh và đổi tên thanh ghi
19