Bao cao mon_ky_thuat_vi_xu_ly

48
BÁO CÁO BÀI TẬP NHÓM M ô n : Kỹ Thuật Vi Xử Lý G V : Ts.Hoàng Xuân Dậu Đ t à i : TÌM HIỂU VI XỬ LÝ PENTIUM 4 NỘI DUNG BÁO CÁO: A. Giới thiệu VXL P4 (xuất xứ và một số đặc điểm nổi bật) B. Nội dung chính Các đặc điểm và công nghệ mới Sơ đồ khối Cấu trúc, chức năng các thành phần Tập lệnh C. Kết luận D. Tài liệu tham khảo 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ọ 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

Transcript of Bao cao mon_ky_thuat_vi_xu_ly

Page 1: Bao cao mon_ky_thuat_vi_xu_ly

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

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

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

Đ ề t à i : TÌM HIỂU VI XỬ LÝ PENTIUM 4

NỘI DUNG BÁO CÁO:

A. Giới thiệu VXL P4 (xuất xứ và một số đặc điểm nổi bật)

B. Nội dung chính

Các đặc điểm và công nghệ mới

Sơ đồ khối

Cấu trúc, chức năng các thành phần

Tập lệnh

C. Kết luận

D. Tài liệu tham khảo

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ọ 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ộ

Page 2: Bao cao mon_ky_thuat_vi_xu_ly

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. NỘI DUNG CHÍNH

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

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

1. Hyper-Pipelined Technology - Công nghệ Siêu ống

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.

2. Execution Trace Cache

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.

Page 3: Bao cao mon_ky_thuat_vi_xu_ly

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

(bus

533Mhz) thực hiện với tốc độ 5.1Ghz.

4. Advanced Transfer Cache (ATC)

Là bộ nhớ đệm 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 của 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 xung 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ỗ giai đoạn của pipeline.

Page 4: Bao cao mon_ky_thuat_vi_xu_ly

Real Clock Performance Transfer Rate

100 MHz

133 MHz

200 MHz

400 MHz

533 MHz

800 MHz

3.2 GB/s

4.2 GB/s

6.4 GB/s

Sau đó in-order retirement unit sẽ tìm các lệnh đượ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 thất để xử lý và

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

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).

Page 5: Bao cao mon_ky_thuat_vi_xu_ly

266 MHz 1, 066 MHz 8.5 GB/s

9. Enhanced Floating Point & Multimedia Unit

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.

10. Streaming SIMD Extension 2 (SSE2) Instructions

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 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

floating-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 ...

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.

Page 6: Bao cao mon_ky_thuat_vi_xu_ly

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

1. Sơ đồ khối bộ VXL Intel Pentium IV.

Page 7: Bao cao mon_ky_thuat_vi_xu_ly

Một số điểm đáng chú ý:

Công nghệ Hyper Pipelined với pipeline lên tới 20 stage.

Page 8: Bao cao mon_ky_thuat_vi_xu_ly

FSB của Pentium IV có mức xung tối thiểu là 400MHz nhờ kỹ thuật QDR (Quad

Data Rate), cho phép truyền bốn lần dữ liệu trong một xung clock, nhanh gấp rưỡi

system bus 266MHz sử dụng công nghệ Double Data Rate của AMD. Nhờ vậy,

băng thông lên đến 3.2GB/s.

Execution Trace Cache: cache lệnh (L1 instruction cache) được chuyển từ trước

Fetch Unit ra phía sau Decode Unit và có tên là “Trace Cache”.

Có tới 128 thanh ghi, trong khi CPU của Intel thuộc thế hệ thứ 6 (như Pentium II,

Pentium III) chỉ có 40 thanh ghi.

Advanced Dynamic Execution, nâng cao khả năng phỏng đoán nhánh và thực

hiện lệnh không theo thứ tự (out-of-order execution).

Rapid Execute Engine, theo đó ALU của Pentium IV làm việc với xung nhịp gấp

đôi xung clock của CPU.

1. Hyper Pipeline

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.

Page 9: Bao cao mon_ky_thuat_vi_xu_ly

20 tầng Pipeline của Pentium IV:

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 3 & 4 - Trace cache fetch: nạp vi lệnh từ Trace Cache.

Stage 5 - Drive: gửi vi lệnh đến resource allocator và mạch RAT.

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 thành 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.

Stages 13 & 14 - Dispatch: gửi vi lệnh tới Execution Unit tương ứng.

Stages 15 & 16 - Register Files: đọc register file.

Stage 17 - Execute: vi lệnh được thực hiện.

Stage 18 - Flags: cờ của vi lệnh được cập nhật.

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.

Stage 20 - Drive: gửi kết quả của việc kiểm tra này tới Branch Target 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

Page 10: Bao cao mon_ky_thuat_vi_xu_ly

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ứ 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. Bộ nhớ đệm

a. Advanced transfer cache (Advanced L2 cache)

Cache L2 của Pentium 4 kết nối với cache dữ liệu L1 qua bus có độ rộng là

256- bit. Trong các thế hệ vi xử lí trước của Intel độ rộng này là 64-bit. Với một vài

phép toán đơn giản ta sẽ thấy băng thông giữa cache L2 và nhân là 44.8GB/s với

Pentium

4 ở mức xung 1.4 GHz và 48GB/s với Pentium 4 ở mức xung 1.5 GHz, nhanh gấp

4 lần so với thế hệ trước với cùng một xung nhịp.

b. Execution trace cache

Như trên chúng ta đã biết cache lệnh được chuyển từ trước Fetch Unit ra phía

sau Decode Unit và có tên gọi mới là "Trace Cache ". Do đó thay vì lưu trữ vi lệnh để

chuẩn bị nạp bằng Fetch Unit thì Trace Cache sẽ lưu trữ những vi lệnh đã được giải

mã nhờ Decode Unit. Trace Cache lưu trữ được 12K 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).

Page 11: Bao cao mon_ky_thuat_vi_xu_ly

Ý tưởng đằng sau cách kiến trúc này là để tối ưu vòng lặp bên trong các chương

trình. Khi một lệnh được thực thi nhiều lần, thì vi lệnh đã được giải mã sẵn và lưu

trong Trace Cache, và không cần giải mã lại nhiều lần như các VXL thế hệ trước.

Giống như Fetch Unit, Trace Cache cũng có Branch Target Buffer (BTB) lên tới

4K vi lệnh. Trong CPU của Intel thế hệ thứ 6, như Pentium III, bộ đệm này chỉ có

512 vi lệnh và trong thế hệ thứ 5, như bộ xử lý Pentium chỉ có 256 vi lệnh.

3. Bộ giải mã - Decoder

Page 12: Bao cao mon_ky_thuat_vi_xu_ly

Từ thế hệ thứ 6, CPU của Intel dùng kiến trúc tập lệnh lai CISC/RISC. Bộ vi xử lí

phải chấp nhận các lệnh CISC (Complex Instruction Set Computer), được biết như

là tập lệnh của x86. Ngày nay hầu hết phần mềm sử dụng tập lệnh này. Những bộ vi

xử lí chỉ sử dụng tập lệnh RISC (Reduced Instruction Set Computer) không thể chạy

được những chương trình thông dụng như: Windows, Office...

Do đó các CPU hiện nay trên thị trường của cả Intel, AMD đều sử dụng một bộ

giải mã CISC / RISC. Bên trong CPU xử lí lệnh kiểu RISC nhưng lại chỉ chấp nhận

những lệnh CISC ở đầu vào. Những lệnh CISC x86 được gọi chung là lệnh, còn những

lệnh RISC bên trong được gọi là các vi lệnh hoặc “µop”.

Những vi lệnh RISC này không thể sử dụng trực tiếp do đó những chương trình sẽ

phải sử dụng tập lệnh CISC và được giải mã qua một bộ giải mã (Decoder). Mỗi một

CPU sử dụng tập lệnh RISC riêng không công bố rộng rãi và nó không tương thích

với vi lệnh của CPU khác. Ví dụ vi lệnh của Pentium III khác với vi lệnh của Pentium

IV, khác với vi lệnh của Athlon 64.

Tuỳ theo tính phức tạp của lệnh x86 mà nó sẽ được decode thành một số lệnh

RISC nào đó. Bộ giải mã của Pentium IV có thể giải mã một lệnh x86 mỗi

xung clock thông thường một lệnh x86 giải mã cần 4 vi lệnh. Nếu một lệnh x86 phức

tạp có thể nhiều hơn 4 vi lệnh, nó được định hướng trong bộ nhớ ROM (“Microcode

ROM” ở hình trên). “Microcode ROM” còn được gọi là MIS (Microcode Instruction

Sequencer) lưu danh sách tất cả các lệnh cùng mô tả các vi lệnh tương ứng sẽ được

dịch ra.

4. Allocator và Register Renamer

Trong giai đoạn alloc, allocator sẽ:

Dành ra một trong 126 reorder buffers (ROB) cho vi lệnh hiện thời. Nó cho phép

thực hiện vi lệnh không theo thứ tự (out-of-order), CPU có thể đặt chúng trở lại

thứ tự cũ sủ dụng bảng này.

Page 13: Bao cao mon_ky_thuat_vi_xu_ly

Dành ra một trong 128 register files (RF) để lưu trữ kết quả dữ liệu từ xử lí vi

lệnh.

Nếu vi lệnh là nạp (LOAD) hoặc ghi (STORE), có nghĩa là nó sẽ đọc hoặc viết dữ

liệu trên bộ nhớ RAM, nó sẽ dành một trong số 48 bộ đệm nạp (Load Buffers -

LB) hoặc một trong 24 bộ đệm lưu trữ (Store Buffers - SB)tương ứng.

Dành ra một đầu vào trên bộ nhớ hoặc hàng đợi, tuỳ thuộc vào từng vi lệnh.

Tập lệnh CISC x86 chỉ có 08 thanh ghi 32-bit (EAX, EBX, ECX, EDX, EBP,

ESI, EDI và ESP). Số này đơn giản là quá ít, đặc biệt là khi CPU có thể thực thi theo

kiểu out-of-order. Do đó, CPU phải đổi tên và nội dung của những thanh ghi được sử

dụng trong chương trình thành một trong 128 thanh ghi của CPU, điều này cho phép

những lệnh sử dụng cùng thanh ghi có thể chạy đồng thời. Thậm trí out-of-order, có

nghĩa là cho phép lệnh thứ hai chạy trước lệnh thứ nhất ngay cả khi chúng sử dụng

cùng một thanh ghi.

Chúng ta cần chú ý rằng Pentium IV thực sự có tới có 256 thanh ghi: 128 cho

những lệnh số nguyên và 128 thanh ghi cho lệnh dấu chấm động và lệnh SSE.

Renamer của Pentium IV có khả năng xử lí ba vi lệnh trong một xung clock. Sau đó

từ renamer vi lệnh đi tới hàng đợi.

Page 14: Bao cao mon_ky_thuat_vi_xu_ly

5. Scheduler

Scheduler là trái tim của hệ thống out-of-order Pentium IV. Mục đính của

Scheduler là giữ cho mọi execution unit trong CPU luôn luôn làm việc. Các vi lệnh tới

scheduler sẽ được nó phân tích và đặt vào một trong bốn scheduler unit tùy theo kiểu

của vi lệnh:

Memory scheduler unit: cho những vi lệnh liên quan đến bộ nhớ. Những vi

lệnh này đến từ hàng đợi của các vi lệnh bộ nhớ (memory microinstruction

queue).

Fast scheduler unit: cho những vi lệnh đơn giản.

Slow / General FP scheduler unit: cho những vi lệnh khác và những vi lệnh xử

lý dấu chấm động phức tạp.

Simple FP scheduler unit: cho những vi lệnh dấu chấm động đơn giản.

Scheduler sắp xếp những vi lệnh theo kiểu của chúng. Sau đó nó có thể gửi mỗi vi

lệnh trực tiếp tới Execution Unit tương ứng để xử lí. Những Execution Unit được nối

tới Scheduler qua 04 cổng gửi đi (dispatch port) được đánh số từ 0 tới 3, như hình

dưới đây:

Page 15: Bao cao mon_ky_thuat_vi_xu_ly

6. Execution Unit

Như đã đề cập, Pentium IV có bốn cổng gửi đi đánh số từ 0 tới 3. Mỗi cổng

được nối tới một, hai hoặc ba đơn vị thực thi (execution unit). Pentium IV có 05

execution unit làm việc song song (02 FPU cho số dấu chấm động, 03 ALU cho số

nguyên) và thêm

02 AGU để đọc và ghi dữ liệu vào bộ nhớ RAM. Các execution unit, kể cả cùng loại,

được chia ra phục vụ những loại vi lệnh khác nhau như hình vẽ:

Page 16: Bao cao mon_ky_thuat_vi_xu_ly

Phần chính của Rapid Execution Engine là các rapid execution unit, bao gồm hai

ALU và hai AGU được đánh dấu “clock x2” trên hình vẽ. Các vi lệnh đơn giản có thể

được thực thi bằng những đơn vị này và chỉ mất một nửa xung clock, những lệnh dịch

và xoay không thể được thực thi được bằng các rapid execution unit sẽ được gửi đến

“Slow ALU”.

Cổng 0 và 1 có thể gửi hai vi lệnh trong một xung clock tới 2 rapid execution ALU,

do đó số lượng tối đa các vi lệnh có thể được chuyển đi trong một xung clock là 6:

Hai vi lệnh cho cổng 0

Hai vi lệnh cho cổng 1

Một vi lệnh cho cổng 2

Một vi lệnh cho cổng 3

Một điều chúng ta cần nhớ là những lệnh phức tạp có thể cần đến vài xung

clock để xử lí. Ví dụ ở cổng số 1, có một đơn vị xử lý dấu chấm động. Trong khi đơn

vị này đang xử lý một lệnh rất phức tạp mất vài xung clock, cổng 1 sẽ vẫn tiếp tục

nhận các lệnh đơn giản nó và chuyển đến ALU trong khi FPU còn bận. Nếu để ý một

chút, ta thấy Intel đặt vào cùng một cổng một fast unit và một complex (slow) unit. Khi

complex unit còn đang bận tính toán, đơn vị còn lại có thể tiếp tục nhận vi lệnh từ cổng

tương ứng.

Page 17: Bao cao mon_ky_thuat_vi_xu_ly

Nên, mặc dù tối đa chỉ có 6 lệnh được chuyển, thực sự CPU có thể có đến 7

lệnh cùng được xử lý một lúc.

III. TẬP LỆNH

Khuôn dạng lệnh P4

Các nhóm lệnh:

1. General Pupose (Nhóm lệnh chung)

2. System Instructions (Các lệnh hệ thống)

3. x87 FPU

4. x87 FPU và SIMD

5. Công nghệ MMX

6. SSE

7. SSE2

8. SSE3

9. IA-32e: 64-Bit Mode (chế độ 64 bit)

1. General-purpose instructions

Đây là nhóm lệnh tính toán cơ sở mà lập trình viên thường xuyên sử dụng nhất. Bao gồm:

Page 18: Bao cao mon_ky_thuat_vi_xu_ly

Các lệnh truyền dữ liệu (data transfer instructions) Các phép tính số học nhị phân (binary arithmetic instructions) Các phép tính số học thập phân (decimal arithmetic instructions) Các phép tính luận lý (logical instructions) Các lệnh dịch và xoay (shift và rotate instructions) Các lệnh thao tác trên Bit và Byte (Bit và Byte instructions) Các câu lệnh điều khiển (control transfer instructions) Các lệnh xử lý chuỗi (string instructions) Các lệnh vào ra (I/O instructions) Bắt đầu, ra khỏi khối lệnh (enter và leave instructions) Điều khiển các cờ (EFLAG) Các câu lệnh với thanh ghi đoạn (segment register instructions) Các lệnh khác

Bảng sau tóm tắt các lệnh thông dụng của nhóm này:

Page 19: Bao cao mon_ky_thuat_vi_xu_ly

xor SRC, DST

DST = DST ^ SRC Bitwise xor

or SRC, DST

DST = DST | SRC Bitwise or

và SRC, ST DST = DST & SRC Bitwise và

Tên Đối số Phép toán Mô tả Nhóm lệnh

mov SRC, DST DST = SRC Sao chép nguồn vào đích

xchg SRC, DST

DST = SRC,

SRC = DST

Hoán chuyển

đẩy SRC (%esp) = SRC;

%esp -= 4;

Đẩy vào stackTruyền dữ liệu

pop DST DST = (%esp);

%esp += 4;

Lấy ra khỏi stack

Luận lý

cmp A, B EFLAGS = B - A So sánh

test

inc

dec

A, B

DST

DST

EFLAGS

DST++

DST-

= B & A Và

Tăng

Giảm

add SRC, DST

DST = DST + SRC CộngSố học

sub SRC, DST

DST = DST - SRC Trừ

mul SRC %edx:%eax = %eax * SRC

Nhân (không dấu)

imul SRC %edx:%eax = %eax * Nhân (có dấu)

Page 20: Bao cao mon_ky_thuat_vi_xu_ly

SRC

div SRC %edx = %eax MOD SRC;

Chia (không dấu)

%eax = %eax / SRC;

idiv SRC %edx = %eax MOD Chia (có dấu)SRC; %eax = %eax /SRC;

jmp

je

jne

jg

jge

LABEL

LABEL

LABEL

LABEL

LABEL

Nhảy vô điều kiện

Nhảy nếu bằng

Nhảy nếu không bằng

Nhảy nếu lơn hơn

Nhảy nếu lớn hơnhoặc bằng

jl LABEL Nhảy nếu nhỏ hơnCác lệnh nhảy

jle LABEL Nhảy nếu nhỏ hơnhoặc bằng

call LABEL Gọi thủ tục con

loop LABEL

loope LABELVòng lặp

loopz LABEL

loopnz LABEL

int INT_NR Gây ra ngắt số hiệuINT_NR

Khác

Page 21: Bao cao mon_ky_thuat_vi_xu_ly

2. NHÓM LỆNH HỆ THỐNG (system instruction)

Các lệnh này dùng để hỗ trợ hệ điều hành trong việc điều khiển các chức năng của bộ

VXL. Sau đây là một số lệnh thường gặp:

Lệnh Chức năng

LGDT/ SGDT Nạp/lưu thanh ghi bảng mô tả toàn cục (GDT register)

LTR/STR Nạp/nhớ thanh ghi tác vụ

LLDT/SLDT Nạp/lưu thanh ghi bảng mô tả cục bộ(LDT register)

LAR Nạp quyền truy cập

LIDT/SIDT Nạp/lưu thanh ghi bảng mô tả ngắt (IDT register)

LMSW/SMSW Nạp/lưu trạng thái

VERR/VERW Xác nhận đoạn để đọc/ghi

INVD/WBINVD Vô hiệu hóa cache, không ghi/ghi trở lại

XSAVE Lưu các cờ mở rộng vào bộ nhớ

XGETBV/ XSETBV Đọc/ghi trạng thái của một thanh ghi điều khiển mở rộng

LOCK(prefix) Khóa bus

RDPMC Đọc bộ đếm giám sát hiệu năng

XRSTOR Khôi phục các cờ mở rộng từ bộ nhớ

ARPL Điều chỉnh quyền ưu tiên

3. X87 FPU (Floating Point Unit) instructions

- các lệnh sử dụng đơn vị tính toán dấu chấm động

Tuy không thuộc nhóm các lệnh cơ bản nhưng đây là một nhóm rất quan trọng có

trong tất cả các vi xử lý x86 hiện đại. Nhóm lệnh này hỗ trợ tính toán trên số nguyên,

số thực dấu chấm động, xử lý thập phân/nhị phân … Đó là cơ sở cho các tính toán đồ

họa và khoa học phức tạp của các hệ thống bên trên.

x87 FPU Data Transfer Instructions (tập lệnh di chuyển dữ liệu)FLD/FST: tải/lưu giá trị dấu phẩy độngFILD/FIST:tải/lưu số nguyênFCMOVE/FCMOVNE:di chuyển số dẩu phảy động vs điều kiện bằng nhau/khôngbằng nhau,

Page 22: Bao cao mon_ky_thuat_vi_xu_ly

v..v… x87 FPU Basic ArithmetiC Instructions(tập lệnh số học cơ

bản) thực thi trên các toán hạng số nguyên và số thực dấu chấm động; FADD/ FSUB: cộng/trừ toán hạng số thực dấu chấm độngFISUB: trừ số nguyênFMUL/FIMUL: nhân toán hạng số thực dấu chấm động/số nguyên ..v…v

x87 FPU Comparison Instructions (các lệnh so sánh)kiểm tra hoặc so sánh các toán hạng số nguyên/số thực chấm động:FCOM/FXAM: so sánh/kiểm tra các toán hạng dấu phảy động, FTST kiểm tra toán hạng dấu phảy động (so sánh với 0.0) FICOMP : so sánh các số nguyênFCOMI : so sánh các số thực dấu chấm động và đặt EFLAGS (Compare floating-point and set EFLAGS) …v…v

x87 FPU Transcendental Instructions (các lệnh siêu việt)thực thi các phép tính lượng giác và logarit trên các toán hạng dấu phảy động

x87 FPU Load Constants Instructions (các lệnh tải hằng số)các lệnh này sẽ tải các hằng số phổ biến vào các thanh ghi x87 floating-point FLDZ Load +0.0, FLDPI Load π, FLDLG2 Load log10,FLDL2E Load log2e, FLDLN2 Load loge, FLDL2T Load log210

x87 FPU Control Instructions (các lệnh điều khiển)FINCSTP/ FDECSTP: Increment/ Decrement FPU register stack pointerFFREE : giải phóng thanh ghi chứa số thực dấu chấm động (Free floating-point register)FSTENV: lưu trữ môi trường FPU sau khi đã kiểm tra các điều kiện lỗi ( StoreFPU environment after checking error conditions)FRSTOR : khôi phục các vùng FPU (Restore FPU state)

4. X87 FPU and SIMD state management instructions

Được giới thiệu từ dòng VXL Pentium II, SIMD (Single Instruction, Multiple Data: một lệnh đơn,nhiều dữ liệu) cho phép một lệnh xử lý một số mục dữ liệu đồng thời. Các tập lệnh MMX, SSE được xây dựng xoay quanh khái niệm này.

FXSAVE : lưu x87 FPU và SIMD

FXRSTOR : khôi phục x87 FPU và SIMD

Ban đầu,các lệnh này chỉ thực thi trên thanh ghi x87 FPU(và MMX) để lưu và khôi phục một cách nhanh chóng, với sự giới thiệu của SSE ( phần mở rộng trong Pentium III, các lệnh này được mở rộng để lưu và khôi phục trên các thanh ghi XMM và MXCRS

5. CÔNG NGHỆ MMX

Page 23: Bao cao mon_ky_thuat_vi_xu_ly

Tập lệnh gồm 57 lệnh multimedia do Intel phát triển năm 1997. 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ác lệnh MMX được thực hiện trên các gói byte, word, doubleword, quadword

được chứa trong bộ nhớ, thanh ghi MMX, thanh ghi chung. Các lệnh MMX chỉ

được thực hiện trên các VXL được hỗ trợ công nghệ MMX. Các lệnh MMX được chia

thành các nhóm sau

a. MMX Data Transfer Instructions (các lệnh di chuyển dữ liệu)

Các lệnh này sẽ di chuyển các toán tử doubleword và quadword giữa các thanh ghi

MMX, thanh ghi MMX và bộ nhớ

MOVD : di chuyển doubleword

MOVQ : di chuyển quadword

b. MMX Conversion Instructions (các lệnh chuyển đổi )

Chuyển qua lại giữa bytes, words, and doublewords

c. MMX Packed Arithmetic Instructions (các lệnh số học)

The packed arithmetic instructions perform packed integer arithmetic on packed byte,

word, and doubleword integers. (các lệnh này thực hiện việc đóng gói các phép

toán số học thao tác trên số nguyên vào các gói byte, word, doubleword )

PADDB/ PADDW/ PADDD: Add packed byte/word/doubleword integers PSUBB/

PSUBW/ PSUBD: Subtract packed byte/word/doubleword integers PMULHW /

PMULLW: Multiply packed signed word integers and store high/low result

PMADDWD: Multiply and add packed word integers

d. MMX Comparison Instructions (các lệnh so sánh)

The compare instructions compare packed bytes, words, or doublewords. (So sánh

giữa byte, word, doubleword)

PCMPEQB Compare packed bytes for equal (so sánh byte)

PCMPEQW Compare packed words for equal (so sánh

word)

PCMPEQD Compare packed doublewords for equal(so sánh doubleword)

Page 24: Bao cao mon_ky_thuat_vi_xu_ly

e. MMX Logical Instructions (các lệnh logic)

Page 25: Bao cao mon_ky_thuat_vi_xu_ly

Thực thi các toán tử logic cơ bản AND, NOT, OR, XOR trên các toán hạng

quadword

f. MMX Shift and Rotate Instructions (các lệnh dịch và quay)

The shift and rotate instructions shift and rotate packed bytes, words, or

doublewords, or quadwords in 64-bit operands.

( các lệnh này sẽ dịch và quay các byte, word, doubleword hoặc quadword trên

các toán hạng 64-bit).

Một số lệnh:

PSLLW/ PSLLD/ PSLLQ Shift packed words/doublewords/quadwords left

logical(dịch trái logic word/doubleword/quadword)

PSRAW/ PSRAD Shift packed words/ doublewords right arithmetic (dịch phải số

học word/doubleword)

6. SSE instructions

Là mở rộng của kiến trúc đơn dòng lệnh đa dữ liệu(SIMD) với công nghệ

MMX, SSE chỉ có thể thực thi trên các VXL Intel 64 và IA-32 mà hỗ trợ các mở rộng

SSE

Thêm 70 lệnh mới giúp cải thiện hình ảnh, âm thanh và video 3D, tiếng nói, và các

chức năng Internet.

a. SIMD single-precision floating-point instructions that operate on the XMM

registers

- thực thi với toán hạng dấu chấm động có độ chính xác đơn, trên các thanh

ghi XMM

Nhóm lệnh này được chia thành các nhóm nhỏ hơn:

Các lệnh di chuyển dữ liệu (Data Transfer Instructions)

SSE truyền dữ liệu: di chuyển toán hạng dấu chấm động có độ chính xác đơn

giữa các thanh ghi XMM và giữa các thanh ghi XMM với bộ nhớ

Các lệnh số học (Arithmetic Instructions)

thực hiện các phép tính số học giữa các toán tử dấu phảy động có độ chính xác

đơn.một số lệnh

ADDPS: cộng các giá trị số thực dấu phảy động với độ chính xác đơn

SQRTPS: tính căn bậc 2

Page 26: Bao cao mon_ky_thuat_vi_xu_ly

Các lệnh so sánh (Comparison Instructions) các lệnh này sẽ so sánh các toán

hạng dấu chấm động có độ chính xác đơn. Ví dụ:

CMPPS: so sánh các giá trị số thực dấu phảy động với độ chính xác đơn

Các lệnh logic (Logical Instructions): các lệnh này sẽ thực thi các toán tử AND,

OR, NOT, XOR trên các toán hạng dấu chấm động có độ chính xác đơn

Các lệnh chuyển đổi (Conversion Instructions)

CVTPI2PS: Convert packed doubleword integers to packed single-precision

Floating point values ( chuyển các số nguyên doubleword thành giá trị

dấu chấm động có độ chính xác đơn)

b. SSE MXCSR State Management Instructions (quản lý các MXCSR)

LDMXCSR: tải thanh ghi MXCSR (load MXCSR register)

STMXCSR: Save MXCSR register state.

7. Streaming SIMD Extension 2 (SSE2) Instructions

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

có 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 với độ chính xác

kép SIMD 128-bit (128-bit SIMD double-precision floating-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ài chính, thiết kế và nghiên cứu khoa học, kết nối mạng trực

tuyến...

SSE2 extensions đại diện cho 1 sự mở rộng của mô hình thực thi SIMD(the SIMD

execution model) được giới thiệu với công nghệ MMX và SSE2 extension, các lệnh

SSE2 thực hiện trên gói chứa các toán hạng dấu chấm động với độ chính xác gấp

đôi và các gói byte, word, doubleword và quadword trong các thanh ghi XMM, tập lệnh

SSE2 chỉ được thực hiện trên các VXL được hỗ trợ SSE2 extensions.

c. Double-precision floating-point instructions( các lệnh thực hiện trên các toán

hạng số thực dấu chấm động có độ chính xác kép) bao gồm:

Di chuyển dữ liệu: di chuyển dữ liệu dấu chấm động có độ chính xác kép giữa

các thanh ghi XMM, thanh ghi XMM và bộ nhớ.ví dụ

Page 27: Bao cao mon_ky_thuat_vi_xu_ly

MOVAPD: di chuyển hai giá trị dấu chấm động có độ chính xác đơn giữa

thanh ghi XMM hoặc giữa thanh ghi XMM và bộ nhớ

Số học: thực hiện các phép toán cộng/trừ/nhân/chia/tính căn bậc 2/min, max

trên các giá trị số thực dấu chấm động có độ chính xác kép

ADDPD: cộng các giá trị dấu chấm động có độ chính xác kép

MULSD: thực hiện phép nhân giá trị dấu chấm động có độ chính xác kép

So sánh: so sánh các giá trị dấu chấm động có độ chính xác kép

Chuyển đổi

CVTPD2PI: chuyển đổi giá trị số thực dấu chấm động có độ chính xác đơn sang

số nguyên 32 bit

Logic: thực hiện các phép toán logic trên các giá trị số thực có độ chính xác kép

ANDPD/XOR/NOT/OR: thực hiên phép toán logic AND/XOR/NOT/OR trên giá trị

số thực có độ chính xác kép

Các lệnh khác (shuffle operations on double-precision floating-point operands)

SHUFPD: Shuffles values in packed double-precision floating-point operands

(sắp xếp lẫn lộn các toán hạng)

d. Packed single-precision floating-point conversion instructions(các

lệnh chuyển đổi trên số thực dấu chấm động có độ chính xác đơn)

thực hiện việc chuyển đổi trên các toán hạng dấu chấm động độ chính xác đơn và

số nguyên. Những lệnh này đại diện cho sự cải tiến từ tập lệnh tương tự trên SSE.

Một số lệnh:

CVTDQ2PS: chuyển giá trị số nguyên sang số thực dấu chấm động độ

chính xác đơn

CVTPS2DQ: chuyển giá trị dấu chấm động độ chính xác đơn sang số nguyên

8. SSE3 instructions

Được phát triển từ thành công của công nghệ MMX (Matrix Math Extensions, các

mở rộng tính toán ma trận) từ thời CPU Pentium MMX, SSE (Streaming SIMD

Extensions, các mở rộng SIMD theo dòng) giờ đây đã được Intel phát triển tới

phiên bản thứ ba (SSE3) cho CPU Prescott với tên mã Prescott New Instructions (PNI,

các lệnh mới Prescott).

Page 28: Bao cao mon_ky_thuat_vi_xu_ly

SIMD được viết tắt từ Single Instruction, Multiple Data (một lệnh, nhiều dữ liệu).

Đó là một bộ các hoạt động xử lý một cách hữu hiệu những khối lượng lớn dữ liệu

song song với nhau trong kiến trúc máy tính IA-32 (tức kiến trúc 32-bit).

SSE3 với 13 lệnh mới sẽ mở rộng các khả năng của SSE2, cải thiện hoạt động

của công nghệ siêu phân luồng HT cho hiệu quả hơn, tăng cường các chức

năng multimedia và Internet cho hệ thống.

Tập lệnh SSE3 chỉ được thực hiện trên các VXL IA-32 được hỗ trợ phần mở rộng

SSE3.

CPU Prescott có thêm 13 lệnh mới:

1 lệnh cho tác vụ chuyển đổi floating point to integer:FISTTP

5 lệnh cho tác vụ tính toán phức hợp complex arithmetic (tương đương với các

lệnh ADD/SUB/LOAD/MOVE/DUPLICATE)

ADDSUBPS, ADDSUBPD, MOVSHDUP, MOVSLDUP, MOVDDUP

1 lệnh cho mã hóa video: LDDQU

4 lệnh cho SIMD-FP dùng định dạng AOS /Array-of-

Structures: HADDPS, HSUBPS, HADDPD, HSUBPD

2 lệnh cho sự đồng bộ hóa luồng thread synchronisation:

o MONITOR: tạo 1 dãy địa chỉ để giám sát các kho dữ liệu được ghi lại

(Sets up an address range used to monitor write-back store

o MWAIT: Enables a logical processor to enter into an optimized state while

waiting for a write-back store to the address range set up by the MONITOR

instruction ( cho phép một bộ xử lý logic nhập vào trạng thái tối ưu trong khi

chờ đợi kho dữ liệu ghi lại để dãy địa chỉ được thiết lập bởi lệnh MONITOR)

9. 64-bit mode instructions

Các lệnh sau được giới thiệu với chế độ 64-bit, đây là chế độ phụ của IA-32:

CDQE: chuyển từ doubleword sang quadword (Convert doubleword

to quadword

CMPSQ: so sánh xâu (Compare string operand)

MOVSQ: di chuyển quadword từ địa chỉ (R)SI tới (R)DI

SYSRET: trở về từ lời gọi hệ thống nhanh

Page 29: Bao cao mon_ky_thuat_vi_xu_ly

C. KẾT LUẬN

Intel đã đưa ra Pentium 4 nhằm tập trung vào tốc độ xung nhịp cao với thiết kế

pipeline rất dài. Tuy đúng là cách làm này sẽ tạo ra tốc độ rất cao nhưng nó cũng

đồng nghĩa với hiệu suất làm việc lại giảm đi vì việc thực hiện một lệnh cần quá

nhiều giai

đoạn. CPU pentium 4 thường có xung nhịp cao hơn những CPU của AMD, nhưng lại

không nhanh hơn khi kiểm nghiệm Benchmark. Điều này khiến người dùng có khuynh

hướng lựa chọn những bộ vi xử lí Pentium 4 vì theo họ bộ vi xử lí nào có tốc độ

cao hơn sẽ chạy hiệu quả hơn, mặc dù điều đó là không phải.

Trong khi đó công nghệ HyperThreading (HT) được giới thiệu vào giai đoạn

giữa của Pentium 4 lại chỉ thành công về khía cạnh … marketing. Lợi ích mà HT đem

lại thấp (và đôi khi còn kém hơn không dùng HT). Trên thực tế, nếu người dùng phổ

thông kích hoạt tính năng “siêu luồng” trên máy tính desktop của mình, họ có thể ch

ng được gì ngoại trừ phải trả giá bằng việc giảm tốc độ tới 10%.

Tuy nhiên Pentium 4 không chỉ có những nhược điểm. Với tập lệnh SSE2 và

SSE3 cùng những công nghệ hàng đầu như Quad Data Rate, Trace Cache, Rapid

Execution Engine, Dual Channel Memory, Pentium 4 tỏ ra rất xuất sắc trong các ứng

dụng từ văn

phòng tới multimedia. Người dùng các ứng dụng tính toán phức tạp (kiểu như

rendering của Maya, 3DS) sẽ được hưởng lợi rất nhiều từ HyperThreading. Và khi

card đồ họa 3D ngày càng trở nên mạnh mẽ, một chip P4 sẽ đem đến nền tảng tuyệt

vời cho các game thủ. Đặc biệt giới overclock rất quan tâm tới nhân Northwood phát

hành năm

2002. Với một bo mạch chủ và RAM đủ mạnh, ngay cả những người mới tập

overclock cũng có thể đạt tới 1GHz khi sử dụng giải pháp tản nhiệt thông thường.

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

[1] INSIDE PENTIUM IV ARCHITECTURE - GABRIEL TORRES

[2] IA-32 Intel Architecture Software Developer’s Manual

[3] Chặng đường 35 năm phát triển của VXL Intel