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

Bài giảng V xử lý 2

216 7 0

Đ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

Định dạng
Số trang 216
Dung lượng 4,71 MB

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

Nội dung

Trong đó chương 1 giới thiệu khái quát về các bộ vi xử lý từ khi bắt đầu đến các bộ vi xử lý tiên tiến hiện nay, đặc điểm chung của các dòng vi xử lý tiên tiến, phương pháp tổ chức bộ nh

Trang 1

TËp bµi gi¶ng

Vi xö lý 2 Mã: TB2103-03-01

chñ biªn: Ph¹m Xu©n B¸ch

Trần Văn Hạnh

NAM ĐỊNH, NĂM 2013

Trang 2

Mục lục

DANH MỤC CÁC HÌNH VẼ iv

LỜI MỞ ĐẦU 1

Chương 1 CẤU TRÚC CHUNG CỦA CÁC BỘ VI XỬ LÝ TIÊN TIẾN 3

1.1 Giới thiệu một số bộ vi xử lý qua các thời kỳ của Intel 3

1.1.1 Bộ vi xử lý dòng 80xx 3

1.1.2 Bộ vi xử lý PENTIUM 7

1.1.3 Bộ vi xử lý dòng core i 22

1.2 Đặc điểm chung của các bộ vi xử lý tiên tiến 26

1.2.1 Sơ đồ cấu trúc chung 26

1.2.2 Đơn vị giao tiếp BUS 27

1.2.3 Đơn vị tiền đọc lệnh và hàng đợi lệnh PUIQ 27

1.2.4 Bộ nhớ Cache ( I Cache và D Cache) 28

1.2.5 Đơn vị điều khiển CU 29

1.2.6 Đơn vị quản lý bộ nhớ MMU 29

1.2.7 Đơn vị chức năng đặc biệt (SFU) 39

1.2.8 Đơn vị số nguyên và dấu phảy động 39

1.3 Tổ chức bộ nhớ đa cấp 42

1.3.1 Phương pháp tổ chức bộ nhớ phân cấp 43

1.3.2 Cấu trúc bộ nhớ phân cấp trong hệ vi xử lý 45

1.3.3 Tổ chức bộ nhớ đan xen 48

1.4 Tổ chức và quản lý bộ nhớ ảo 52

1.4.1 Khái quát chung về tổ chức và quản lý bộ nhớ ảo 52

1.4.2 Quá trình tổ chức và quản lý bộ nhớ ảo 54

1.5 Kiến trúc Von Neumann và Havard 65

1.5.1 Kiến trúc Von Neumann 65

1.5.2 Kiến trúc Havard 66

CÂU HỎI ÔN TẬP CHƯƠNG 1 68

Chương 2 KIẾN TRÚC CISC VÀ RISC 70

2.1 Khái niệm CISC, RISC 70

2.1.1 Khái niệm về CISC 70

2.1.2 Khái niệm về RISC 70

2.2 Kiến trúc RISC 70

2.2.1 Đặc điểm của RISC 70

2.2.2 Định hướng thiết kế RISC 71

2.3 Đặc điểm của CISC 75

Trang 3

2.4 So sánh kiến trúc RISC và CISC 75

CÂU HỎI ÔN TẬP CHƯƠNG 2 76

Chương 3 CÁC CẤU TRÚC SONG SONG 77

3.1 Tổng quan về máy tính song song 77

3.1.1 Phân loại hệ xử lý song song 77

3.1.2 Các đặc trưng của hệ xử lý song song chuyên dụng 81

3.1.3 Kiến trúc của hệ xử lý song song chuyên dụng 83

3.2 Kỹ thuật đường ống ( kiến trúc kiểu PIPELINE) 84

3.2.1 Cấu trúc của hệ xử lý PIPLINE 84

3.2.2 Nguyên tắc của phương pháp xử lý vector trong PIPLINE 88

3.2.3 Kiến trúc pipeline có khả năng rẽ nhánh 88

3.2.4 Tổ chức hệ xử lý pipeline 90

3.3 Máy tính đa CPU 91

3.3.1 Khái quát về máy tính đa CPU 91

3.3.2 Cấu trúc của hệ xử lý song song đa CPU 92

3.3.3 Hiệu năng của hệ xử lý đa CPU 93

3.4 Hiệu suất của xử lý song song 95

3.4.1 Hiệu suất xử lý song song của kiến trúc đường ống (PIPELINE) 95

3.4.2 Các phép đo hiệu suất của đường ống (PIPELINE) 97

3.4.3 Những ảnh hưởng đến hiệu suất của kiến trúc đường ống 97

3.4.4 Những biện pháp khắc phục 99

3.4.5 Hiệu suất truy cập bộ nhớ của hệ xử lý song song 102

CÂU HỎI ÔN CHƯƠNG 3 110

Chương 4 HỌ VI ĐIỀU KHIỂN PIC 111

4.1 Kiến trúc Vi điều khiển PIC 111

4.1.1 Giới thiệu bộ vi điều khiển 8 bit 111

4.1.2 Vi điều khiển 8 bit PIC16F877 112

4.1.3 Các khối chức năng chính bên trong vi điều khiển PIC16f877 116

4.2 Tổ chức bộ nhớ 129

4.2.1 Tổ chức bộ nhớ chương trình FLASH và ngăn xếp 129

4.2.2 Tổ chức bộ nhớ dữ liệu RAM 130

4.2.3 Các trang bộ nhớ chương trình 133

4.2.4 Truy cập bộ nhớ RAM bằng địa chỉ trực tiếp, gián tiếp 133

4.2.5 Bộ nhớ dữ liệu EEPROM và bộ nhớ chương trình FLASH 134

4.2.6 Đọc bộ nhớ dữ liệu EEPROM 135

Trang 4

4.2.7 Ghi vào bộ nhớ dữ liệu EEPROM 136

4.2.8 Đọc chương trình FLASH 136

4.2.9 Ghi tới FLASH 137

4.3 Khối timer/counter 138

4.4 Ngắt và lập trình phục vụ ngắt 143

4.5 Lập trình vi điều khiển bằng ngôn ngữ C 145

4.5.1 Lưu đồ thuật toán và các cấu trúc điều khiển cơ bản 145

4.5.2 Giới thiệu tập lệnh của PIC16F877 152

4.5.3 Tóm tắt lý thuyết ngôn ngữ lập trình C 153

4.5.4 Cấu trúc một chương trình C 158

4.5.5 Lập trình cho vi điều khiển PIC bằng CCS C 158

4.6 Một số ví dụ cơ bản viết cho PIC 16F877A 170

4.6.1 Viết chương trình cho vi điều khiển có chức năng làm đầu ra 171

4.6.2 Viết chương trình cho vi điều khiển có chức năng làm đầu vào 176

4.6.3 Viết chương trình cho vi điều khiển ứng dụng ngắt 187

4.6.4 Viết chương trình cho vi điều khiển sử dụng ADC 190

4.6.5 Viết chương trình cho vi điều khiển sử dụng PWM 194

CÂU HỎI ÔN TẬP CHƯƠNG 4 196

TÀI LIỆU THAM KHẢO 201

Phụ lục A Nội dung file “def_16f877a” 1

Trang 5

DANH MỤC CÁC HÌNH VẼ

Chương 1

Hình 1.1 Lịch sử phát triển của CPU 3

Hình 1.2 Cấu trúc bên trong bộ vi xử lý Pentium 8

Hình 1.3 Thực hiện trên dữ liệu từ của MMX 13

Hình 1.4 Cấu trúc BUS của Pentium II và Pentium 15

Hình 1.5 Tổ chức bus trong hệ thống máy tính với bộ vi xử lý Peniutm II 17

Hình 1.6 Mô tả xử lý HTT 23

Hình 1.7 Mô tả xử lý Multi Core 23

Hình 1.8 Mô hình Turbo boost 23

Hình 1.9 Sơ đồ cấu trúc chung của vi xử lý tiên tiến 26

Hình 1.10 Mô hình phân đoạn bộ nhớ 32

Hình 1.11 Cơ chế phần cứng hổ trợ kĩ thuật phân đoạn 32

Hình 1.12 Hệ thống phân đoạn 33

Hình 1.13 Chia sẻ code trong hệ phân đoạn 34

Hình 1.14 Quản lý bộ nhớ bằng bảng các bit 34

Hình 1.15 Quản lý bộ nhớ bằng danh sách 35

Hình 1.16 Mô hình bộ nhớ phân trang 35

Hình 1.17 Cơ chế phần cứng hỗ trợ phân trang 36

Hình 1.18 Chia sẻ các trang trong hệ phân trang 37

Hình 1.19 Mô hình phân đoạn kết hợp phân trang 38

Hình 1.20 Cơ chế phần cứng của sự phân đoạn kết hợp phân trang 39

Hình 1.21 Cấu trúc của bộ nhớ phân cấp trong các hệ vi xử lý 45

Hình 1.22 Bộ nhớ đan xen bậc cao 48

Hình 1.23 Bộ nhớ đan xen bậc thấp 49

Hình 1.24 Cấu hình bộ nhớ S – access 50

Hình 1.25 Giản đồ thời gian đối với cấu hình S – access 50

Hình 1.26 Cấu hình bộ nhớ C – access 51

Hình 1.27 Giản đồ thời gian đối với cấu hình C – access 51

Hình 1.28 Bảng đặc tả trang ảo 57

Hình 1.29 Thí dụ về bảng đặc tả trang 57

Hình 1.30 Qui trình đổi địa chỉ ảo sang địa chỉ thật 58

Hình 1.31 Phương pháp FIFO 58

Trang 6

Hình 1.32 Phương pháp ―Clock‖ 59

Hình 1.33 Bảng đặc tả trang 61

Hình 1.34 Quá trình phân trang 61

Hình 1.35 Không gian địa chỉ ảo 62

Hình 1.36 Không gian bộ nhớ độc lập 62

Hình 1.37 Bảng đặc tả phân đoạn 63

Hình 1.38 Bảng đặc tả phân trang và phân đoạn 64

Hình 1.39 Kiến trúc Von-Neumann 65

Hình 1.40 Kiến trúc Harvard 67

Chương 2 Hình 2.1 Mô hình kiến trúc: a) Hệ xử lý CISC b) Hệ xử lý RISC 76

Chương 3 Hình 3.1 Mô hình kiến trúc SISD 79

Hình 3.2 Mô hình kiến trúc SIMD 79

Hình 3.3 Mô hình kiến trúc MISD 80

Hình 3.4 Mô hình kiến trúc MIMD 80

Hình 3.5 Kiến trúc của hệ xử lý song song chuyên dụng 84

Hình 3.6 Cấu trúc cơ bản một pipeline 85

Hình 3.7 Kiến trúc PIPELINE 4 tầng 86

Hình 3.8 Hiệu ứng PIPELINE 86

Hình 3.9 Cấu trúc của khối chuẩn bị lệnh trong máy tính CRAY-1 87

Hình 3.10 Pipeline có khả năng rẽ nhánh 89

Hình 3.11 Tổ chức kênh thông tin trong hệ PIPELINE 90

Hình 3.12 Hiệu ứng pipline bị huỷ bỏ khi gặp lệnh nhảy 90

Hình 3.13 Tổ chức phần cứng của hệ xử lý song song p CPU 92

Hình 3.14 PIPELINE tuyến tính 95

Hình 3.15 Mô hình hệ thống nhớ đan xen 104

Hình 3.16 Sự phụ thuộc của En vào n 105

Hình 3.17 Đồ thị thời gian của chu kỳ truy cập bộ nhớ 106

Hình 3.18 Sự phụ thuộc IEn 107

Hình 3.19 Mối quan hệ hiệu suất DEn theo  khi n =16 109

Hình 3.20 Mối quan hệ hiệu năng DEn theo  khi n thay đổi 110

Trang 7

Chương 4

Hình 4.1 Sơ đồ khối bộ vi điều khiển PIC16F877 112

Hình 4.2 Sơ đồ chân vi điều khiển PIC16F887 114

Hình 4.3 Cấu trúc các chân RA0-RA3 của PORTA 116

Hình 4.4 Cấu trúc các chân RA4 và RA5 của PORTA 116

Hình 4.5 Cấu trúc các chân RB0-RB3 và RB4-RB7 của PORTB 117

Hình 4.7 Cấu trúc các chân RC3,RC4 và RC0,RC1,RC2,RC5,RC6,RC7 của PORTC 118

Hình 4.8 Cấu trúc các chân PORTD 119

Hình 4.9 Cấu trúc các chân PORTE 120

Hình 4.10 Tổ chức bộ nhớ chương trình FLASH và ngăn xếp 130

Hình 4.11 Tổ chức bộ nhớ dữ liệu RAM 131

Hình 4.12 Quá trình nạp PCLATH tới PC 133

Hình 4.13 Truy cập bộ nhớ RAM 133

Hình 4.11 Cấu trúc Timer0 và WDT 139

Hình 4.12 Cấu trúc Timer1 141

Hình 4.13 Cấu trúc Timer2 143

Hình 4.14 Sơ đồ các bit điều khiển ngắt 144

Hình 4.14 Các ký hiệu sử dụng trong lưu đồ thuật toán 146

Hình 4.15 Cấu trúc tuần tự 146

Hình 4.16 Cấu trúc lựa chọn if 148

Hình 4.18 Cấu trúc lặp for / while 150

Hình 4.19 Cấu trúc lặp do / while 150

Hình 4.20 Cấu trúc khung chương trình trong C 158

Hình 4.21 Tạo dự án trên CCS C 160

Hình 4.22 Cửa sổ SaveAs để lưu dự án trên CCS 160

Hình 4.23 Tab General trên CCS C 161

Hình 4.24 Tab Communications trên CCS C 162

Hình 4.25 Tab SPI and LCD trên CCS C 162

Hình 4.26 Tab Timer trên CCS C 163

Hình 4.27 Tab Analog trên CCS C 163

Hình 4.28 Tab Other trên CCS C 164

Hình 4.29 Tab Interrupts trên CCS C 165

Trang 8

Hình 4.30 Tab Driver trên CCS C 165

Hình 4.31 Tạo dự án trên CCS C 168

Hình 4.32 Lưu dự án trên CCS C 169

Hình 4.33 Tùy chọn cho dự án trên CCS C 169

Hình 4.34 Dự án được tạo ra trên CCS C 170

Trang 10

LỜI MỞ ĐẦU

Sự ra đời và phát triển nhanh của công nghệ vi điện tử đã tạo ra bước đột phá mạnh mẽ trong lĩnh vực khoa học tính toán và xử lý thông tin Với sự phát triển ứng dụng các công nghệ này đã làm cho ranh giới các ngành không còn rõ rệt nữa (như Công nghệ thông tin, Điện tử viễn thông và Tự động điều khiển…) Các hệ thống từ quy mô nhỏ tới quy mô lớn và siêu lớn trong mọi lĩnh vực công nghiệp cũng như dân dụng đều chứng kiến sự hiện hữu của các hệ vi xử lý, chúng đóng vai trò trung tâm điều khiển hệ thống thực hiện các nhiệm vụ Những hệ thống này đáp ứng được các yêu cầu khắt khe nhất như đòi hỏi phải xử lý dữ liệu với tốc độ rất cao, khối lượng dữ liệu và số lượng phép tính rất lớn Để đáp ứng các yêu cầu trên, giải pháp thiết kế hệ thống theo hướng xử lý song song là hướng nghiên cứu được ưu tiên ngày nay

Để tăng tốc độ cho các hệ xử lý, các nhà thiết kế chế tạo đã áp dụng các công nghệ tiên tiến, từng bước nâng cấp hoàn thiện cho các bộ vi xử lý Điển hình là cấu trúc bộ vi xử lý với tập lệnh đầy đủ (CISC), bộ vi xử lý với tập lệnh rút gọn RISC Những nghiên cứu về kiến trúc hệ thống số đã khẳng định được ưu thế nổi bật của hệ thống xử lý song song Tuy nhiên, xử lý song song là vấn đề phức tạp, liên quan tới nhiều cơ cấu như: phần cứng của hệ xử lý, phần mềm hệ thống (hệ điều hành), thuật toán tính toán, ngôn ngữ lập trình…

Học phần Vi xử lý 2 là học phần chuyên ngành của ngành đào tạo Công nghệ

Kỹ thuật Điện-Điện tử của khoa Điện-Điện tử trường ĐH Sư phạm Kỹ thuật Nam Định Đào tạo theo học chế tín chỉ, thời gian tự học của sinh viên chiếm một lượng thời gian lớn, nhằm cung cấp cho sinh viên tài liệu có tính hệ thống phục vụ quá trình

tự học, chúng tôi biên soạn tập bài giảng học phần Vi xử lý 2 Mục tiêu của học phần

là trang bị cho sinh viên kiến thức chung của hệ vi xử lý tiên tiến, quy trình làm việc

và lập trình điều khiển hoạt động hệ vi xử lý Trên cơ sở đó, sinh viên có khả năng thiết kế phần cứng, viết phần mềm điều khiển hệ vi xử lý dựa trên các chip vi xử lý và

vi điều khiển tiên tiến

Đặc trưng của sinh viên ngành Điện-Điện tử thường điều khiển các thiết bị đòi hỏi sự kết hợp giữa phần cứng và phần mềm Để xây dựng được một thiết bị trên vi xử

lý, đòi hỏi phải thiết kế phần cứng tương đối phức tạp bao gồm tổ chức bộ nhớ, phối ghép vào ra Điều này là khó khăn với những người mới tiếp cận môn học để tạo ra một sản phẩm hoàn chỉnh Trong trường hợp này, ứng dụng vi điều khiển có nhiều

Trang 11

thuận lợi Vi điều khiển là một hệ vi xử lý được đóng gói trên chip với các thành phần bên ngoài tối thiểu để hoạt động Do đó, vi điều khiển là một công cụ thực hành hiệu quả cho phép sinh viên hiểu hoạt động của hệ vi xử lý đồng thời áp dụng các kiến thức

đã học được vào các sản phẩm thực tế Điều này giúp sinh viên có thêm niềm hứng thú khi học hỏi môn học và cũng góp phần kết hợp chặt chẽ giữa lý thuyết và thực hành Tập bài giảng này được viết theo chương trình học phần Vi xử lý 2 đã được phê duyệt Trong đó chương 1 giới thiệu khái quát về các bộ vi xử lý từ khi bắt đầu đến các

bộ vi xử lý tiên tiến hiện nay, đặc điểm chung của các dòng vi xử lý tiên tiến, phương pháp tổ chức bộ nhớ phân cấp, tổ chức và quản lý bộ nhớ ảo, cùng theo đó là các kiến

trình bày về Vi điều khiển PIC là dòng vi điều khiển tương đối hiện đại và phổ biển hiện nay, sử dụng ngôn ngữ lập trình C để viết chương trình cho vi điều khiển này Trong các chương cùng với lý thuyết đã đưa vào các ví dụ bài tập có lời giải Cuối mỗi chương có các bài tập củng cố lý thuyết

Trong quá trình biên soạn, mặc dù đã cố gắng nhưng không tránh khỏi sai sót, nhóm tác giả rất mong được sự đóng góp của quý thầy, cô và bạn đọc

Trang 12

Chương 1 CẤU TRÚC CHUNG CỦA CÁC BỘ VI XỬ LÝ TIÊN TIẾN

1.1 Giới thiệu một số bộ vi xử lý qua các thời kỳ của Intel

Những năm gần đây, kỹ thuật vi xử lý phát triển một cách nhanh chóng, đặc biệt

là công nghệ CPU (bộ xử lý trung tâm) của máy tính Intel là một trong những công ty sản xuất CPU hàng đầu thế giới với các dòng CPU từ 386, 486, 586, Pentium I, II, III cho đến Core 2 dual và Core I, những dòng CPU này được nhiều hãng sản xuất máy tính trên thế giới chọn làm CPU cho máy tính PC Riêng dòng sản phẩm CPU core I, gồm core I3, I5 và I7 được Intel cải tiến với tốc độ xử lý nhanh và hiệu quả

Sự ra đời và phát triển của CPU từ năm 1971 cho đến nay với các tên gọi tương ứng với công nghệ và chiến lược phát triển kinh doanh của hãng Intel: CPU 4004, CPU

8088, CPU 80286, CPU 80386, CPU 80486, CPU 80586, Core i3, i5, i7 Tóm tắt qua sơ đồ mô tả:

- 40 chân DIP (dual in line package)

- Bus dữ liệu ngoài 16 bit, 20 bit địa chỉ, có dồn kênh

- Các thiết bị ngoại vi và phụ trợ 16 bit, giá đắt, ít máy tính cá nhân sử dụng

Về phương diện máy tính xem như không thành công

b Bộ vi xử lý 8088

- Ra đời cũng vào thời gian của 8086 tức năm 1978

- Khác với bộ vi xử lý 8086, 8088 có bus dữ liệu ngoài là 8 bit

- Bus dữ liệu trong giống như 8086 là 16 bit, nhịp 4,77 Mhz, 20 bit địa chỉ

Trang 13

- Khả năng lập địa chỉ cho bộ nhớ là 1 Mb

Bộ vi xử lý 8088 đã được IBM sử dụng để xây dựng các máy tính nguyên thuỷ Ưu điểm chính của bộ vi xử lý lúc đó là sử dụng được tốc độ nhanh của 16 bít dữ liệu bên trong nhưng vẫn cho phép tận dụng được các thiết bị ngoại vi 8 bít rẻ tiền vì bộ vi xử

lý có 8 bít dữ liệu ngoài Các thế hệ sau đã nâng được tần số làm việc lên 10 Mhz

c Bộ vi xử lý 80186

- Ra đời năm 1984 Chip vi xử lý này có 68 chân

- Có cấu trúc cơ bản giống với bộ vi xử lý 8086

- Được bổ sung thêm: Bộ tạo xung đồng hồ, bộ điều khiển ngắt ưu tiên, bộ đếm thời gian lập trình được, bộ điều khiển thâm nhập trực tiếp bộ nhớ, bộ tạo thời gian lập

trình được và các mạch giải mã địa chỉ

- Bộ vi xử lý 80186 thích hợp cho các ứng dụng công nghiệp, tuy vậy 80186 ít được sử dụng trong xây dựng các máy vi tính

d Bộ vi xử lý 80286

Một số thông số chính của bộ vi xử lý 80286:

- Ra đời năm 1984

- Mật độ trên 100.000 transistor/chip

- Có 68 chân đóng vỏ LCC Lead chip carier

- Bus dữ liệu 16 bit, có 16 chân dữ liệu D0-D15 riêng

- 24 chân địa chỉ A0-A23 riêng, không dồn kênh

- Nhịp đồng hồ 20 Mhz

Đặc điểm nâng cao

Mặc dù bộ vi xử lý 80286 về cơ bản được xây dựng trên cơ sở của bộ vi xử lý 8086/88 và tương tương thích hoàn toàn với 8086/88 nhưng được cải tiến và bổ sung

thêm một số tính năng rất quan trọng đó là bổ sung mạch quản lý bộ nhớ Mạch quản

lý bộ nhớ này cho phép 80286 ngoài làm việc ở chế độ thực (Real mode) như của

8086/88, còn cho phép làm việc ở chế độ bảo vệ (Protected mode) Với tính năng này

80286 có khả năng làm việc đa nhiệm tức nhiều chương trình ứng dụng cùng được thực hiện đồng thời mà không gây xung đột bộ nhớ và cho phép làm việc ở chế độ bộ nhớ ảo (khả năng sử dụng bộ nhớ lớn hơn nhiều bộ nhớ vật lý của hệ thống máy tính với giải pháp sử dụng một phần không gian của ổ đĩa cứng để làm bộ nhớ)

Hai chế độ làm việc của 80286 cụ thể như sau:

- Chế độ thực (real mode)

+ Hạn chế của 8086/88 là sử dụng địa chỉ 20 bit vì vậy không gian bộ nhớ hạn chế ở 1Mb Không gian này lại còn bị thu hẹp do PC sử dụng một phần của bộ nhớ

Trang 14

trên 640Kb cho một số mục đích khác

+ 80286 sử dụng 24 chân bit địa chỉ, vì vậy không gian bộ nhớ vật lý có thể mở rộng đến 224 = 16Mb Tuy vậy, thực chất các chương trình dưới DOS không thể sử dụng vùng nhớ mở rộng thêm Ở chế độ thực 80286 làm việc như 8086 tức chỉ sử dụng 16 bit địa chỉ đoạn, dịch trái 4 bit rồi cộng với địa chỉ làm lệch để tạo ra 20 bit địa chỉ thấp của 1 địa chỉ vật lý 24 bit 4 bít cao bị xoá đi Vì vậy chúng ta có địa chỉ giới hạn ở 1 Mb

+ Trên thực tế 80286 có khả năng truy nhập trên 1 Mb ở chế độ thực

- Chế độ bảo vệ:

Trong chế độ bảo vệ, máy tính có thể sử dụng bộ nhớ vượt quá hàng rào 640 Kb của

bộ nhớ truyền thống Để chạy các chương trình MS DOS trong bộ nhớ phát triển này, các bộ vi xử lý có khả năng mô phỏng 2 hoặc nhiều máy tính DOS 640 K, cho đến giới hạn của bộ nhớ phát triển Các máy mô phỏng này gọi là máy ảo Và mỗi máy ảo này phải bảo vệ 640 Kb nhớ của mình để không bị các máy khác ảnh hưởng Thực hiện được vấn đề này nhờ 80286 có tổ chức thanh ghi và quản lý bộ nhớ

Đối với 80286 ở chế độ bảo vệ với cơ chế bộ nhớ ảo 80286 cho phép làm việc với

bộ nhớ vật lý 16 Mb và bộ nhớ logic 1GB Thanh ghi đoạn ở chế độ này được sử dụng làm bộ chọn đoạn Bộ chọn đoạn trỏ tới bộ mô tả đoạn nằm trên bộ nhớ vật lý để tạo nên địa chỉ cơ sở và kết hợp với địa chỉ lệch được tạo bởi thanh ghi con trỏ và chỉ số

để trỏ tới địa chỉ bộ nhớ được sử dụng Thanh ghi đoạn có 16 bit, 2 bit sử dụng định nghĩa 4 mức ưu tiên, 1 bit dùng xác định chỉ số bảng để phân biệt không gian toàn cục

và không gian cục bộ, còn lại 13 bit chỉ số Như vậy địa chỉ quản lý được là

213x216x21=230=1Gbyte Đối với 80386 chọn đoạn sử dụng 14 bit như ở 80286 Mỗi giá trị có thể truy nhập vùng nhớ 4 GB, do đó tổng cộng bộ nhớ ảo của 80386 là

214x232 = 64TB (1TB= 240) Như vậy 386 có thể truy nhập được 64TB bộ nhớ ảo

Đặc điểm nâng cao

Đặc trưng lớn nhất của 80386 là lần đầu tiên ra đời bộ vi xử lý đầy đủ 32bit - một

bộ vi xử lý mạnh và tối ưu với các hệ điều hành đa nhiệm Một số thông số và đặc điểm chính của bộ vi xử lý như sau:

- Các thanh ghi mở rộng đến 32bit nên 80386 được gọi là bộ vi xử lý 32bit

- Bus dữ liệu tăng từ 16 lên 32bit cả trong và ngoài

Trang 15

- Bus địa chỉ tăng lên 32bit nên bộ nhớ vật lý cho phép truy cập là 232 = 4Gb

- Ở 80386 có thêm cơ chế quản lý bộ nhớ ảo theo trang vì thế 80386 có cả 2 cơ

chế quản lý: phân đoạn bộ nhớ theo cách truyền thống và phân trang bộ nhớ Ở

phương pháp phân đoạn kích thước dữ liệu tráo đổi có thể thay đổi tuỳ ý từ 1 byte cho đến vài Mb, trong khi ở phân trang, kích thước tráo đổi được thực hiện theo từng trang 4Kb do vậy giảm được việc phân mảng bộ nhớ và giảm bớt được công việc của hệ điều hành (Bộ nhớ vật lý của 80386 là 232= 4Gb Bộ nhớ logic là 214x232= 64Tb (1 Tera = 240))

- Một điểm mạnh của 386 nữa là khả năng chuyển đổi từ chế độ bảo vệ sang chế

độ thực có thể thực hiện được bằng phần mềm, trong khi ở 80286 buộc phải RESET

- Một loại vi xử lý dựa trên cơ sở chip 80386DX và được thiết kế với các mạch quản lý năng lượng thấp là 80386SX Bộ vi xử lý này được sản xuất năm 1988, có cấu trúc bên trong 32 bit song song, bus dữ liệu ngoài là 16 bit nhằm 2 mục đích:

+ Sử dụng ít năng lượng nên thường được dùng ở các máy tính xách tay

+ Tận dụng được các thiết bị ngoại vi 16 bit rẻ tiền

- Có 168 chân, đóng vỏ PGA (Pin grid array)

- Là bộ vi xử lý 32 bit như 386, tức có cấu trúc bên trong, các thanh ghi cũng như bus dữ liệu ngoài đều là 32 bit

- Bus dữ liệu chân D0-D31

- Bus địa chỉ chân A0-A31

Đặc điểm nâng cao:

- Có tổ chức đường ống tương đối phức tạp (pepeline) nhờ vậy mà tốc độ thực

hiện của 80486 nhanh hơn nhiều lần so với 386 Nhiều lệnh nếu thực hiện ở 386 mất 3 chu kỳ đồng hồ thì ở 80486 chỉ mất có 1 chu kỳ

- Sử dụng Cache Internal: 8kb bên trong CPU loại trừ được độ trễ khi sử dụng cache external 8 kb cache Internal được dùng để lưu dữ liệu và lệnh nên tăng đáng kể tốc độ xử lý

- Có đồng xử lý toán học ngay bên trong CPU

Trang 16

- Có thiết kế 4 chân DP0-DP3 (Data Parity) để kiểm tra tính chẵn lẻ của hệ thống Mỗi chân cho mỗi byte từ D0-D31

- Sử dụng công nghệ nhân tần số hệ thống (Overdrive) cho chế độ làm việc của

CPU

Để tăng tốc độ làm việc của CPU nhưng không phải chịu giá thành quá lớn của MainBoard do việc tăng tần số, Intel đã sử dụng một công nghệ mới gọi là công nghệ nhân tần số cho CPU (OverDrive) Nội dung của công nghệ này là CPU 80486 có thể làm việc ở tần số nhiều lần nhanh hơn so với tần số hệ thống Nhờ công nghệ này hệ thống máy tính có thể tận dụng được tối đa tốc độ của CPU

Với các bộ vi xử lý sau này như DX2, DX4 tần số làm việc của CPU có khả năng thực hiện với tốc độ nhanh gấp đôi thậm chí gấp ba tốc độ hệ thống

Ví dụ: DX2/50 -> Hệ thống và đồng hồ 25 Mhz, CPU làm việc ở 50 Mhz

DX2/66 -> Hệ thống và đồng hồ 33 Mhz, CPU làm việc ở 66 Mhz

486DX4 1993 đồng hồ 75, 100 nhân tốc độ đồng hồ lên nhiều lần

Cấu trúc pepeline (đường ống) của 80486

Ý tưởng cấu trúc đường ống Pepeline (hay xử lý xen kẽ liên tục dòng mã lệnh)

là quá trình nhận và thực hiện lệnh được phân ra ở nhiều tầng và các tầng thực hiện song song, nhờ vậy mà CPU có thể thực hiện được nhiều lệnh đồng thời Quá trình hình thành cấu trúc pepeline của các bộ vi xử lý tiên tiến như sau:

- 8085 chưa thực hiện Pepeline Tại mỗi thời điểm CPU hoặc là nhận lệnh, hoặc

là thực hiện lệnh Như vậy nếu BUS bận nhận lệnh thì CPU rỗi và khi CPU thực hiện lệnh BUS lại rỗi Hiệu quả sử dụng Bus rất thấp

- 8086/88 Nhận và thực hiện lệnh được tiến hành song song qua 2 đơn vị khác nhau trong CPU là EU và BIU Khái niệm cấu trúc PEPELINE bắt đầu xuất hiện từ đây Đường ống dẫn ở 8086/88 được gọi là đường ống dẫn 2 cấp: Nhận lệnh, mã hoá

Trang 17

- Mật độ: 3,1 triệu búng bỏn dẫn, cụng nghệ 0,6 ỡm

- Chip 273 chõn đúng gúi kiểu PGA (Pin grid array)

- Cú tờn gọi Pentium thay cho cỏch gọi truyền thống 80586 vỡ lý do liờn quan đến đăng ký bản quyền

Một số đặc điểm nõng cao:

- Bus dữ liệu ngoài 64 bit Cỏc chõn dữ liệu: D0-D63

Pentium cú cỏc thanh ghi là 32 bit như 80386, 80486 Để truyền được gấp đụi dữ liệu, Pentium tổ chức 2 đơn vị thực hiện bờn trong CPU Pentium sử dụng 64 chõn ngoài từ D0-D63 để truy nhập cỏc băng nhớ ngoài cú độ rộng 64 bit Pentium cú cỏc chõn A31-A3 làm bus địa chỉ Và cũng như 80486, Pentium cũng cú chõn vào A20M (A20 Mask) để thực hiện HMA (high memory area - vựng nhớ cao)

Trong 80486 cú 4 chõn DP (Data Paryty), mỗi chõn dành cho 4 byte dữ liệu, thỡ ở Pentium cú 8 chõn DP để làm việc với 8 byte của cỏc chõn dữ liệu D0-D63

- Pentium cú toàn bộ 16 Kb cache trờn chip: 8 kb cho mó lệnh, 8 kb cho dữ liệu cũn ở 486 chỉ cỳ cache 8 kb dành cho cả hai

Hỡnh 1.2 Cấu trỳc bờn trong bộ vi xử lý Pentium Cache mó lệnh được bảo vệ chống ghi để ngăn ngừa cỏc sai sút trong quỏ trỡnh làm việc và cả 2 cache đều cho phộp khả năng truy nhập đồng thời Núi cỏch khỏc, cache dữ liệu trong CPU của Pentium cú thể đọc và ghi được cũn trong quỏ trỡnh thực hiện lệnh CPU cú thể chuyển mó lệnh từ bộ nhớ ngoài vào, cú thể đọc cache nhưng khụng ghi được

Cả hai cache mó lệnh và dữ liệu của CPU Pentium cú thể truy nhập được đồng thời

Code Cache Branch prediction

(Đơn vị dấu phẩy

động tỏ chức kiểu ống dẫn)

Multiply

Add

Devide Bus 64 bit Integer ALU

U pipe V pipe

Trang 18

- Đồng xử lý toán học của Pentium nhanh gấp nhiều lần (10 lần trở lên) so với

đồng xử lý toán học của 486 Bộ đồng xử lý toán học được coi là đơn vị dấu phẩy

động (FPU), còn đơn vị tương ứng để thực hiện với số nguyên được gọi là đơn vị số nguyên (IU) Phần FPU của Pentium sử dụng pepeline 8 tầng còn đơn vị IU sử dụng 5

tầng

- Một đặc điểm mới nữa của Pentium đó là khả năng dự đoán rẽ nhánh (Branch

prediction) tức là bộ vi xử lý có khả năng suy đoán và nhận trước mã lệnh khi có lệnh nhảy hoặc lệnh gọi chương trình con CALL Ví dụ ở 80486 đối với lệnh JNZ, khi thực hiện lệnh nhảy này thì trước hết nội dung đang có ở pepline cần phải được giải phóng

và sau đó được thay bằng nội dung mới liên quan tới lệnh nhảy này Quá trình này đòi hỏi mất một thời gian Ở 486 lệnh này thực hiện mất 3 nhịp đồng hồ Bộ vi xử lý Pentium có khả năng suy đoán và nhận trước các mã lệnh (của cả lệnh nhảy và lệnh ngay sau lệnh nhảy) và các lệnh này vẫn được thực hiện mà không phải đợi Để thực

hiện được quá trình này, Pentium sử dụng Bộ đệm dích rẽ nhánh BTB (Branch Target Buffer) Khả năng suy đoán rẽ nhánh đã làm giảm một phần tổng thời gian thực hiện

lệnh

Ví dụ:

So sánh tổng số nhịp đồng hồ khi thực hiện các lệnh sau ở 486 và Pentium

Trong ví dụ trên các thanh ghi là không phụ thuộc điều đó có nghĩa có thể nhóm đôi các lệnh để thực hiện đồng thời ở 2 đơn vị thực hiện trong Pentium Kết quả mỗi nhịp đồng hồ Pentium thực hiện được 2 lệnh

Lệnh JNZ ở 80486 thực hiện mất 3 nhịp đồng hồ song đối với Pentium thì chỉ cần

1 nhịp đồng hồ là đủ bởi vì CPU đã dự kến rẽ nhánh, nhận lệnh rẽ nhánh, còn các lệnh

ở nhãn AGAIN thì vẫn được thực hiện trong đường ống dẫn Không phụ thuộc vào trạng thái của JNZ, cả hai lệnh là lệnh sau JNZ và lệnh đầu tiên ở nhãn AGAIN vẫn được đưa tới 2 đường ống dẫn độc lập Nếu ZF=0 một đường ống xem như bỏ, còn

Trang 19

nếu ZF=1 (tức kết thúc lệnh nhảy) có nghĩa lệnh sau JNZ được thực hiện và quá trình suy đoán rẽ nhánh kết thúc

- Một đặc điểm quan trọng mà chỉ có Pentium mới có đó là cấu trúc Superscalar

(Cấu trúc siêu tỷ lệ) Đây là đặc điểm quan trọng mà chỉ từ Pentium mới có Chúng ta

sẽ đề cập sâu hơn nội dung này

Cấu trúc Superscalar của Pentium

Pentium có tổ chức 2 đơn vị thực hiện song song bên trong CPU Mỗi đơn vị thực hiện lại được tổ chức theo kiến trúc đường ống gồm nhiều tầng nên tăng được tốc độ

xử lý lên nhiều lần Như vậy khi Pentium thực hiện lệnh, tại mỗi thời điểm có 2 lệnh cùng chuyển đến 2 đơn vị thực hiện khác nhau Tuy nhiên việc thực hiện lệnh không phải tiến hành đơn giản như vậy mà trước hết cần nắm được một số khái niệm liên quan

- Sự độc lập dữ liệu (Data Independence)

Để các lệnh có thể được thực hiện đồng thời ở các đường ống đầu tiên các lệnh

cần phải là độc lập, có nghĩa là việc thực hiện lệnh này không phụ thuộc vào lệnh kia

Ví dụ: ADD EAX, EBX

NOT EAX

INC DI

MOV [DI], EBX

Ở đoạn trên, lệnh ADD và NOT không thể chuyển đến 2 đơn vị thực hiện được bởi vì ở lệnh sau EAX là kết quả của lệnh trước (hay các lệnh có dữ liệu phụ thuộc) Các lệnh trên có thể sắp xếp lại mà không ảnh hưởng tới kết quả thực hiện các lệnh:

Ví dụ: ADD EAX, EBX

INC DI

NOT EAX

MOV [DI], EBX

Nếu sắp xếp lại trình tự các lệnh như trên (ta được các lệnh độc lập), thì các lệnh mới có thể được thực hiện đồng thời tại các đơn vị thực hiện Tuy nhiên liên quan tới vấn đề này chúng ta có khái niệm thứ hai:

- Lập lại bảng lệnh (Instruction Scheduling)

Đó là việc sắp xếp lại trình tự các lệnh để chuyển từ các lệnh có dữ liệu phụ thuộc trở thành các lệnh có dữ liệu độc lập Quá trình này không làm thay đổi kết quả tính toán nhưng khi đó các lệnh có thể thực hiện được đồng thời tại các đường ống của CPU hay nói cách khác tận dụng được thế mạnh của CPU và do đó tăng được tốc độ tính toán

Hiện nay các bộ chương trình dịch được xây dựng để tạo lập bảng lệnh nhằm

Trang 20

loại trừ sự phụ thuộc của dữ liệu

- Tạo cặp lệnh (Instruction Pairing)

CPU thực tế có thể có nhiều hơn hai đường ống (Pentium Pro có 3 đường

ống-chúng ta gọi là siêu tỷ lệ cấp 3) Khi đó việc tạo các lệnh độc lập được gọi chung là lập bảng lệnh Khi CPU chỉ có 2 đường ống (Pentium chẳng hạn) thì khái niệm lập bảng lệnh sẽ được thay bằng khái niệm đơn giản hơn gọi là Tạo cặp lệnh (Instruction Pairing)

- Đường ống U và V của Pentium

Pentium có hai đơn vị thực hiện các số nguyên được gọi là pepeline "U" và pepeline "V" Mỗi pepeline có 5 tầng Pipe U có thể thực hiện bất cứ lệnh nào của họ 80x86 thì pipe V chỉ thực hiện các lệnh đơn giản như INC, DEC, ADD, SUB, MUL, DIV, NOT, AND, OR, EXOR và NEG Những lệnh đơn giản được thực hiện trong 1 nhịp đồng hồ khi các toán hạng là "REG, REG" hoặc " REG, IMM" và có thanh ghi không phụ thuộc

Ví dụ ở lệnh như "ADD EAX, EBX", "SUB ECX, 2000" và "MOV EDX, 1500" là những lệnh đơn giản đòi hỏi 1 nhịp đồng hồ, còn các lệnh "ADD DWORD PTR [EBX + EDI + 500], EAX" thì khác, sẽ cần 3 nhịp đồng hồ

Đề cập tới vấn đề tăng tốc độ hoạt động của bộ VXL, các nhà thiết kế quan tâm tới hai giải pháp:

Trước khi kết thúc phần giới thiệu về Petium, chúng ta làm quen với hai khái niệm là kiến trúc siêu đường ống và kiến trúc siêu tỷ lệ

- Superpepeline (Kiến trúc siêu đường ống dẫn) được thực hiện bằng cách tăng

số tầng trong từng pepeline: Có thể lên 8 hoặc thậm chí 10 tầng trong một đường ống dẫn Các nhà thiết kế đã không đi theo hướng này

- Superscalar (Kiến trúc siêu tỷ lệ): Tăng số pepeline lên Trong khi xây dựng

Pentium, các nhà thiết kế đã chọn giải pháp Superscalar, chứ không đi theo giải pháp Superpepeline Sở dĩ thực hiện được điều này là nhờ có những thành quả vượt bậc của công nghệ vi điện tử đã tăng được một số lượng rất lớn bóng bán dẫn trong 1 chip vi mạch có độ tích hợp cực cao

a Bộ vi xử lý PENTIUM I

Bộ Vi xử lý Pentium II của Intel thực chất là sự tích hợp của 3 công nghệ mới Mỗi công nghệ lại được gắn liền với một thế hệ bộ vi xử lý tương ứng, đó là: Pentium MMX, Pentium Pro và Pentium II với công nghệ DIB Vì vậy để nghiên cứu Pentium

II tốt nhất chúng ta sẽ tìm hiểu các bộ vi xử lý với các công nghệ đó

- Pentium Pro

Được Intel sản xuất vào tháng 11 năm 1995 Pentium Pro có 5,5 triệu transistor và

Trang 21

được sử dụng chủ yếu để xây dựng các máy chủ và máy trạm làm việc Pentium Pro có cấu trúc siêu tỷ lệ 3 đường ống (Tree_way SuperScalar), mỗi đường ống có 12 tầng (stages)

Nét đặc trưng quan trọng nhất của bộ vi xử lý Pentium Pro đó là phương thức

Thi hành động các lệnh (hay thực thi động - Dynamic Execution) Thi hành động

của Pentium Pro là sự tổng hợp của 3 kỹ thuật xử lý được thiết kế nhằm tăng hiệu suất của bộ vi xử lý Ba kỹ thuật đó là:

+Dự đoán rẽ nhánh nhiều tầng (Multiple Branch Prediction)

Phương pháp này cho phép bộ vi xử lý giải mả cả các lệnh phía sau rẽ nhánh Về nguyên tắc, bộ vi xử lý nhận lệnh tiếp theo trước khi kết thúc lệnh trước đó Đối với lệnh hiện tại là một lệnh rẽ nhánh thì việc nạp lệnh tiếp theo vào CPU có thể không phải là lời giải tối ưu Dự đoán rẽ nhánh là kỹ thuật nhằm đưa ra một địa chỉ hợp lý cho lệnh kế tiếp dựa trên cơ sở của việc thực hiện lệnh hiện tại Thông thường người ta

sử dụng một dạng bộ nhớ thích ứng cho mục đích này, gọi là "bộ đệm đích cho rẽ

nhánh" hay BTB (Branch Target Buffer)

Sử dụng thuật toán dự đoán đa rẽ nhánh, bộ vi xử lý có thể dự liệu trước các lệnh nhảy Điều này là thực hiện được bởi vì bộ vi xử lý trong khi nhận lệnh, thì đồng thời cũng xem xét luôn các lệnh kế tiếp Khả năng dự đoán rẽ nhánh giúp CPU tránh được các qui trình thực hiện khi gặp lệnh nhảy thông thường (đẩy địa chỉ của lệnh kế tiếp vào ngăn xếp và nạp địa chỉ của lệnh nhảy tới), mà cả địa chỉ của lệnh kế tiếp lẫn lệnh nhảy tới đã được sắp xếp để đều được có sẵn trên các đường ống của CPU (đường ống luôn luôn đầy) Chính nhờ vậy đã tăng tốc độ thực hiện của CPU khi gặp các lệnh rẽ nhánh

+ Phân tích dòng dữ liệu (Data Flow Analysis)

Khi phân tích dòng dữ liệu, bộ vi xử lý xem xét các lệnh và xác định khả năng thực hiện được các lệnh hay không hay đó là các lệnh phụ thuộc Bộ vi xử lý sau đó

xác định một trình tự tối ưu hay nói cách khác là lập lại bảng lệnh để có các cặp lệnh

độc lập có thể xử lý song song ở hai đường ống dẫn của CPU và như vậy thi hành được các lệnh theo phương pháp hiệu quả nhất

+ Thực hiện lệnh có đầu cơ (Speculative Execution)

Đây là một khả năng làm tăng tốc độ thực hiện lệnh của bộ vi xử lý Pentium Pro dựa trên một cơ chế cho phép một số lệnh được thực hiện trước cả con trỏ lệnh (theo trình tự sớm hơn bình thường) mà kết quả thực hiện các lệnh này sẽ cần cho về sau Kết quả tính toán của các lệnh được tính trước này (hay còn gọi là được suy đoán trước) sẽ được lưu dưới dạng "kết quả suy đoán" Khi trạng thái cuối cùng được xác lập, các lệnh được trả lại đúng trình tự ban đầu của nó

Trang 22

- Pentium công nghệ MMX

Bộ vi xử lý Pentium công nghệ MMX được xuất xưởng đầu tiên vào tháng

1.1997 MMX được viết tắt từ chữ Multimedia eXtension, tức là bộ vi xử lý mở rộng

cho các ứng dụng đa phương tiện Theo đánh giá của hãng Intel, đây là một trong những công nghệ có ý nghĩa nhất trong kiến trúc vi xử lý của hãng Intel trong vòng 10 năm trở lại đây, bởi vì với công nghệ này đã đem lại một sắc thái mới và một khả năng mới trong các ứng dụng và xử lý dữ liệu phức tạp

Bộ vi xử lý Pentium với công nghệ MMX có 3 nét đặc trưng chính sau đây:

+ Sử dụng kỹ thuật mới nhất có tên gọi là Kỹ thuật lệnh đơn xử lý cho đa dữ liệu

SIMD (Single Instruction, Multiple Data Technique) Kỹ thuật này làm tăng tốc độ tính toán và xử lý dữ liệu của từng lệnh đơn lên rất nhiều

+ Bản chất của kỹ thuật SIMD là cho phép với cùng một lệnh nhưng thực hiện

được đồng thời cho nhiều kiểu dữ liệu dưới dạng xử lý song song

+ Công nghệ MMX hỗ trợ các thuật toán xử lý song song dữ liệu dạng byte, từ,

từ kép và từ bốn Cùng với kiến trúc siêu tỷ lệ (superscalar) của Intel, công nghệ này càng làm tăng sức mạnh của Pentium MMX lên rất nhiều

+ Kỹ thuật SIMD cho phép giảm được đáng kể số các lệnh khi thực hiện vòng lặp chung cho các dữ liệu video, audio, graphic và hoạt hình Thực tế ứng dụng cho thấy thời gian dành cho tính toán các vòng lặp thường rất lớn trong các chương trình ứng dụng Bởi vậy với kỹ thuật SIMD có khả năng tăng tốc độ xử lý dữ liệu lên đáng

Sở dĩ công nghệ MMX có được những khả năng đó là do được bổ sung thêm về cả

Trang 23

tổ chức phần cứng lẫn phần mềm

- Về phần mềm: Đối với công nghệ MMX có một nét đặc trưng đáng lưu ý, đó là

bổ sung thêm 57 lệnh mới và rất mạnh chuyên cho thao tác và xử lý các dữ liệu video, audio, đồ hoạ và hoạt hình (tức xử lý Multimedia)

- Về phần cứng: Bộ vi xử lý Pentium MMX bổ sung thêm 8 thanh ghi 64 bit và

có 4 kiểu dữ liệu mới

Dữ liệu chính của tập lệnh MMX là dạng gói số nguyên với dấu phẩy tĩnh, trong

đó các số nguyên dưới dạng từ được nhóm thành các lượng 64 bit Các lượng 64 bit này được chuyển tới các thanh ghi 64 bit của bộ vi xử lý MMX

Bốn dạng dữ liệu của công nghệ MMX bao gồm:

+ Byte nén (Packed byte): Tám byte được gói thành một lượng 64-bit

+ Từ nén (Packed Word): Bốn từ 16-bit được nén thành một lượng 64-bit

+ Từ kép nén (Packed DoubleWord): Hai từ kép 32 bit được nén thành một lượng 64 bit

+ Từ bốn nén (Packed QuaterWord): Hai từ kép 32 bit được nén thành một lượng

64 bit

Ví dụ, dữ liệu điểm pixel của đồ hoạ nói chung được biểu diễn bởi các số nguyên

8 bit hoặc là byte Với công nghệ MMX, cứ 8 điểm pixel được gói cùng nhau thành một lượng 64 bit và được chuyển vào thanh ghi của bộ vi xử lý MMX Khi một lệnh MMX được thực hiện thì cả 8 điểm pixel sẽ được thực hiện cùng một lúc với thanh ghi

và do đó các phép toán số học hoặc logic của cả 8 phần tử điểm sẽ được thực hiện song song

- Cache: Trong Pentium MMX có cache tăng gấp đôi là 32 Kb và do đó giảm

được đáng kể số lần mà bộ vi xử lý phải truy nhập dữ liệu ở RAM - là vùng nhớ đòi hỏi thời gian truy nhập lâu hơn nhiều

b Pentium II

Pentium II là bộ vi xử lý vào loại tiên tiến nhất của hãng Intel, được sản xuất vào tháng 5 năm 1997

Bộ vi xử lý Pentium II là sự kết hợp 3 kỹ thuật mới nhất:

- Thi hành động các lệnh (Dynamic Execution) của Pentium Pro

- Công nghệ MMX của Pentium MMX

- Kiến trúc Bus độc lập kép DIP (Dual Independent Bus Architecture)

Cơ chế thi hành động các lệnh và công nghệ MMX đã được đề cập khi nghiên cứu Pentium Pro và Pentium MMX

Riêng kiến trúc Bus độc lập kép DIP là một điểm đặc sắc của Pentium II

Ban đầu kiến trúc Bus độc lập kép được áp dụng cho Pentium Pro và sau đó được

Trang 24

hoàn thiện, nâng cao và áp dụng rộng rãi cho các Penium II Đây là một giải pháp công nghệ tiên tiến mà Intel đã phát triển để giải quyết những hạn chế về độ rộng dải của bus

Tần số làm việc của Pentium II là 400 Mhz

DRAM AGP PCI

Hình 1.4 Cấu trúc BUS của Pentium II và Pentium Hai đường bus của kiến trúc Bus độc lập kép là: bus cache L2 và bus từ bộ vi xử

lý tới bộ nhớ chính, vẫn được gọi là bus hệ thống (hình 1.4) Trong đó bus cache L2 có tần số làm việc tỷ lệ với tần số của bộ vi xử lý và thường nhiều lần nhanh hơn so với bus hệ thống Ví dụ: với Pentium II - 266 Mhz, bus cache L2 có tần số làm việc ở 133 Mhz, hai lần nhanh hơn so với bus hệ thống, với Pentium II - 400 Mhz thì ba lần nhanh hơn Các bộ vi xử lý trong tương lai khi tần số làm việc được tăng lên thì tần số làm việc của bus cache L2 cũng tăng lên theo Điểm đáng lưu ý nữa đó là hai bus này hoạt động độc lập với nhau và bộ vi xử lý có thể truy nhập song song và đồng thời dữ liệu ở cả hai bus chứ không thực hiện theo phương pháp tuần tự như ở các hệ với cấu trúc bus đơn tuyến Ngoài ra kiến trúc DIB hỗ trợ cho công nghệ bus hệ thống tốc độ cao hiện nay là bus 133 Mhz Cũng nhờ vậy độ rộng dải của bus tăng lên được nhiều

lần Với cấu trúc này Pentium II đã khắc phục được hiện tượng thắt cổ chai thường

vấp phải ở Pentium

- Pentium II bổ sung cổng tăng tốc đồ hoạ AGP - Accelerated Graphics Port Với sự

hỗ trợ của cấu trúc phần cứng này ở các máy tính thế hệ sau đã sử dụng thẻ điều hợp hiển thị cực nhanh AGP Vi xử lý của thẻ điều hợp truy nhập trực tiếp bộ nhớ hệ thống thông qua giao diện AGP

- Pentium II có cơ chế kiểm tra và sửa lỗi ECC (Error Correcting and Checking) trên

CPU

BUS1

Card CPU

CPU Cache

L2

Trang 25

các bus: cache L2, hệ thống và bus bộ nhớ

Bảng 1.1 nêu tóm tắt một số so sánh giữa Pentium II và Pentium

Bảng 1.1 So sánh tính năng của Pentium và Pentium II

 Một Bus chung cho DRAM, PCI,

Cache L2

- Cache L2 tranh chấp bus với CPU

Do dữ liệu lớn nên thường xảy ra hiện

- Một Bus dành riêng cho cache L2

- Tần số làm việc cache L2 tỷ lệ với tần số làm việc của CPU

- Một Bus CPU truyền đa tuyến cho DRAM+PCI + AGP, có nghĩa các thiết bị ngoại vi trao đổi dữ liệu với CPU được đồng thời

 Cache L1: 16 Kb (8kb+8kb)

 Cache L2 bố trí trên board mẹ

 Cache L1: 32 Kb (16 Kb+16 Kb)

 Cache L2: 512 Kb bố trí trên board CPU

 Chưa thiết kế cho hệ thống kép CPU  Hỗ trợ sử dụng hệ thống CPU kép cho các

ứng dụng đa nhiệm

c Celeron

Pentium II là bộ vi xử lý thuộc nhóm mạnh nhất của Intel hiện nay Bộ vi xử lý này có thể được sử dụng để xây dựng các máy tính với các tính năng rất mạnh như các máy tính chủ hoặc các máy trạm làm việc trong các mạng máy tính Giá thành còn cao cho những ứng dụng thông thường

Một số đông người dùng gia đình và doanh nghiệp có nhu cầu về một bộ vi xử lý

đủ mạnh, phục vụ tốt cho xử lý đồ hoạ, truy nhập internet, thực hiện đa phương tiện song giá thành ở mức có thể chấp nhận được Chính bộ vi xử lý Celeron, một sản phẩm mới của Intel trong năm 1998 đã đáp ứng được nhu cầu của lớp người dùng đông đảo này

Bộ vi xử lý Celeron có các đặc điểm chính sau đây:

- Bộ vi xử lý Intel Celeron có tổ chức kiểu vi kiến trúc (microarchitecture) của bộ

vi xử lý P6 (về mặt này cũng giống với Pentium PII) Vi kiến trúc P6 áp dụng các kỹ thuật mới sau đây:

+ Dự đoán đa rẽ nhánh

+ Phân tích dòng dữ liệu

+ Thực hiện lệnh có suy đoán

Trang 26

66 Mhz or 66 Mhz, effective 133 Mhz 100 or 133 Mhz

1/2 Core Mhz

Cache L2

Processor Core

Hình 1.5 Tổ chức bus trong hệ thống máy tính với bộ vi xử lý Peniutm II

Các kỹ thuật tiên tiến này chúng ta đã có dịp tìm hiểu khi nghiên cứu Pentium II

- Celeron có áp dụng công nghệ MMX (như trình bày ở trên)

- Tần số làm việc của Celeron hiện nay là 333 Mhz, 300A Mhz, 300 Mhz và 266 Mhz

- Bộ vi xử lý Celeron thế hệ sau có 15,5 triệu transistor và được xây dựng dựa trên công nghệ CMOS 0,25 micron Nhờ áp dụng công nghệ tiên tiến này nên tăng được tần số làm việc và giảm công suất tiêu thụ của CPU (xem chương 18)

- Bus hệ thống của mọi Intel Celeron là 66 Mhz

- Cache L1 có 32 Kb và được phân thành 16Kb cache cho dữ liệu và 16K cho lệnh) cho phép truy nhập nhanh dữ liệu

- Celeron 266 và 300 Mhz không có cache L2 Các bộ vi xử lý Celeron sau này như Celeron 333 Mhz và 300A Mhz có bổ sung thêm cache L2 là 128 Kb

- Đóng vỏ SEPP (single edge processor package) tương tự như đóng vỏ SEC (single edge contact) của Pentium II và duy trì khả năng tương thích với Slot 1

- Đơn vị dấu phẩy động hỗ trợ cho các thao tác 32 bit, 64 bit và 80 bit

Qúi 4 năm 1998 Intel có xuất xưởng Celeron đóng vỏ PPGA (Plastic Pin Grid Array-gần giống với đóng vỏ của Pentium) với 370 chân

Bộ vi xử lý Celeron được sử dụng chủ yếu ở các máy tính để bàn phục vụ cho

Trang 27

đối tượng người dùng gia đình và các doanh nghiệp

Theo nhận định của hãng Intel, năm 1999 và những năm tới sẽ là giai đoạn bùng

nổ của Internet Với định hướng chiến lược đó, Intel đã nghiên cứu và sản xuất bộ vi

xử lý tân tiến với mục đính chính là phục vụ cho khai thác mạng Internet, đó là bộ vi

xử lý Pentium III

Bộ vi xử lý Pentium III được Intel cho xuất xưởng vào ngày 26 tháng 2 năm 1999 Đây là bộ vi xử lý tích hợp những công nghệ tiên tiến nhất của các bộ vi xử lý trước đây, ngoài ra còn bổ sung thêm một số tính năng mạnh để phục vụ cho sử dụng Internet

Một số đặc trƣng chính của bộ vi xử lý Pentium III nhƣ sau:

- Giữ nguyên các công nghệ tiên tiến của bộ vi xử Intel Pentium II bao gồm: + Thi hành động các lệnh (Dynamic Execution) của Pentium Pro

+ Công nghệ MMX của Intel Pentium MMX

+ Kiến trúc Bus độc lập kép DIB (Dual Independent Bus Architecture - DIP)

Về các công nghệ này của Intel chúng ta đã có dịp đề cập đến ở phần trước khi nghiên cứu các bộ vi xử lý trước của Intel

- Bổ sung công nghệ mở rộng lệnh đơn cho đa dữ liệu phân luồng (Streaming

Single Instruction Multiple Data extensions- gọi gọn hơn là mở rộng SIMD phân

luồng) - một trong hai tính năng rất mạnh cho Internet của Pentium II

Công nghệ SIMD chúng ta đã tìm hiểu ở Pentium MMX Đối với Pentium II có thêm hai bổ sung cho công nghệ SIM đó là SIM mở rộng và phân luồng Chúng ta sẽ

lần lượt tìm hiểu thêm về 2 bổ sung mới này

+ Nội dung thứ nhất là khái niệm Mở rộng SIM Khái niệm này liên quan đến

phát triển phần cứng và phần mềm:

Về phần mềm: Pentium III có bổ sung thêm 70 lệnh SIMD mới nữa, trong đó

khoảng 50 lệnh mới là cho thực hiện trên dấu phẩy động

Về phần cứng: Pentium III bổ sung thêm 8 thanh ghi mới (độ rộng 128 bit)

cho phép thực hiện song song các toán hạng là dữ liệu dấu phẩy động Như vậy ở

Pentium III có thêm khái niệm SIM cho dấu phẩy động SIMD-FP Sử dụng SIMD với

Trang 28

dấu phẩy động cho phép đạt độ chính xác cao hơn và nhờ vậy đồ hoạ 3D trung thực hơn, khả năng xử lý ảnh, xử lý âm thanh, nhận dạng tiếng nói, mã hoá và giải mã tín hiệu video hiệu quả hơn

+ Nội dung thứ hai là Phân luồng bộ nhớ (Memory Streaming) là nét đặc

trưng của Pentium III, thông thường, khi CPU cần đến dữ liệu thì dữ liệu được tải vào

cả hai cache L2 và L1 Các lệnh phân luồng bộ nhớ của Pentium III cung cấp thêm một chọn lựa là có thể xử lý dữ liệu mà không cần tải vào cache Phần mềm phát triển đảm nhiệm công việc này Khi phần mềm xác định được dữ liệu chỉ cần sử dụng một lần cho một số phép tính, lúc đó dữ liệu có thể tuỳ chọn là không tải vào cả hai cache hoặc một trong cache Điều đó cho phép phần mềm sử dụng trực tiếp bộ nhớ mà không cần qua cache nữa Nhờ vậy độ rộng băng thông hiệu dụng tăng từ 640 Mb/s lên 790 Mb/s

- Tính năng thứ hai được bổ sung đó là khái niệm số hiệu bộ vi xử lý (Intel

Processor Serial Number)

Số hiệu bộ vi xử lý lần đầu tiên được áp dụng cho Pentium III Mục đích của việc

bổ sung này là nhằm làm tăng độ bảo mật hệ máy tính khi truy nhập Internet Như vậy

bên cạnh tên người dùng (User Name), mật khẩu (Password) khi vào Internet thì số hiệu bộ vi xử lý ((Intel Processor Serial Number) làm tăng độ mật hệ máy tính lên rất

nhiều

Số hiệu bộ vi xử lý là số hiệu điện tử được gắn vào chip bộ vi xử lý trong quá trình sản xuất bộ vi xử lý Pentium III Số hiệu bộ vi xử lý chủ yếu để làm chỉ số phân biệt bộ vi xử lý, và liên quan tới bộ vi xử lý là hệ máy tính Số hiệu bộ vi xử lý cũng tương tự như mọi số hiệu thiết bị điện tử khác, trừ một điểm, đó là số hiệu điện tử chứ không phải số gắn ở nhãn để ngoài sản phẩm Đây là số hiệu được ghi trên tinh thể silicon trong quá trình sản xuất

Nói chung, người dùng sẽ cần đọc số hiệu bộ vi xử lý trên trang Web Để đọc số hiệu này, trang Web lại cần chạy một chương trình trên hệ máy tính của bạn Số hiệu

bộ vi xử lý không thể truyền hoặc phát đi trên Internet

Ngoài ra, bộ vi xử lý Pentium III có một số thông số kỹ thuật nâng cao như sau: Bus hệ thống 100 Mhz, 133 Mhz

Cache L2: 512 Kb, có sử dụng giao thức kiểm tra và sửa lỗi ECC (Error Checking and Correction ) Giao thức ECC cung cấp khả năng rất mạnh trong phát hiện lỗi và sửa lỗi khi thao tác dữ liệu và nhờ vậy bảo đảm khả năng bảo toàn dữ liệu ở mức cao và khả năng xử lý dữ liệu với độ tin cậy cao

+ Bộ vi xử lý Pentium III được lắp vào board mạch dưới dạng cartrige với hàng chân cắm đơn kiểu SECC2 (Single-Edge Contact Cartridge 2) Board mạch này

Trang 29

giao tiếp với board mạch chủ qua khe cắm có 242 chân tiếp xúc

+ Cuối cùng Pentium III hiện nay có tần số làm việc 450 -500 Mhz ta có thể tham khảo thêm bảng 1.2, trong đó Intel dự kiến kế hoạch nâng tần số làm việc của Pentium II và Pentium III trong năm 1999 Theo kế hoạch này, quý 2 năm 1999 Intel

dự kiến xuất xưởng Pentium III 550 Mhz và đến cuối năm 1999 là các bộ vi xử lý Pentium III 667 Mhz/133 Mhz board mạch chủ và công nghệ 0.18 m) Bảng 15-3 còn giới thiệu sử dụng các board mạch cho các bộ vi xử lý này

Bảng 1.2 So sánh một số dặc tính chính của Pentium III với các bộ vi xử lý của Intel

Bảng 1.2 So sánh một số đặc tính chính các bộ vi xử lý của Intel Đặc tính kỹ thuật Pentium Celeron Pentium

II

Pentium III

9 Tốc độ 500 Mhz trở lên không không không 

10 Phân luồng dữ liệu bộ nhớ không không không 

11 SIMD cho dấu phẩy động không không không 

12 Số hiệu bộ vi xử lý không không không 

Bộ vi xử lý Pentium III Xeon

Bộ vi xử lý Xeon (bao gồm Xeon Pentium II và Xeon Pentium III) được Intel sản xuất với mục đích chính là phục vụ nhu cầu cho các máy tính chủ và máy trạm Bộ vi

xử lý Xeon Pentium II được xây dựng trên cơ sở của Pentium II và Xeon Pentium III dựa trên cơ sở của Pentium III với bổ sung một số tính năng theo yêu cầu của máy chủ

và máy trạm đó là khả năng thực hiện mạnh, khả năng dễ quản lý và độ tin cậy

Bộ vi xử lý Xeon Pentium III được Intel xuất xưởng vào trung tuần tháng 3 năm

1999

Một số tham số chính của Xeon Pentium III như sau:

- Cache L2 lớn và có tốc độ truy xuất dữ liệu rất lớn Xeon có 3 mức cache là

Trang 30

512K, 1 M và 2 Mb nhằm bảo đảm khả năng lưu và trao đổi dữ liệu với nhân của bộ vi

xử lý với tốc độ siêu cao

- Có cơ chế bảo vệ khi nhiệt độ CPU tăng, cơ chế phát hiện và sửa lỗi, kiểm tra

- Pentium 4 có 42 triệu transystor/chip

- Tần số làm việc của những phiên bản đầu tiên là 1,4 GHz

- Sử dụng công nghệ 0,18 nm

- Rất mạnh cho các tác vụ Internet và Multimedia

Các đặc tính nâng cao

Đặc điểm nổi bật nhất của Pentium 4 đó là áp dụng công nghệ mới được gọi là Vi

kiến trúc NetBurst (Bùng nổ mạng) Công nghệ này bao gồm một loạt các công nghệ

như Công nghệ siêu đương ống, Bus hệ thống 400 Mhz, Cache theo dõi việc thực hiện lệnh, Động cơ thi hành nhanh và một loạt các bổ sung quan trọng khác Sau đây chúng

ta sẽ đề cập chi tiết hơn

- Công nghệ Siêu đường ống (Hyper Pipeline)

Pentium 4 có cấu trúc đường ống với độ sâu (Pipeline Depth) là 20 tầng Như vậy là Pentium 4 đã nhân đôi dộ sâu đường ống của Pentium III (cần nêu lại là Pentium III có độ sâu đường ống là 10 tầng) Ở các đường ống đều có áp dụng phương thức dự đoán rẽ nhánh Với cấu trúc đường ống như vậy đã làm tăng rất đáng kể khả năng xử lý dữ liệu, tần số làm việc của đường ống và do đó làm tăng tốc độ của CPU

- Động cơ thi hành nhanh REE (Rapid Execution Engine)

Hai đơn vị số học và logic của Pentium 4 có tần số làm việc tăng gấp đôi so với

tần số làm việc của nhân CPU Với cách tổ chức này, các lệnh số nguyên cơ bản như lệnh ADD, SUB, AND, OR thực hiện chỉ trong nửa nhịp đồng hồ Ví dụ: với Pentium 4 - 1,5 GHz thì REE làm việc ở tần số 3 Ghz

- BUS hệ thống 400 MHz

Với BUS hệ thống 400 MHz, Pentium 4 cho phép trao đổi dữ liệu Vào/Ra hệ thống là 3,2 GB/s Để dễ so sánh ở Pentium III với BUS hệ thống 133 MHz khả năng truyền dữ liệu là 1,06 GB/s

Trang 31

- Cache dõi theo sự thi hành mức 1 (Cache L1 Execution Trace Cache)

Bổ sung thêm cache dõi theo sự thi hành mức 1 Cache này lưu các vi lệnh đã được giải mã theo thứ tự thực hiện chương trình Nhờ vậy mà trong các vòng lặp không cần phải thực hiện việc giải mã nữa và việc sử dụng không gian nhớ của cache càng có hiệu quả hơn Kết quả là đơn vị thực hiện có khả năng thực hiện được nhiều lệnh hơn trong một dơn vị thời gian và làm giảm được thời gian nạp lại các lệnh do quá trình rẽ nhánh

- Cache chuyển dữ liệu mức 2 cải tiến 256 KB (Level 2 Advanced Transfer Cache - ATC)

Cache chuyển dữ liệu mức 2 cải tiến ATC có kích thước 256 KB và thực hiện trao đổi dữ liệu với nhân CPU với độ rộng 256 bit (32 byte) Do vậy Pentium 4 - 1,5 GHz có thể trao đổi dữ liệu với tốc độ nhanh hơn hẳn là 48 GB/s (so với Pentium III -

1 GHz là 16 GB/s)

- Thi hành động cải tiến (Advanced Dynamic Execution)

- Pentium 4 có khả năng xem xét trước 126 lệnh, tải về 48 lệnh và nạp vào mỗi đường ống 24 lệnh

- Bộ đệm đích rẽ nhánh BTB có kích thước 4 KB có thể thực hiện được những thuật toán dự đoán rẽ nhánh phức tạp

- Mở rộng SIMD phân luồng 2 (Streaming SIMD Extensions 2 -SSE2)

Bổ sung 114 lệnh mới trong đó bao gồm các phép toán SIMD 128 bit cho các số nguyên và SIMD 128 bit cho số dấu phẩy động chính xác kép Các bổ sung này làm giảm đáng kể số các lệnh cần thiết khi thực hiện một chương trình cũng như thời gian tính toán cho các kiểu dữ liệu Chính nhờ vậy mà tăng được đáng kể tốc độ thực hiện cho các ứng dụng như Video, xử lý tiếng nói, xử lý hình ảnh, các bài toán tài chính kế toán hay các ứng dụng khoa học

- Bổ sung đơn vị Multimedia Unit và Enhanced Floating Point Unit

Pentium 4 mở rộng các thanh ghi dấu phẩy động lên 128 bit và bổ sung thêm thanh ghi chuyên cho các dữ liệu dạng multimedia

1.1.3 Bộ vi xử lý dòng core i

Kiến trúc Core i có các cải tiến quan trọng như: Wide Dynamic Execution (khả năng mở rộng thực thi động)

Tính quản lý điện năng thông minh (Intelligent Power Capability)

Chia sẻ bộ nhớ đệm linh hoạt (Advanced Smart Cache): hai nhân shared cache L2, tăng dung lượng cache cho từng Core

Sử dụng các kiến trúc tiên tiến bao gồm: Nehalem, Bloomfield, Lynnfield, Clarkfield

Trang 32

a Công nghệ của CPU

- Hyper Threading Technology (HTT): là công nghệ siêu phân luồng cho phép

giả lập thêm CPU luận lý trong cùng một CPU vật lý, giúp CPU có thể xử lý được nhiều thông tin hơn

Hình 1.6 Mô tả xử lý HTT

- Multi Core (đa nhân): Công nghệ chế tạo CPU có hai hay nhiều nhân, xử lý

vật lý hoạt động song song với nhau, mỗi nhân đảm nhận những công việc riêng biệt nhau

Hình 1.7 Mô tả xử lý Multi Core

- Intel® Turbo Boost: Là công nghệ nâng hiệu suất máy tính lên thêm 20%, giúp

hệ thống hoạt động nhanh hơn và kéo dài thời lượng pin, bằng cách tự động điều chỉnh xung nhịp của từng nhân độc lập cho phù hợp với nhu cầu xử lý

Hình 1.8 Mô hình Turbo boost

b Đặc trƣng của Core i3, i5, i7:

- Core i3: Được intel cho ra đời theo từng bộ vi xử lý (BVXL) ứng với chủng

loại của máy tính và theo từng kiến trung khác nhau Sau đây là những kiến trúc cơ bản

+ Đối với máy tính PC: Sử dụng kiến trúc Clarkdale - nền tảng 32 nm Dựa

trên Westmere Tất cả các tập lệnh hỗ trợ: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,

Trang 33

SSE4.2, Enhanced Intel SpeedStep Technology (EIST), Intel 64, XD bit (một bit NX thực hiện), Intel VT-x, Hyper-Threading, Smart Cache

FSB đã được thay thế với DMI

+ Đối với Laptop: Sử dụng kiến trúc Arrandale - điện áp thấp - nền tảng 32

nm.Dựa trên Westmere Tất cả các tập lệnh hỗ trợ: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, Enhanced Intel SpeedStep Technology (EIST), Intel 64, XD bit (một bit NX thực hiện), TXT, Intel VT, Hyper-Threading, Smart Cache

FSB đã được thay thế với DMI

- Core i5:

+ Đối với máy tính PC: Sử dụng kiến trúc Clarkdale - nền tảng 32 nm Tất cả

các tập lệnh hỗ trợ: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, Enhanced Intel SpeedStep Technology (EIST), Intel 64, XD bit (một bit NX thực hiện), TXT, Intel VT-x, Intel VT-d, Hyper-Threading, Turbo Boost, Smart Cache và AES-NI

i5-661 không hỗ trợ Intel VT-d.FSB đã được thay thế với DMI Kiến trúc Lynnfield - nền tảng 45 nm Tất cả các tập lệnh hỗ trợ: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, Enhanced Intel.SpeedStep Technology (EIST), Intel 64, XD bit (một bit NX thực hiện), Intel VT-x, Turbo Boost, Smart Cache Hyper-Threading bị vô hiệu hóa

+ Đối với Laptop: Sử dụng kiến trúc Arrandale - điện áp thấp - nền tảng 32

nm Dựa trên Westmere Tất cả các tập lệnh hỗ trợ: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, Enhanced Intel SpeedStep Technology (EIST), Intel 64, XD bit (một bit NX thực hiện), TXT, Intel VT, Hyper-Threading, Turbo Boost, Smart Cache FSB

đã được thay thế với DMI

- Core i7:

+ Đối với máy tính PC: Sử dụng kiến trúc Lynnfield - nền tảng 45 nm Dựa

trên Nehalem Tất cả các tập lệnh hỗ trợ: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, Enhanced Intel SpeedStep Technology (EIST), Intel 64, XD bit (một bit NX thực hiện), TXT, Intel VT, Intel VT-d, Hyper-Threading, Turbo Boost, Smart Cache

- Sử dụng kiến trúc Bloomfield - nền tảng 45 nm Tất cả các tập lệnh hỗ trợ: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, Enhanced Intel SpeedStep Technology (EIST), Intel 64, XD bit (một bit NX thực hiện), TXT, Intel VT, Hyper-Threading, Turbo Boost, Smart Cache

Trang 34

+ Đối với laptop: Sử dụng kiến trúc Arrandale - điện áp thấp - nền tảng 32

nm Dựa trên Westmere Tất cả các tập lệnh hỗ trợ: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, Enhanced Intel SpeedStep Technology (EIST), Intel 64, XD bit (một bit NX thực hiện), TXT, Intel VT, Hyper-Threading, Turbo Boost, Smart Cache FSB được thay thế bằng DMI Kiến trúc Clarksfield - nền tảng 45 nm Dựa trên Nehalem Tất cả các tập lệnh hỗ trợ: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, Enhanced Intel SpeedStep Technology (EIST), Intel 64, XD bit (một bit NX thực hiện), TXT, Intel VT, Hyper-Threading, Turbo Boost, Smart Cache

c So sánh đặc trƣng của Intel CPU Core i3, i5, i7:

Khả năng xử lý thông minh

rõ ràng bắt đầu tại đây:

Xử lý đa nhiệm thông minh

Tự động gia tăng tốc độ khi bạn cần bằng Công Nghệ Intel® Turbo Boost 2.0

Xử lý đa nhiệm thông minh Intel® Hyper-Threading Các tính năng đồ họa tuyệt vời tích hợp sẵn

Khả năng xử lý thông minh

Xử lý đa nhiệm thông minh nhờ Công Nghệ Intel® Hyper-Threading

Các tính năng đồ họa tuyệt vời tích hợp sẵn

d Một số ứng dụng của dòng sản phẩm Core I:

- Core i3 được ứng dụng trong những máy tính cá nhân sử dụng đồ họa, xử lý

công việc thông dụng và hỗ trợ trên công nghệ windows 64 bit với những chương trình

đồ họa: photoshop CS4, Corel X4, Plash FX … loại này phù hợp cho những người dùng phổ thông: học sinh, sinh viên, nhân viên văn phòng

- Core i5 thì được dùng nhiều hơn khi máy tính cần phải xử lý công việc nhiều

và hiệu quả hơn về thiết kế đồ họa và trong việc xây dựng lên hệ thống ảo hóa phục vụ công việc nghiên cứu và học tập nâng cao dùng cho những người dùng tầm trung: học sinh, sinh viên học chuyên ngành công nghệ thông tin, nhân viên văn phòng cao cấp cần xử lý nhiều công việc và đồ họa cao cấp

Trang 35

- Core i7 với kiến trúc 4 nhân 8 luồng dữ liệu nên thường được dùng vào trong

các công việc đồ họa dưới giao diện 64 bit cần độ xử lý tốc độ cực nhanh: thiết kế hình

vẽ 3D, 4D dựng phim 4D….xây dựng hệ thống ảo hóa với quy mô lớn phục vụ công việc nghiên cứu công nghệ Dùng cho người dùng cao cấp, người dùng chuyên nghiệp: chuyên thiết kế đồ họa, chế bản âm thanh hình ảnh, sản xuất phim ảnh, sinh viên học chuyên ngành đồ họa máy tính, chế bản phim hoạt hình…

1.2 Đặc điểm chung của các bộ vi xử lý tiên tiến

Các bộ vi xử lý tiên tiến được sản xuất từ những năm 1990 trở lại đây và do nhiều hãng sản xuất hàng đầu thế giới chế tạo như Intel, IBM…

1.2.1 Sơ đồ cấu trúc chung

Sơ đồ sau chỉ là sơ đồ cấu trúc chung mà không thể hiện bất kỳ một bộ vi xử lý cụ thể nào mà nó chứa đựng các đặc điểm của đa số các bộ vi xử lý hiện nay Đa số các

bộ vi xử lý đều từ 32 bit trở lên bao gồm cả Bus dữ liệu và Bus địa chỉ

BIU

( Đơn vị giao tiếp bus)

PUIQ

( Đơn vị tiền đọc lệnh và hàng lệnh)

BUS BÊN TRONG

Trang 36

BIU: Bus Interface Unit (Đơn vị giao tiếp BUS)

MMU: Memory Manager Unit (đơn vị quản lý bộ nhớ)

SFU: Special Function Unit(Đơn vị chức năng đặc biệt)

PUIQ: Prefetch Unit Instruction Queue (Đơn vị tiền đọc lệnh và hàng đợi lệnh)

I Cache: Instruction Cache (bộ nhớ đệm lệnh)

D Cache: Data Cache(bộ nhớ đệm dữ liệu)

DU: Decode Unit

CU: Control Unit

IU: Interger Unit (Đơn vị số nguyên)

FPU: Floatting Point Unit (Đơn vị dấu phảy động)

IRF: Interger Register File

IOU: Interger Oparate Unit

FPRF: Floatting Point Register File

FPOU: Floatting Point Oparate Unit

1.2.2 Đơn vị giao tiếp BUS

Đơn vị giao tiếp BUS được coi như là bộ đệm giữa các khối bên trong và hệ thống bên ngoài, được kết nối với BUS hệ thống và chia làm 3 phần chính:

- Giao tiếp dữ liệu (Data Interface)

- Giao tiếp địa chỉ (Address Interface)

- Giao tiếp điều khiển (Control Interface)

Giao tiếp dữ liệu: Trao đổi dữ liệu giữa khối giao tiếp dữ liệu với các khối bên trong CPU

Giao tiếp địa chỉ: Gửi các địa chỉ của lệnh và dữ liệu được tạo ra ở bên trong bộ vi

xử lý nhờ đơn vị quản lý bộ nhớ MMU ra Bus địa chỉ của hệ thống

Giao tiếp điều khiển: Gửi và nhận các tín hiệu điều khiển và trạng thái từ bộ vi xử

lý tới các hệ thống bên ngoài và từ hệ thống bên ngoài đưa vào bộ vi xử lý Hầu hết giao tiếp điều khiển đều liên hệ trực tiếp với bộ điều khiển CU

1.2.3 Đơn vị tiền đọc lệnh và hàng đợi lệnh PUIQ

Khối này chứa các lệnh logic, đọc trước các lệnh từ I Cache và đặt lệnh vào hàng xếp các lệnh theo nguyên tắc FIFO (vào trước ra trước) Một hàng lệnh thường có từ 8 đến 32 byte, các lệnh xếp hàng sẽ được chuyển đến khối giải mã lệnh Với các bộ vi

xử lý hiện nay cho phép giải mã đồng thời nhiều mã lệnh còn gọi là xử lý song song Các lệnh này sẽ được chuyển tới khối giải mã lệnh DU (decoding unit)

Trang 37

Phần lớn các họ vi xử lý ngày nay cho phép 1 số lệnh đồng thời được giải mã (còn gọi

là xử lý song song )

1.2.4 Bộ nhớ Cache ( I Cache và D Cache)

Bộ nhớ Cache nhằm làm tăng hiệu suất của bộ vi xử lý, ta coi bộ nhớ này như một

bộ nhớ đệm trung gian tốc độ cao và nó nằm ở giữa bộ vi xử lý và bộ nhớ chính.Tốc

độ truy cập bộ nhớ Cache cao hơn so với bộ nhớ chính Việc truy cập thông tin vào bộ nhớ Cache nhanh hơn nhiều so với bộ nhớ chính Nếu sử dụng bộ nhớ Cache đủ lớn sẽ làm tối ưu hiệu suất của bộ vi xử lý

Cache là cấp đầu tiên của bộ nhớ đa cấp để lưu trữ thông tin kỳ vọng được sử dụng thường xuyên bởi CPU Bất kỳ thời điểm nào các phần tử tích cực của bộ nhớ chính đều được sao chép trong bộ nhớ Cache Khi CPU quyết định đưa ra yêu cầu tham chiếu tới bộ nhớ, tham chiếu này trước tiên sẽ tìm trong bộ nhớ ẩn Nếu phần tử yêu cầu tương ứng đang nằm trong Cache được gọi là Cache hit, nếu phần tử yêu cầu tương ứng đang không nằm trong Cache được gọi là Cache miss Trong trường hợp phần tử yêu cầu không nằm trong Cache thì phần tử này phải lấy từ mức nhớ tiếp theo trong kiến trúc đa cấp, nếu phần tử này đang tồn tại trong mức nhớ tiếp theo (bộ nhớ chính) thì nó phải được mang vào đặt trong bộ nhớ Cache Nếu chương trình thường chạy tuần tự thì CPU không bao giờ cần lấy dữ liệu trực tiếp từ bộ nhớ RAM về, những lệnh và dữ liệu CPU yêu cầu sẽ thường nằm trong bộ nhớ Cache trước khi CPU hỏi tới chúng Tuy nhiên những chương trình lại không chạy như vậy, chúng sẽ thường nhảy từ vị trí bộ nhớ này tới vị trí bộ nhớ khác Thách thức lớn nhất của bộ phận điều khiển Cache chính là cố gắng phỏng đoán CPU sẽ nhảy tới địa chỉ nào, để tải nội dung của địa chỉ đó vào bên trong bộ nhớ Cache trước khi CPU yêu cầu để tránh trường hợp CPU phải đi tới bộ nhớ RAM của hệ thống, và điều đó làm chậm hiệu suất làm việc của toàn bộ hệ thống Nhiệm vụ này được gọi là dự đoán rẽ nhánh và những CPU tiên tiến đều có đặc điểm này Những CPU hiện đại có tỉ lệ ―hit‖ ít nhất là 80%, có nghĩa là

ít nhất 80% thời gian CPU không cần truy cập trực tiếp tới bộ nhớ RAM của hệ thống

và thay thế vào truy cập tới bộ nhớ Cache

Để tăng hiệu suất thì bộ nhớ Cache thường chia làm 2 loại bộ nhớ lệnh (I Cache)

và bộ nhớ dữ liệu (D Cache) Cả hai bộ nhớ này đều nhận thông tin từ bộ nhớ chính thông qua Bus dữ liệu để làm việc

Trang 38

Mục đích của vùng đệm là tăng tốc độ truy cập bộ nhớ bằng cách lưu trữ các dữ liệu cần sử dụng với CPU thay vì lưu trong bộ nhớ chính Dù kích cỡ của bộ nhớ đệm không lớn như bộ nhớ chính nhưng nó nhanh hơn Bộ nhớ chính được tạo bằng DRAM với thời gian truy cập là 60ns Còn bộ đệm được tạo bằng SRAM truy cập nhanh hơn DRAM với chu kỳ ngắn hơn (một điển hình của thời gian truy cập bộ nhớ cache là 10ns)

Cache hiện không cần phải có dung lượng quá lớn để thực hiện các công việc Một quy tắc chung của bộ nhớ đệm nhỏ đủ để cho tổng chi phí trung bình cho mỗi bit, gần đó là của chính bộ nhớ, nhưng đủ lớn để mang lại lợi ích Vì bộ nhớ nhanh này là khá tốn kém chi phí, nó không khả thi để sử dụng để xây dựng các bộ nhớ chính Điều làm cho bộ nhớ cache "đặc biệt" là Cache không được truy cập theo địa chỉ mà được truy cập theo nội dung Vì lý do này, bộ nhớ cache đôi khi được gọi là CAM Theo hầu hết các chương trình lập bản đồ bộ nhớ cache, bộ nhớ cache mục đích phải được kiểm tra hoặc tìm kiếm nếu giá trị được yêu cầu được lưu trong bộ nhớ cache Để đơn giản hóa việc này, quá trình tìm những dữ liệu, lập bản đồ bộ nhớ đệm sử dụng các thuật toán khác nhau

1.2.5 Đơn vị điều khiển CU

Khối này ta có thể hiểu như một đơn vị điều phối đã được giải mã Hầu hết các tín hiệu của giao tiếp điều khiển đều kết nối với đơn vị điều khiển CU Các tín hiệu được tạo ra từ bộ giải mã lệnh cũng sẽ được chuyển về CU

1.2.6 Đơn vị quản lý bộ nhớ MMU

Bộ nhớ chính là thiết bị lưu trữ duy nhất thông qua đó CPU có thể trao đổi thông tin với môi trường ngoài, do vậy nhu cầu tổ chức, quản lý bộ nhớ là một trong những nhiệm vụ trọng tâm hàng đầu Bộ nhớ chính được tổ chức như một mảng một chiều các từ nhớ (word), mỗi từ nhớ có một địa chỉ Việc trao đổi thông tin với môi trường ngoài được thực hiện thông qua các thao tác đọc hoặc ghi dữ liệu vào một địa chỉ cụ thể nào đó trong bộ nhớ

Hầu hết các hệ điều hành hiện đại đều cho phép chế độ đa nhiệm nhằm nâng cao hiệu suất sử dụng CPU Tuy nhiên kỹ thuật này lại làm nảy sinh nhu cầu chia sẻ bộ nhớ giữa các tiến trình khác nhau Vấn đề nằm ở chỗ bộ nhớ thì hữu hạn và các yêu cầu bộ nhớ thì vô hạn Hệ điều hành chịu trách nhiệm cấp phát vùng nhớ cho các tiến

Trang 39

trình có yêu cầu Để thực hiện tốt nhiệm vụ này, hệ điều hành cần phải xem xét nhiều khía cạnh:

- Sự tương ứng giữa địa chỉ logic và địa chỉ vật lý (physic): làm cách nào để chuyển đổi một địa chỉ tượng trưng (symbolic) trong chương trình thành một địa chỉ thực trong bộ nhớ chính?

- Quản lý bộ nhớ vật lý: làm cách nào để mở rộng bộ nhớ có sẵn nhằm lưu trữ được nhiều tiến trình đồng thời?

- Chia sẻ thông tin: làm thế nào để cho phép hai tiến trình có thể chia sẻ thông tin trong bộ nhớ?

- Bảo vệ: làm thế nào để ngăn chặn các tiến trình xâm phạm đến vùng nhớ được cấp phát cho tiến trình khác?

Các giải pháp quản lý bộ nhớ phụ thuộc rất nhiều vào đặc tính phần cứng và trải qua nhiều giai đoạn cải tiến để trở thành những giảp pháp khá thỏa đáng như hiện nay

a Cơ chế quản lý bộ nhớ

Thông thường, một chương trình được lưu trữ trên đĩa như một tập tin nhị phân có thể xử lý Để thực hiện chương trình, cần nạp chương trình vào bộ nhớ chính, tạo lập tiến trình tương ứng để xử lý

Hàng đợi nhập hệ thống là tập hợp các chương trình trên đĩa đang chờ được nạp vào bộ nhớ để tiến hành xử lý

Các địa chỉ trong chương trình nguồn là địa chỉ tượng trưng, vì thế, một chương trình phải trải qua nhiều giai đoạn xử lý để chuyển đổi các địa chỉ này thành các địa chỉ tuyệt đối trong bộ nhớ chính

Có thể thực hiện kết buộc các chỉ thị và dữ liệu với các địa chỉ bộ nhớ vào một trong những thời điểm sau:

- Thời điểm biên dịch: Nếu tại thời điểm biên dịch, có thể biết vị trí mà tiến trình

sẽ thường trú trong bộ nhớ, trình biên dịch có thể phát sinh ngay mã với các địa chỉ tuyệt đối Tuy nhiên, nếu về sau có sự thay đổi vị trí thường trú lúc đầu của chương trình, cần phải biên dịch lại chương trình

- Thời điểm nạp: Nếu tại thời điểm biên dịch, chưa thể biết vị trí mà tiến trình sẽ thường trú trong bộ nhớ, trình biên dịch cần phát sinh mã tương đối (translatable) Sự liên kết địa chỉ được trì hoãn đến thời điểm chương trình được nạp vào bộ nhớ, lúc này các địa chỉ tương đối sẽ được chuyển thành địa chỉ tuyệt đối do đã biết vị trí bắt đầu lưu trữ tiến trình Khi có sự thay đổi vị trí lưu trữ, chỉ cần nạp lại chương trình để tính toán lại các địa chỉ tuyệt đối, mà không cần biên dịch lại

- Thời điểm xử lý: Nếu có nhu cầu di chuyển tiến trình từ vùng nhớ này sang vùng nhớ khác trong quá trình tiến trình xử lý, thì thời điểm kết buộc địa chỉ phải trì

Trang 40

hoãn đến tận thời điểm xử lý Để thực hiện kết buộc địa chỉ vào thời điểm xử lý, cần

sử dụng cơ chế phần cứngđặc biệt

b Không gian địa chỉ và không gian vật lý

Một trong những hướng tiếp cận trung tâm nhằm tổ chức quản lý bộ nhớ một cách hiệu quả là đưa ra khái niệm không gian địa chỉ được xây dựng trên không gian nhớ vật lý, việc tách rời hai không gian này giúp hệ điều hành dễ dàng xây dựng các cơ chế

và chiến lược quản lý bộ nhớ hữu hiệu:

- Địa chỉ logic còn gọi là địa chỉ ảo, là tất cả các địa chỉ do bộ xử lý tạo ra

- Địa chỉ vật lý là địa chỉ thực tế mà trình quản lý bộ nhớ nhìn thấy và thao tác

- Không gian địa chỉ là tập hợp tất cả các địa chỉ ảo phát sinh bởi một chương trình

- Không gian vật lý là tập hợp tất cả các địa chỉ vật lý tương ứng với các địa chỉ

ảo

Địa chỉ ảo và địa chỉ vật lý là như nhau trong phương thức kết buộc địa chỉ vào thời điểm biên dịch cũng như vào thời điểm nạp Nhưng có sự khác biệt giữa địa chỉ

ảo và địa chỉ vật lý trong phương thức kết buộc vào thời điểm xử lý

MMU (memory-management unit) là một cơ chế phần cứng được sử dụng để thực

hiện chuyển đổi địa chỉ ảo thành địa chỉ vật lý vào thời điểm xử lý

Chương trình của người sử dụng chỉ thao tác trên các địa chỉ ảo, không bao giờ nhìn thấy các địa chỉ vật lý Địa chỉ thật sự ứng với vị trí của dữ liệu trong bô nhớ chỉ được xác định khi thực hiện truy xuất đến dữ liệu

c Chức năng của đơn vị quản lý bộ nhớ

Đơn vị quản lý bộ nhớ có những chức năng như sau:

- Chuyển đổi địa chỉ ảo thành địa chỉ vật lý( địa chỉ thực) Địa chỉ vật lý sau đó được chuyển tới bộ nhớ Cache thông qua khối BIU và Bus địa chỉ để đưa tới bộ nhớ bên ngoài để chọn vùng nhớ

- Đảm bảo cơ chế phân trang trong tổ chức bộ nhớ ảo

- Đảm bảo cơ chế phân đoạn trong tổ chức bộ nhớ

- Bảo vệ bộ nhớ cho cả 2 cơ chế phân trang và phân đoạn

- Nhằm quản lý bộ nhớ đệm biến đổi truy cập nhanh và quản lý bộ nhớ dự trữ

- MMU còn có chức năng giám sát cách truy nhập đến các thư mục tương ứng trong bộ nhớ chính

d Cơ chế MMU trong kỹ thuật phân đoạn (Segmentation)

Quan niệm không gian địa chỉ là một tập các phân đoạn (segments) – các phân đoạn

là những phần bộ nhớ kích thước khác nhau và có liên hệ logic với nhau Mỗi

Ngày đăng: 12/10/2021, 12:31

TỪ KHÓA LIÊN QUAN