Tiểu luận Tìm hiểu kiến trúc vi xử lý pentium M

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. Nó là một thiết bị đa chức năng, lập trình được, nhận các tín hiệu số đầu vào, xử lý nó theo các lệnh lưu trong bộ nhớ, cung cấp kết quả đầu ra. Vi 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ũng gầ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ế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

docx38 trang | Chia sẻ: oanhnt | Lượt xem: 2232 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Tiểu luận Tìm hiểu kiến trúc vi xử lý pentium M, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG LỚP : D09CN4 NHÓM 4 TIỂU LUẬN ĐỀ TÀI: TÌM HIỂU KIẾN TRÚC VI XỬ LÝ PENTIUM M THÀNH VIÊN : Nguyễn Thị Hiền Ngô Ngọc Hà Nguyễn Ngọc Hà Phan Văn Hải Trần Bá Hoàng Trịnh Văn Hiếu Đào Quang Hợp Đỗ Vũ Mục lục I,GIỚI THIỆU: 1, Giới thiệu chung 1.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. Nó là một thiết bị đa chức năng, lập trình được, nhận các tín hiệu số đầu vào, xử lý nó theo các lệnh lưu trong bộ nhớ, cung cấp kết quả đầu ra. Vi 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ũng gầ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ế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.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ỉ 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 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ánh trong ALU. Một ALU có thể so sánh hai số và 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 2, Giới thiệu về vi xử lý Intel Pentium M(PM) 2.1, Xuất sứ Pentium M được xây dựng trên kiến trúc thế hệ thứ 6 của Intel, kiến trúc này cũng được sử dụng trong các CPU Pentium pro, Pentium II, Pentium III và các CPU trước đây của celeron chứ không phải dựa trên Pentium 4. Kiến trúc P6 là thế hệ thứ 6 của vi kiến trúc Intel x86 với sự ra đời đầu tiên của vi xử 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 cho phé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. Hì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ản cuố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ữa nhâ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 P3 cũ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ền tả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 CPU Pentium 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), cache thứ 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ện nă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ầu hiệ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ụng vớ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 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 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ủ. 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ọn của ASUS cho socket 478 Pentium 4, Pentium M còn thích hợp với các hệ thống nhúng vì tính tiết kiệm năng lượng và Pentium M cho phép thiết kế không cần quạ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. 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.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ần trê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. 2.3, Các thông số chính Processor Intel® Pentium® M Processor Processor Number 780, 778, 773, 770, 765, 760, 758, 755, 753, 750, 745, 740, 738, 735, 733J,733,  730, 725, 723,718,  715, 713 NA Architecture 90 nm, 130 nm process technology 130 nm process technology L2 Cache 2MB, 1MB 1MB Clock Speed 1,5 to 2.26 GHz 1,3 to 1,7GHz Clock Speed--Low Volt 1.30 to 1.60 GHz 1.10 to 1.20 GHz Clock Speed--Ultra Low Volt 1 to 1.30 GHz 1 GHz and 900 MHz Front Side Bus 533 or 400 MHz 400 MHz Chipset Mobile Intel® 915 Express Chipset Family Intel® 855 Chipset Family Intel® 855 Chipset Family Wireless Intel® PRO/Wireless Network Connection Intel® PRO/Wireless Network Connection Cache L2 Là dung lượng của vùng nhớ đệm cấp 2. Đây là nơi lưu trữ các dữ liệu nằm chờ phần cứng xử lý. Mục đích của nó là để tăng tốc độ xử lý của chip. Chỉ số này càng cao sẽ giúp cho CPU xử lý nhanh và mượt mà hơn. Clock speed: Đâ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 Cá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 . Đặc trưng Lợi ích 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ới năng lượng thấp hơn. Support for enhanced Intel SpeedStep® Technology w/ multiple voltage & frequency operating points. tinh toán tốt hơn về hiệu suất với nhu cầu của người dùng Execute Disable Bit° Support Công nghệ chống tràn bộ nhớ,chống lại một số vius và mã độc 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ách tay 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 2.4, Các dòng vi xử lý PM : Pentium M đầu tiên đã được xác định bởi các tên mã là Banias, được đặt tên theo một trang web ở cao nguyên Golan, tiếp đó 10 tháng 5 năm 2004 Intel tung ra Pentium M với tên gọi là Dothan, đặt theo tên một thị trấn cổ xưa tại Israel. 2.4.1, Banias: Dòng sản phẩm đầu tiên của Pentium M có tên mã la Banias.với cấu trúc bộ nhớ đệm L1 là 32kb,bộ nhớ đệm L2 là 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 để tiế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ới socket 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ó. Hình 2.4.1-a:Banias core Thông số chính Số tranzitor 77 triệu,nhiều hơn 23 triệu so với P4 L2 cache 1M FBS 400 MHz Process 130nm Xung đồng hồ 1.3-1.7 GHz Công suất 24.5W 2.4.2, Dothan Hình 2.4.2-a: Dothan core 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 cho thấy mức tiêu thụ pin là như nhau Hình 2.4.2-b: PM 730 core Dothan Cấ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ông nghệ Execute Disable,socket 478 và 479 và 140 triệu transistors trên diện tích vuông là 3.45 inch(87.66 mm2). II, KIẾN TRÚC CỦA VI XỬ 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ì trong kiế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 so vớ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ông nghệ 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 qua một vài nhánh phân tích dòng dữ liệu(Dataflow analysis): sắp xếp lịch trình cho các lệnh để được xử lý khi sắn sàng, không phụ thuộc vào thứ 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ía trướ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ày cho phép bộ nhớ cache chạy ở tốc độ mà các thế hệ trước không thể nào sánh được. Vi 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óm lệ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 CPU Pentium 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àm cho 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: Real Clock Performance Transfer Rate 100 MHZ 400 MHZ 3.2 GB/s 133 MHZ 533 MHZ 4.2GB/s 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.  1. Sơ đồ khối : 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ộ đệm Translation 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ệm lấ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 từ bus ngoài. Các địa chỉ nhánh được ghi nhớ trong bộ đệm nhánh đích. TLB dị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ỗi cá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 và cách hoạt động củ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: 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 đủ. Intel không tiết lộ cấu trúc pipeline của Pentium 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ác giai đ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, đọc lệnh, giải mã lệnh, register renaming(được sử dụng để 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 ), các cổng thực thi, bộ đệm ghi lại và giai đoạn nghỉ. Một vài thay đổi nhỏ đã được tạo ra như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ủa P3, đồ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úc khở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ông tin này trong mạch dự đoán rẽ nhánh 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ăng cao để 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 khi tí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ạn này , thanh ghi gốc mà lệnh sử dụng được đổi thành 1 trong 40 thanh 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 vi lệnh có sẵn và nếu có một vị trí tại hàng đợi vi lệnh reservation station 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ị thi hà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ện theo thứ tự. Có thể có đến 3 vi lệnh được chuyển khỏi Reorder Buffer trong mỗi chu kỳ clock Độ dài của pipeline có thể ước lượng được từ việc misprediction penalty. Việc dự đoán sai trong PM kéo dài hơn trong P2 và P3 khoảng 3-4 chu kỳ 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ạp lệ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àm chậ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 4 giai đ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ạn trong pipeline hay không? Số các giai đoạn từ giai đoạn ROB-read tới giai đoạn ROB-writeback có thể ược ước lượng bằng các
Tài liệu liên quan