1. Trang chủ
  2. » Luận Văn - Báo Cáo

tiểu luận tìm hiểu vi xử lý pentium 4

32 1,3K 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tiểu luận Tìm hiểu vi xử lý Pentium 4
Tác giả Nhóm 3
Người hướng dẫn Ts. Hoàng Xuân Dậu
Trường học Đại học Bách Khoa Hà Nội
Chuyên ngành Kỹ Thuật Vi Xử Lý
Thể loại Báo cáo bài tập nhóm
Năm xuất bản 2000-2004
Thành phố Hà Nội
Định dạng
Số trang 32
Dung lượng 1,43 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

The Memory Subsystem a.The In-Order Front End In-Order Front End có nhiệm vụ nạp và giải mã lệnh.Front End có khả năng dự đoán rẽ nhánh chính xác cao nhờ lưu trữ lịch sử thực hiện chư

Trang 1

Tiểu luận Tìm hiểu vi xử lý

Pentium 4

Trang 2

BÁO CÁO BÀI TẬP NHÓM

D09cn1 Nhóm 3

Môn: Kỹ Thuật Vi Xử Lý

GV: Ts.Hoàng Xuân Dậu

Đề tài: Tìm hiểu VXL Pentium 4 (P4)

Thành viên:

1 Trần Quang Ân

2 Nguyễn Duy Anh

3 Phạm Tuấn Anh

4 Lê Quốc Bảo

5 Nguyễn Hải Bình

 NỘI DUNG BÁO CÁO:

A GIỚI THIỆU VXL INTEL PENTIUM 4 2

B NỘI DUNG CHÍNH 3

I CÁC CÔNG NGHỆ MỚI 3

II SƠ Đồ KHỐI, CẤU TRÚC, CHỨC NĂNG CÁC BỘ PHẬN 9

III TẬP LỆNH 20

C KẾT LUẬN 30

D TÀI LIỆU THAM KHẢO 31

Trang 3

 CHI TIẾT BÁO CÁO

A GIỚI THIỆU VXL INTEL PENTIUM 4

Pentium 4 là bộ vi xử lý đơn nhân kiến trúc x86 thế hệ thứ 7 do Intel sản xuất, và

là thiết kế CPU hoàn toàn mới đầu tiên của hãng này kể từ Pentium III năm 1995 Thiết

kế mới này được gọi là kiến trúc NetBurst Không như Pentium II, Pentium III và Celeron, kiến trúc này được tạo mới hoàn toàn và thừa kế rất ít từ thiết kế Pentium Pro/P6 Một số công nghệ nổi bật được áp dụng trong kiến trúc NetBurst như Hyper Pipelined Technology(Công nghệ siêu ống) mở rộng số hàng lệnh xử lý, làm hiệu suất máy có thể tăng 30% Execution Trace Cache tránh tình trạng lệnh bị chậm trễ khi chuyển từ bộ nhớ đến CPU, Rapid Execution Engine tăng tốc bộ đồng xử lý toán học, bus hệ thống (system bus) 400 MHz và 533 MHz; các công nghệ Advanced Transfer Cache, Advanced Dynamic Execution, Enhanced Floating point và Multimedia Unit, Streaming SIMD Extensions 2 (SSE2) cũng được cải tiến nhằm tạo ra những BXL tốc

độ cao hơn, khả năng tính toán mạnh hơn, xử lý đa phương tiện tốt hơn Ghi nhận cùng với sự ra đời của Pentium 4 là công nghệ Quad Data Rate cho phép FSB (Front Side Bus) đạt đến tốc độ 400 MHz Khi đó, chip AMD Athlon đang chạy với tốc

độ FSB là 266 MHz (công nghệ Double Data Rate)

Bộ vi xử lí Pentium IV có đến 42 triệu Tranzito,kích thước chết của nó là 217 mm2,công suất tiêu thụ 55 W khi làm việc ở mức 1,5GHz.Tốc độ bus hệ thống 3,2 GB/s , rất cao ở thời điểm bấy giờ

Bảng: So sánh hiệu suất Pentium 3 và Pentium 4

Bảng trên là sự so sánh hiệu suất của Pentium IV 1,5GHz và Petium III 1,0 GHz.Rõ rang ta có thể thấy tính vượt trội danhd cho Pentium IV.Các ứng dụng số nguyên cao hơn 15-20 %,trong khi Ứng dụng dấu chấm động và multimedia lên tới 30-70%

Trang 4

Pentium 4 đầu tiên (tên mã là Willamette) xuất hiện cuối năm 2000 đặt dấu chấm hết cho “triều đại” Pentium III Willamette xuất sản xuất trên công nghệ 0,18 ,có

42 triệu transistor(nhiều hơn gần 50% so với Pentium III),bus hệ thống (system bus)

400 MHz,bộ nhớ đêm tích hợp L2 256 KB,socket 423 và 478.P4 Willamette có tốc độ như 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9 , 2.0 GHz

P4 Northwood xuất hiện vào tháng 1 năm 2002,được sản xuất trên công nghệ 0,13 ,có khoảng 55 triệu transistor,bộ nhớ đệm tích hợp L2 512 KB,socket 478.Northwood có 3 dòng gồm Northwood A(system bus 400 MHz),tốc độ 1.6, 1.8, 2.0, 2.2, 2.4, 2.5, 2.6, và 2.8 GHz.Northwoood B(system bus 533 MHz) tốc độ 2.26, 2.4, 2.53, 2.66, 2.8, 3.06 GHz(riêng 3.06 GHz có hỗ trợ công nghệ siêu phân luồng Hyper Threading-HT).Northwood C (system bus 800 MHz,tất cả hỗ trợ HT),gồm 2.4, 2.6, 3.0, 3.2, 3.4 GHz

P4 Prescott (năm 2004).Là BXL đầu tiên sản xuất theo công nghệ 90nm,kích thước vi mạch giảm 50% so với P4 Willamette.Điều này cho phép tích hợp nhiều transistor hơn trên cùng kích thước (125 triệu transistor so với 55 triệu transistor của P4 Northwood),tốc độ chuyển đổi của transistor nhanh hơn,tăng khả năng xử lí,tính toán.Dung lượng bộ nhớ đệm tích hợp L2 của P4 Prescott gấp đôi so với P4 Northwood(1MB so với 512KB).Ngoài tập lệnh MMX,SSE,SSE2,Prescott được bổ sung tập lệnh SSE3 giúp các ứng dụng xử lí video và game chạy nhanh hơn.Đây là giai đoạn “giao thời ” giữa socket 478-775LGA,system bus 533 MHz-800MHz và mỗi sản phẩ được đặt tên khiến người dùng càng bối rối khi chọn mua

Prescott A(FSB 533MHz)có các tốc độ 2.4, 2.26, 2.8 (socket 478),Prescott 505 (2,66GHz), 505J(2.66 GHz),506 (2,66 GHz), 511 (2,8GHz), 515J (2,93GHz), 516 (2,93GHz) , 519J (3,06GHz), 519 J(3,06GHz) sử dụng socket 775LGA

Prescott E,F (năm 2004) có bộ nhớ đệm L2 1MB(các phiên bản sau được mở rộng 2MB),bus hệ thống 800 MHz.Ngoài tập lệnh MMX,SSE2,SSE3 tích hợp,Prescott E,F còn hỗ trợ công nghệ siêu phân luồng,một số phiên bản sau có hỗ trợ tính toán 64 bit

Dòng sử dụng socket 478 gồm Pentium 4 HT 2.8E (2,8GHz), 3.0E (3,0 GHz), 3.2E (3,2 GHz), 3.4E(3,4 GHz).Dòng sử dụng socket 775LGA gồm Pentium 4HT 3.2F, 3.4F, 3.6F, 3.8F, với các tốc độ tương ứng từ 3,2 GHz.Pentium 4 HT 517,520,520J,521,524,530,530J,531,540,540J,541,550,560,560J,561,570J,571 với các tốc độ từ 2.8 GHz đến 3,8 GHz

B NỘI DUNG CHÍNH

Khả năng cung cấp một số công nghệ mới và các tính năng được tăng cường

Trang 5

trên đây dựa vào các tiến bộ mới nhất của Intel trong lĩnh vực thiết kế mạch,

quản lý việc tiêu thụ năng lượng và tính toán không thể thực hiện được ở các mô

hình vi kiến trúc của các thế hệ CPU trước

Là công nghệ mới được giới thiệu trong Vi kiến trúc Netburst™ của Intel Nó tăng

gấp đôi "độ sâu" của "ống" xử lý lệnh của CPU khi so sánh với mô hình Vi kiến trúc

P6 được sử dụng ở các thế hệ CPU Pentium III Lệnh được thực hiện trong 20 giai

đoạn (20 stages) trong vi kiến trúc Netburst, so với 10 giai đoạn trong vi kiến trúc P6

Ống lệnh dài giúp chip Pentium 4 có thể đạt được mức xung nhịp cao hơn Với các

CPU Pentium 4 sử dụng 400Mhz System bus, tốc độ truyền nhận dữ liệu vào-ra CPU

là 3.2GB mỗi giây so với tốc độ tương ứng là 1.06GB/ Giây với thế hệ Pentium III sử

dụng kênh truyền hệ thống 133Mhz (133Mhz system bus)

Trong CPU Pentium III thì pipeline có 10 stage (giai đoạn) Pentium IV có 20

stage Pentium IV với tên mã “Prescott” 90nm thậm chí còn có tới 31 stage Intel gọi

đây là công nghệ siêu ống lệnh (Hyper Pipelined Technology)

Việc tăng độ dài pipeline hướng đến mục tiêu tăng xung nhịp Có nhiều giai

đoạn hơn đồng nghĩa với các đơn vị chức năng có thể được cấu thành với số lượng

transitor ít hơn Và với ít transistor thì sẽ dễ dàng nâng cao xung nhịp, về cơ bản là

như vậy

20 stage (giai đoạn) Pipeline của Pentium IV:

Trang 6

 Stage 1 & 2 - Trace cache next instruction pointer: tìm vi lệnh tiếp theo sẽ được thực hiện trong BTB (Branch Target Buffer)

 Stage 6 - Allocate: kiểm tra tài nguyên CPU cần thiết cho việc thực hiện lệnh Ví dụ bộ nhớ được dùng làm bộ đệm

 Stages 7 & 8 - Rename: nếu chương trình sử dụng một trong tám thanh ghi chuẩn x86 nó sẽ được đổi tên thành một trong 128 thanh ghi của Pentium IV

 Stage 9 - Queue: các vi lệnh được đưa vào các hàng đợi dành riêng cho từng loại (ví dụ: truy cập bộ nhớ, xử lý số nguyên hay dấu chấm động …) Lệnh nằm yên trong hàng đợi cho đến khi có một chỗ trống tương ứng xuất hiện trong scheduler

 Stages 10, 11, 12 - Schedule: scheduler sắp xếp lại các lệnh nhằm giữ cho mọi execution unit đều hoạt động Ví dụ, nếu đơn vị xử lý dấu chấm động rảnh rỗi, scheduler lấy ra một lệnh xử lý dấu chấm động để gửi cho đơn vị đó, mặc dù lệnh tiếp theo trong chương trình có thể là một lệnh xử lý số nguyên

 Stage 19 - Branch Check: kiểm tra nhánh của chương trình có cùng với suy đoán của mạch dự đoán rẽ nhánh hay không

Buffer(BTB)

Mặc dù về lý thuyết, pipeline dài có thể làm tăng hiệu năng, tuy nhiên, bất chấp điều này, có quá nhiều stage sẽ khiến cho thời gian thực hiện một lệnh dài hơn Thứ hai là một pipeline dài sẽ trở nên rất kém hiệu quả trong những trường hợp phỏng đoán nhánh sai (branch prediction error) Sẽ mất nhiều thời gian để lấp đầy pipeline một lần nữa Intel đã triển khai một vài biện pháp để bù lại sự mất mát hiệu năng trong những trường hợp này, đó là Execution Trace Cache và Dynamic Execution Engine

Thực tế là Pentium IV chỉ nhanh hơn Pentium III nhờ hoạt động ở mức xung nhịp cao hơn Với cùng mức xung nhịp, một CPU Pentium III sẽ nhanh hơn CPU Pentium IV nhờ kích thước pipeline của nó

Bởi vì sự kém hiệu quả của pipeline trong kiến trúc Netburst, thế hệ vi xử lý thứ

Trang 7

8 của Intel (vi kiến trúc Core) quay trở lại với kiến trúc của Pentium M, một kiến trúc dựa trên nền tảng của kiến trúc thế hệ thứ 6 thay vì tiếp tục phát triển thế hệ thứ 7 (Netburst )

2 Execution TraceCache

Là bộ nhớ đệm cấp 1 (Level 1 Execution Trace Cache) Bên cạnh 8KB

bộ nhớ đệm dùng để chứa dữ liệu (data cache), Pentium 4 có khả năng lưu

trữ đến 12K vi lệnh đã được giải mã (decoded micro-ops) nhằm giúp tăng

cường tốc độ thực thi lệnh của CPU

3.Rapid Execution Engine - Cơ chế thực thi (lệnh) nhanh chóng

Điều này được thực hiện dựa trên hai Đơn vị Luận lý Số học (Arithmetic Logical Unit - ALU) được thiết kế bên trong Pentium 4 Nó cho phép Pentium 4 thực hiện các lệnh

số học (cộng, trừ, nhân chia) và luận lý (Và-And, Hoặc-Or ) chính với tốc độ gấp 2 lần tần số xử lý cơ bản của bộ xử lý Như vậy CPU Pentium 4 - 2.0Ghz (bus 400Mhz)

có khả năng thực hiện các lệnh trên với tốc độ 4.0Ghz và CPU Pentium 4 - 2.53Ghz (bus533Mhz) thực hiện với tốc độ 5.1Ghz

4 Advanced Transfer Cache (ATC)

Là bộ nhớ nội cấp 2 (L2 Cache) được thiết kế bên trong Pentium 4 ATC có hai loại: 512 KB L2 ATC với các tốc độ CPU 2.8Ghz - 2.53Ghz - 2.40Ghz - 2.40(B)Ghz - 2.26Ghz - 2.20Ghz - 2.0(A)Ghz và 1.6(A)Ghz; 256 KB L2 ATC với các tốc độ từ 1.2Ghz - 2.0Ghz ATC cung cấp kênh truyền có thông lượng rất cao (high data throughput channel) với "nhân CPU" (CPU core) ATC bao gồm một giao diện 256-bit (32 byte) để truyền dữ liệu trên mỗi đồng hồ nhân (core clock) Điều này cho phép ATC (L2 Cache) hỗ trợ tốc độ cao gấp 4 lần tốc độ truyền dữ liệu của L2 Cache sử dụng trong các CPU Pentium III

Ví dụ: CPU Pentium 4 - 2.53Ghz có tốc độ truyền dữ liệu lên tới 81GB/giây, so với tốc độ truyền dữ liệu 16GB/giây của Pentium III - 1.0 Ghz

5 Out-Of-Order Execution

Nhân hỗ trợ Out-of-Order Execution có thể sắp xếp lại các vi lệnh, cho phép lệnh (cùng với đầu vào và các tài nguyên hệ thống cần thiết) để thực thi ngay khi có thể và tránh lãng phí thời gian Khi một vi lệnh đang chờ được cấp phát tài nguyên hoặc dữ liệu, các lệnh khác (thường là trong buffer) có thể chen vào thực thi Nhờ thực thi các lệnh song song, những khoảng trễ của pipeline bị loại bỏ Nhân có thể thực thi nhiều lệnh trong mỗi giai đoạn của pipeline

Sau đó in-order retirement unit sẽ tìm các lệnh được thực hiện xong và không còn phụ thuộc dữ liệu cũng như liên quan đến các lệnh rẽ nhánh chưa hoàn tất để xử lý

và lưu kết quả ra bộ nhớ theo trật tự ban đầu của nó

Trang 8

6 Branch Prediction (phỏng đoán nhánh)

Kiến trúc NetBurst có thể nhớ được các nhánh trong chương trình chạy, giúp làm giảm độ trễ trong quá trình nhảy và nạp đầy ống lệnh, Các nhánh được lưu giữ trên

cơ sở địa chỉ lệnh bên trong Branch Target Buffer (BTB) Bộ vi xử lý có thể dự đoán được các nhánh sắp tới trước cả khi lệnh rẽ nhánh được thực hiện

7 Rapid Execution Engine

Trong Pentium 4, có 2 ALU (Arithmetic Logic Unit) và hai AGU (Address Generation Unit) chạy với mức xung gấp đôi xung clock Rapid execution engine được giới thiệu là làm giảm độ trễ của việc thực hiện các phép toán đơn giản Điều này thực sự có ý nghĩa vì hiệu năng và tốc độ của vi xử lý phụ thuộc rất nhiều vào các tính toán số nguyên trên ALU

8.Quad Data Rate

FSB của Pentium 4 có thể truyền bốn lần dữ liệu trong một xung clock Công nghệ này là Quad Pumped hay còn gọi là Quad Data Rate (QDR)

QDR khiến cho xung nhịp hiệu dụng tăng lên gấp 4 lần so với xung thực Nhờ đó các CPU Pentium 4 có thể đạt đến 400Mhz System bus, tốc độ truyền nhận dữ liệu vào-ra CPU là 3.2GBps so với tốc độ tương ứng là 1.06GBps của Pentium III (133Mhz system bus).

Real Clock Performance Transfer Rate

100 MHz 400 MHz 3.2 GB/s

133 MHz 533 MHz 4.2 GB/s

200 MHz 800 MHz 6.4 GB/s

266 MHz 1, 066 MHz 8.5 GB/s

Bộ xử lý Pentium 4 mở rộng các thanh ghi dấu chấm động (floating-point register) lên tới 128-bit và tạo thêm một thanh ghi mở rộng nhằm phục vụ việc di chuyển dữ liệu Do vậy, khả năng xử lý các ứng dụng dấu chấm động (tính toán kết cấu, số liệu tài chính, số liệu khoa học…) và truyền thông đa phương tiện (dựng và xử lý phim video, xử lý hình ảnh đồ họa…) được tăng cường rất nhiều

Là tập lệnh hỗ trợ đồ họa mở rộng được thiết kế cho Pentium 4 Vi kiến trúc

Netburst

(Netburst™ Microarchitecture) mở rộng khả năng xử lý theo kiểu cấu trúc SIMD của

Trang 9

các công nghệ Intel® MMX™ và SSE bằng cách thêm vào 144 lệnh mới Các lệnh này bao gồm các tác vụ số nguyên SIMD 128-bit (128-bit SIMD integer arithmetic

operations) và các tác vụ dấu chấm động (128-bit SIMD double-precision point operations) Các lệnh mới này làm tối ưu hóa khả năng thực hịên các ứng dụng như phim video, xử lý âm thanh - hình ảnh, mã hóa, tính toán khoa học , kết nối mạng trực tuyến

floating-11 Hyper Threading (siêu phân luồng)

Hyper threading là công nghệ cho phép một CPU vật lý hoạt động trên hệ điều hành như là hai CPU logic hoạt động song song 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

Trang 10

II SƠ Đồ KHỐI, CẤU TRÚC, CHỨC NĂNG CÁC BỘ PHẬN

1/ Sơ đồ khối kiến trúc Netburst

Sơ đồ khối của vi kiến trúc NetBurst

Trang 11

Die picture of Pentium IV processor

Sơ đồ khối vi kiến trúc NetBurst Gồm 4 thành phần chính sau:

1 The In-Order Front End

2 The Out-Of-Order Execution Engine

3 The Integer and Floating-Point Execution Units

4 The Memory Subsystem

a.The In-Order Front End

In-Order Front End có nhiệm vụ nạp và giải mã lệnh.Front End có khả năng dự đoán

rẽ nhánh chính xác cao nhờ lưu trữ lịch sử thực hiện chương trình và suy đoán nhánh

mà chương trình sẽ thực hiện tiếp.Địa chỉ lệnh dự đoán từ front-end branch prediction logic này được sử dụng để nạp các byte lệnh từ Cache L2.Những byte lệnh

IA 32 bit này sau đó được giải mã thành các vi lệnh (uops)

Vi kiến trúc Netburst có 1 dạng Cache lệnh L1 đặc biệt tiên tiến gọi là Execution Trace Cache.Không giống như các Cache lệnh thong thường,Trace Cache nằm giữa khối giải mã và khối thực hiện cơ bản như hình vẽ.Ở vị trí này Trace Cache có thể lưu trữ được các lệnh IA 32 đã được giải mã hay còn gọi là các vi lệnh.Sau khi được lưu trữ vào đây,các lệnh IA 32 đã được giải mã này sẽ được xóa khỏi vòng lặp thực hiện lệnh chính của chương trình.Thông thường các lệnh được giải mã 1 lần và được đặt vào Trace Cache sau đó được sử dụng nhiều lần từ đây giống như giống như các cache lệnh thông thường trước Bộ giải mã lệnh IA 32 chỉ được sử dụng khi Trace Cache bị nhỡ

và cần phải đến Cache L2 để lấy và giải mã các byte lệnh IA 32 mới

Trang 12

b.Out-of-Order Execution Logic

Out-of-order execution engine là nơi các lệnh được chuẩn bị để thực hiện khối logic thực thi Out-of-order có một số bộ đệm để sắp xếp lại trật tự thực hiện các

lệnh khi chúng được đưa vào ống lệnh và được lập lịch thực hiện.Khi 1 vi lệnh đang

chờ được cấp phát tài nguyên hoặc dữ liệu ,các lệnh khác (thường là trong buffer) có

thể chen vào thực thi miễn là các lệnh khác này không phụ thuộc vào lệnh đang chờ

kia

Khối logic Retirement nhận được trạng thái hoàn thành của các lệnh đã được

thực hiện từ đơn vị thực hiện và quy trình kết quả,sau đó yêu cầu lại các lệnh

này,thực hiện chúng 1 cách không tuần tự so với chương trình ban đầu.Khối logic

này cũng sẽ báo cáo thông tin thực hiện nhánh vừa xong cho bộ phận dự đoán rẽ

nhánh của Front-end để cập nhật thông tin mới nhất về tình trạng nhánh phục vụ cho

việc dự đoán rẽ nhánh được chính xác hơn

c Integer and Floating-Point Execution Units

Excution Units là nơi lệnh thực sự được thực hiện.Phần này bao gồm các

register files lưu trữ các giá trị toán tử số nguyên và dấu phẩy động của các

lệnh cần thực hiện

d Memory Subsystem

Như hình vẽ ta có thể thấy,Memory Subsystem bao gồm cache L2 và bus hệ

thống(system bus).Nó lưu trữ các lệnh và dữ liệu mà Execution Trace Cache

và cache dữ liệu L1 không thể lưu trữ được.Bus hệ thống bên ngoài (external)

được kết nối với mặt sau của cache L2,được sử dụng để truy nhập bộ nhớ

chính khi Cache L2 bị miss và để truy nhập thiết bị vào ra

2.Sơ đồ khối bộ vi xử lí Pentium IV

Trang 13

Nhìn vào hình vẽ ta có thể thấy phần bên trên bên trái là tương ứng với khối Front-Out,phần giữa là tương ứng khối logic Out-Of-Order ,phần dưới là khối xử lí số nguyên và dấu chấm động và Cache dữ liệu L1.Phần bên phải hình vẽ là khối Memory subsystem

A/ Front End

Trang 14

Khối Front End bao gồm một số đơn vị như hình vẽ,bao gồm :

- Instruction TLB (ITLB)

- the front-end branch predictor (labeled here Front-End BTB)

- the IA-32 Instruction Decoder

- the Trace Cache

-Micocode ROM

a/ Trace Cache

Trace Cache là cache chính hay cache lệnh level 1(L1) đảm nhiệm vận chuyển 3 vi lệnh mỗi xung nhịp đồng hồ tới khối logic Out-Of-Order Execution.Phần lớn các lệnh trong chương trình là được nạp và thực hiện từ Trace Cache.Chỉ khi nào miss Trace Cache thì vi kiến trúc NetBurst mới nạp và giải mã đến các lệnh ở Cache L2.Trace Cache có khả năng nắm giữ tới 12 vi lệnh, mỗi vi lệnh trong Pentium IV có độ rộng 100-bit nên trong Trace Cache có dung lƣợng 150KB (12288 x 100 /8).Nó có tỷ lệ hit từ

8 đến 16K byte tương tự như các Cache lệnh thông thường

Các lệnh IA-32 khá rườm rà để giải mã.Mỗi lệnh này có nhiều giá trị và lựa chọn khác nhau.Khối logic giải mã lệnh(instruction decoding logic) cần phải sắp xếp lại và chuyển đổi các lệnh phức tạp này thành các vi lệnh đơn giản mà máy có thể hiểu và

Trang 15

thực hiên được.Việc giải mã này sẽ đặc biệt khó khi cố gắng giải mã các lệnh IA 32 phức tạp trong mỗi chu kì xung nhịp đồng hồ khi Pentium IV hoạt động ở mức tần số xung nhịp đồng hồ cao Một bộ giải mã IA-32 băng thông cao có khả năng giải mã nhiều lệnh mỗi nhịp đồng hồ, có nhiều đường ống để làm công việc đó Khi một nhánh

dự đoán sai, thời gian phục hồi ngắn hơn nhiều nếu máy không giải mã lại tập lệnh

IA-32 cần để tiếp tục thực hiện tại vị trí nhánh mục tiêu Bằng việc lưu trữ các vi lệnh của các lệnh đã được giải mã ,vi kiến trúc NetBurst có thể bỏ qua phần lớn thời gian giải

mã lệnh do đó giảm thiểu độ trễ khi miss dự đoán và cho phép việc giải mã trở nên đơn giản hóa:khi một lệnh được thực thi nhiều lần thì nó sẽ lấy vi lệnh đã được giải

mã sẵn và lưu trong Trace Cache,không cần phải giải mã lại nhiều lần như các bộ VXL trước nữa Execution Trace Cache lấy các vi lệnh đã thực sự được giải mã từ bộ giải

mã lệnh IA 32 và lắp ráp hay xây dựng chúng thành một trình tự yêu cầu chương trình gọi là vết(trace).Cứ 6 vi lệnh thì được gói thành một dòng vết(trace line).Một vết đơn lại gồm nhiều dòng vết Những vết này bao gồm các vi lệnh (μops) chạy liên tục xuống đường dẫn dự đoán của quá trinh thực hiện chương tình

Trace Cache cũng có riêng 1 cơ chế dự đoán nhánh để chỉ dẫn vị trí tiếp theo trong Trace Cache cho các lệnh đang được nạp.Cơ chế dự đoán trong Trace Cache này(trong hình vẽ là BTB Trace) thì đơn giản hơn cơ chế dự đoán của khối Front End,mục đích chính của nó là dự đoán các nhánh con của chương trình hiện đang được lưu trữ trong Trace Cache. Bộ phận dự đoán rẽ nhánh logic gồm 16 lối vào địa chỉ có tác dụng dự đoán địa chỉ trả lại Cùng với BTB front-end, BTB Trace Cache làm giảm tỷ lệ dự đoán nhánh sai khoảng 1 / 3 so với dự đoán nhánh của vi kiến trúc P6

b/ Microcode ROM

Nằm ở gần vị trí Trace Cache là đơn vị Micocode Rom.Rom này được sử dụng cho các lệnh IA 32 phức tạp như là string move,xử lí lỗi và gián đoạn.Khi gặp phải một lệnh phức tạp,Trace Cache sẽ chuyển lệnh sang Microcode Rom ,Microcode Rom sẽ cung cấp các vi lệnh cần thiết có trong nó để hoàn thành hoạt động.Sau khi kết thúc,khối front end sẽ tiếp tục nạp các các vi lệnh từ Trace Cache

c/ ITLB and Front-End BTB

ITLB = Instruction Translation Look-aside Buffer Nó là một bảng có chứa thông tin về các trang trong bộ nhớ mà bộ xử lý đã truy cập gần đây.nó Dịch các địa chỉ lệnh tuyến tính để được các địa chỉ vật lý cần thiết để truy cập vào bộ nhớ cache L2.ITLB cũng thực hiên kiểm tra page-level protection Instruction TLB and front-end BTB sẽ chỉ đạo các hoạt động của Fron End khi máy bị missTrace Cache

Trang 16

BTB = Branch Target Buffer,nó lưu trữ lịch sử của các nhánh lệnh đã thực hiện trước đó và mục tiêu thực hiện của chúng để tiết kiệm thời gian tính toán cho ra các mục tiêu này

Đơn vị logic nạp (fetch) sẽ luôn cố gắng nạp đầu vào cho đơn vị giải mã là các lệnh

IA 32 tiếp theo mà chương trình sẽ cần thực hiện Đơn vị Instruction prefetch sẽ được chỉ đạo từ đơn vị logic branch prediction (đơn vị dự đoán nhánh)(trên hình vẽ chính là khối Front-End BTB) để biết được lệnh gì sẽ được nạp tiếp theo.Bộ dự đoán nhánh cho phép bộ xử lí bắt đầu nạp và thực hiện lệnh trước khi kết quả của nhánh trước đó được biết Đơn vị dự đoán rẽ nhánh này(branch prediction logic/front – end BTB) có dung lượng khá rộng lên tới 4K entries ,do đó nó có thể nắm được hầu hết các thông tin của các nhánh cũ đã thực hiện. Nếu 1 nhánh không tìm thấy ở BTB ,bộ dự đoán rẽ nhánh dự đoán kết quả của nhánh dựa trên hướng của sự dời chỗ nhánh (tiến hoặc lùi) Nhánh lùi được cho là được thực hiện và nhánh tiến cho là không thực hiện

d/ IA-32 Instruction Decoder

The Istruction Decoder nhận các byte lệnh 32 bit từ Cache L2 64 bit,và giải mã chúng thành các vi lệnh(uops) mà máy có thể hiểu và thực hiện được.Một bộ giải mã đơn instruction decoder chỉ có thể giải mã được tối đa là 1 lệnh IA 32 trong 1 chu kì đồng hồ mà thôi.Một số lệnh IA 32,mỗi lệnh có thể chuyển đổi được thành 1 vi lệnh đơn,nhưng cũng có nhiều lệnh thì lại mỗi lệnh chuyển đổi được thành nhiều hơn 1 vi lệnh Trong trường hợp cần nhiều hơn 4 vi lệnh để hoàn thành giải mã 1 lệnh IA 32 thì lúc này bộ giải mã sẽ gửi tín hiệu vào trong microcode ROM để lấy các vi lệnh tương ứng Tuy nhiê phần lớn các lệnh không cần phải nhảy vào microcode ROM để hoàn thành giải mã.Ví dụ điển hình về 1 lệnh phức tạp gồm nhiều vi lệnh chúng ta có thể kể đến lênh string move,lệnh này cần tới hàng nghìn vi lệnh để hoàn thành giải mã nó

B/ Out-of-oder Eexcution Logic

Out- Of – Order Excution Engine bao gồm các thành phần:

- allocation, renaming

- scheduling functions

Khối logic thực thi này có một số bộ đệm để sắp xếp lại trật tự thực hiện các lệnh khi chúng được đưa vào ống lệnh và được lập lịch thực hiện để có thể thực hiện chương trình nhanh hơn.Bộ xử lí sẽ cố gắng tìm ra thật nhiều lệnh có thể thực hiện xong chỉ trong mỗi chu kì và thực hiện chúng kể cả khi chúng không còn sắp xếp theo trình tự

Ngày đăng: 27/06/2014, 23:15

HÌNH ẢNH LIÊN QUAN

Hình vi kiến trúc của các thế hệ CPU trước. - tiểu luận  tìm hiểu vi xử lý pentium 4
Hình vi kiến trúc của các thế hệ CPU trước (Trang 5)
1/ Sơ đồ khối kiến trúc Netburst - tiểu luận  tìm hiểu vi xử lý pentium 4
1 Sơ đồ khối kiến trúc Netburst (Trang 10)
Sơ đồ khối vi kiến trúc NetBurst Gồm 4 thành phần chính sau: - tiểu luận  tìm hiểu vi xử lý pentium 4
Sơ đồ kh ối vi kiến trúc NetBurst Gồm 4 thành phần chính sau: (Trang 11)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w