Tải bản đầy đủ (.doc) (30 trang)

TÌM HIỂU VỀ CÁC KĨ THUẬT TIÊN TIẾN CỦA BỘ XỬ LÝ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (893.63 KB, 30 trang )

BÁO CÁO BÀI TẬP LỚN
MÔN KIẾN TRÚC VÀ TỔ CHỨC MÁY TÍNH
TÌM HIỂU VỀ
CÁC KĨ THUẬT TIÊN TIẾN CỦA BỘ XỬ LÝ
Nhóm sinh viên thực hiện: Nhóm 3.
Nguyễn Hoàng Anh (MSV: 1000321)
Nguyễn Thị Ngọc Ánh (MSV: 1000647)
Nguyễn Thị Giang (MSV: 1003402)
Nguyễn Thị Lợi (MSV: 1021089)
Nguyễn Tuấn Thành (MSV: 1011270)
Giáo viên hướng dẫn: Tiêu Thị Ngọc Dung
Hà Nội, 11-2011
MỤC LỤC
CÁC HÌNH ẢNH, BẢNG BIỂU 3
SỬ DỤNG TRONG TÀI LIỆU NÀY 3
CHƯƠNG I 3
CẤU TRÚC CƠ BẢN CỦA BỘ VI XỬ LÝ CPU 3
I.NHIỆM VỤ CỦA CPU

3
II.CÁC THÀNH PHẦN CƠ BẢN

3
1.Đơn vị số học và logic (ALU – Arithmetic and Logic Unit) 4
2.Đơn vị điều khiển (CU – Control Unit) 4
3.Tập các thanh ghi (RF – Register File) 5
4.Đơn vị nối ghép Bus (BIU – Bus Interface Unit) 5
CẤU TRÚC CHUNG CỦA CÁC BỘ XỬ LÝ TIÊN TIẾN 6
I.CÁC ĐƠN VỊ XỬ LÝ DỮ LIỆU

6


II.BỘ NHỚ CACHE

7
1.Định nghĩa 7
2.Hai mức Cache 7
III.ĐƠN VỊ QUẢN LÝ BỘ NHỚ

8
1.Tổng quan về quản lý bộ nhớ 8
2.Nhiệm vụ, chức năng của đơn vị quản lý bộ nhớ 10
CÁC KIẾN TRÚC SONG SONG MỨC LỆNH 13
I.TỔNG QUAN VỀ KỸ THUẬT ỐNG DẪN

13
1.Khái niệm 13
2.Những khó khăn trong kỹ thuật ống dẫn 13
II.SIÊU ỐNG DẪN (SUPERPIPELINE & HYPERPIPELINE)

16
1.Khái niệm 16
2.Nhận xét 16
III.SIÊU VÔ HƯỚNG (SUPERSCALAR)

17
1.Khái niệm 17
2.Nhận xét 18
3.Kỹ thuật siêu luồng (Hyper Threading) 18
4.Máy tính có lệnh rất dài (VLIW – Very long instruction word) 19
5.Kiến trúc IA – 64 19
KIẾN TRÚC RISC 21

I.SƠ LƯỢC VỀ CISC

21
II.CÁC ĐẶC TRƯNG CỦA RISC

21
1.Khái niệm và lịch sử ra đời 21
2.Các đặc trưng của RISC 22
3.Các kiểu định vị trong các bộ xử lí RISC 24
III.SO SÁNH GIỮA CISC VÀ RISC

26
TÀI LIỆU THAM KHẢO 27
CÁC HÌNH ẢNH, BẢNG BIỂU
SỬ DỤNG TRONG TÀI LIỆU NÀY
CÁC HÌNH ẢNH, BẢNG BIỂU 3
SỬ DỤNG TRONG TÀI LIỆU NÀY 3
CHƯƠNG I 3
CẤU TRÚC CƠ BẢN CỦA BỘ VI XỬ LÝ CPU 3
I.NHIỆM VỤ CỦA CPU

3
II.CÁC THÀNH PHẦN CƠ BẢN

3
1.Đơn vị số học và logic (ALU – Arithmetic and Logic Unit) 4
Hình 1.2: Mô hình kết nối ALU 4
2.Đơn vị điều khiển (CU – Control Unit) 4
Hình 1.3: Mô hình kết nối đơn vị điều khiển 4
3.Tập các thanh ghi (RF – Register File) 5

4.Đơn vị nối ghép Bus (BIU – Bus Interface Unit) 5
CẤU TRÚC CHUNG CỦA CÁC BỘ XỬ LÝ TIÊN TIẾN 6
Hình 2.1 : Cấu trúc chung của bộ xử lý tiên tiến 6
I.CÁC ĐƠN VỊ XỬ LÝ DỮ LIỆU

6
II.BỘ NHỚ CACHE

7
1.Định nghĩa 7
Hình 2.2 : Trao đổi dữ liệu giữa các thành phần CPU - Cache- RAM 7
2.Hai mức Cache 7
Hình 2.3 : Hoạt động của 2 mức Cache 8
III.ĐƠN VỊ QUẢN LÝ BỘ NHỚ

8
1.Tổng quan về quản lý bộ nhớ 8
Hình 2.4 : Đơn vị quản lý bộ nhớ 10
2.Nhiệm vụ, chức năng của đơn vị quản lý bộ nhớ 10
a)Chuyển đổi địa chỉ ảo thành địa chỉ vật lý 10
Hình 2.5 : Chuyển đổi địa chỉ ảo thành địa chỉ 32bit 10
Hình 2.6 : Chuyển đổi địa chỉ 32 bit thành địa chỉ thật 11
b)Cung cấp cơ chế phân trang/phân đoạn 11
c)Cung cấp chế độ bảo vệ bộ nhớ 12
CÁC KIẾN TRÚC SONG SONG MỨC LỆNH 13
I.TỔNG QUAN VỀ KỸ THUẬT ỐNG DẪN

13
1.Khái niệm 13
Hình 3.1: Các giai đoạn khác nhau của kỹ thuật ống dẫn 13

2.Những khó khăn trong kỹ thuật ống dẫn 13
Hình 3.2: Khó khăn do số liệu 14
Hình 3.4: Khó khăn do điều khiển 16
II.SIÊU ỐNG DẪN (SUPERPIPELINE & HYPERPIPELINE)

16
1.Khái niệm 16
2.Nhận xét 16
a)Ưu điểm 16
b)Nhược điểm 17
Hình 3.5: Siêu ống dẫn bậc 2 so với ống dẫn đơn giản 17
III.SIÊU VÔ HƯỚNG (SUPERSCALAR)

17
1.Khái niệm 17
Hình 3.6: Siêu vô hướng so với kỹ thuật ống dẫn 18
2.Nhận xét 18
3.Kỹ thuật siêu luồng (Hyper Threading) 18
4.Máy tính có lệnh rất dài (VLIW – Very long instruction word) 19
5.Kiến trúc IA – 64 19
KIẾN TRÚC RISC 21
I.SƠ LƯỢC VỀ CISC

21
Hình 4.1: Đặc tính của một vài máy CISC 21
II.CÁC ĐẶC TRƯNG CỦA RISC

21
1.Khái niệm và lịch sử ra đời 21
2.Các đặc trưng của RISC 22

Hình 4.2: Đặc tính của ba mẫu đầu tiên máy RISC 23
3.Các kiểu định vị trong các bộ xử lí RISC 24
Hình 4.3: Dạng lệnh trong kiểu định vị thanh ghi cho vài CPU RISC 24
Hình 4.5: Dạng lệnh kiểu định vị tức thì cho vài CPU RISC 25
Hình 4.6: Định vị tức thì trong CPU Power PC 25
Hình 4.7: Dạng lệnh kiểu định vị trực tiếp của vài CPU RISC 25
III.SO SÁNH GIỮA CISC VÀ RISC

26
Bảng 4.1: Bảng so sánh giữa CISC và RISC 26
TÀI LIỆU THAM KHẢO 27
3
Các kĩ thuật tiên tiến của bộ vi xử lý
CHƯƠNG I
CẤU TRÚC CƠ BẢN CỦA BỘ VI XỬ LÝ CPU
Bộ xử lý trung tâm (CPU – Central Proccesing Unit) là thành phần cốt lõi của một
chiếc máy vi tính. Nhiệm vụ của CPU là xử lý những hoạt động, chẳng hạn như tính
toán, lưu trữ thông tin và truy tìm. Vì thế CPU biểu thị cho “trí thông minh” của mỗi
máy tính. Sự tiến bộ của công nghệ máy tính luôn gắn bó với sự phát triển của CPU.
I. NHIỆM VỤ CỦA CPU
Nhiệm vụ cơ bản của CPU, như đã nói ở trên, CPU được ví như bộ não của
máy vi tính, toàn bộ quá trình xử lý, tính toán và điều khiển đều được thực hiện tại
đây :
• Nhận lệnh (Fetch Instruction) : CPU đọc lệnh từ bộ nhớ.
• Giải mã lệnh (Decode Instruction): xác định thao tác mà lệnh yêu cầu.
• Nhận dữ liệu (Fetch Data): CPU nhận dữ liệu từ bộ nhớ hoặc các cổng
vào – ra.
• Xử lý dữ liệu (Process Data): Thực hiện phép toán số học hay phép toán
logic với các dữ liệu.
• Ghi dữ liệu (Write Data): ghi dữ liệu ra bộ nhớ hay các cổng vào – ra.

II. CÁC THÀNH PHẦN CƠ BẢN
Hình 1.1 : Sơ đồ cấu trúc cơ bản của CPU
Nhóm 3
4
Các kĩ thuật tiên tiến của bộ vi xử lý
1. Đơn vị số học và logic (ALU – Arithmetic and Logic Unit)
Có chức năng thực hiện các lệnh của đơn vị điều khiển và xử lý tín hiệu. Theo
tên gọi, đơn vị này dùng để thực hiện các phép tính số học(+,-,*,/,…)hay các phép
tính logic (AND, OR, XOR, NOT, phép dịch bit…).
Hình 1.2: Mô hình kết nối ALU
2. Đơn vị điều khiển (CU – Control Unit)
Là các vi xử lí có nhiệm vụ thông dịch các lệnh của chương trình và điều khiển
hoạt động xử lí,được điều tiết chính xác bởi xung nhịp đồng hồ hệ thống. Bên cạnh
đó, CU còn có chức năng tăng nội dung của bộ đếm chương trình để trỏ sang lệnh
kế tiếp; giải mã lệnh được nhận để xác định thao tác mã yêu cầu; phát ra các tín
hiệu điều khiển thực hiện lệnh; nhận các tín hiệu yêu cầu từ Bus hệ thống và đáp
ứng với các yêu cầu đó.

Hình 1.3: Mô hình kết nối đơn vị điều khiển
Nhóm 3
5
Các kĩ thuật tiên tiến của bộ vi xử lý
3. Tập các thanh ghi (RF – Register File)
• Thanh ghi là thành phần lưu trữ dữ liệu bên trong CPU, là nơi chứa các
thông tin tạm thời phục vụ cho hoạt động ở thời điểm hiện tại của CPU. Mỗi
thanh ghi có độ dài nhất định (16 bit hoặc 8 bit) và được nhận biết bằng một
tên riêng. Tùy vào độ dài và chức năng mà thanh ghi có công dụng chứa dữ
liệu hoặc kết quả của phép toán, hoặc là các địa chỉ dùng để định vị bộ nhớ
khi cần thiết. Nội dung của thanh ghi được truy xuất thông qua tên riêng của
nó.

• Một số thanh ghi điển hình:
- Các thanh ghi địa chỉ, bao gồm:
 Bộ đếm chương trình (PC – Program Counter)
 Con trỏ dữ liệu (DT – Data Pointer)
 Con trỏ ngăn xếp (SP – Stack Pointer)
 Thanh ghi cơ sở và thanh ghi chỉ số (Base Register & Index
Register)
- Các thanh ghi dữ liệu
- Thanh ghi trạng thái
4. Đơn vị nối ghép Bus (BIU – Bus Interface Unit)
• Là tập các dây kết nối các thành phần của máy tính
• Các loại Bus:
- Bus địa chỉ: xác định vùng nhớ hay thiết bị ngoại vi mà CPU cần truy
xuất, luôn nhận dữ liệu từ CPU.
- Bus dữ liệu: tải dữ liệu từ CPU đên bộ nhớ và ngược lại
- Bus điều khiển: truyền tải các câu lệnh điều khiển.
CHƯƠNG II
Nhóm 3
6
Các kĩ thuật tiên tiến của bộ vi xử lý
CẤU TRÚC CHUNG CỦA CÁC BỘ XỬ LÝ TIÊN TIẾN
Cùng với sự phát triển của khoa học công nghệ, các bộ xử lý với những kĩ thuật
tiên tiến đã lần lượt ra đời nhằm đáp ứng nhu cầu ngày càng cao của người sử dụng
máy vi tính. Những bộ vi xử lý đời mới có tốc độ làm việc nhanh, hiệu suất cao trở
thành sự lựa chọn hàng đầu của người sử dụng.
Hình 2.1 : Cấu trúc chung của bộ xử lý tiên tiến
I. CÁC ĐƠN VỊ XỬ LÝ DỮ LIỆU
Dữ liệu mà CPU nhận được từ bên ngoài (thông qua bus bên ngoài) được tính
toán, xử lý bởi các đơn vị xử lý dữ liệu. Sau đó, kết quả cuối cùng được đưa ra
ngoài bằng bus tương ứng. Giữa các đơn vị này cũng có sự trao đổi dữ liệu thông

qua bus bên trong.
Các đơn vị xử lý dữ liệu bao gồm :
• Các đơn vị số nguyên : xử lý các thao tác về số nguyên.
Nhóm 3
7
Các kĩ thuật tiên tiến của bộ vi xử lý
• Các đơn vị số dấu phẩy động : xử lý các thao tác về các phép toán trên số
thực.
• Các đơn vị chức năng đặc biệt như đơn vị xử lý dữ liệu âm thanh, đơn vị
xử lý dữ liệu hình ảnh, dữ liệu vector…
II. BỘ NHỚ CACHE
1. Định nghĩa
Bộ nhớ Cache là bộ nhớ tốc độ cao có sẵn trong CPU với mục đích tăng tốc độ
truy cập dữ liệu và những lệnh lưu trữ trong RAM. Bộ nhớ Cache copy hầu hết các
dữ liệu đã được truy cập gần nhất từ RAM vào bộ nhớ tĩnh và dự đoán dữ liệu gì
CPU sẽ hỏi tiếp theo, tải chúng đến bộ nhớ tĩnh trước khi CPU yêu cầu thực sự.
Mục đích là làm cho CPU có thể truy cập vào bộ nhớ Cache thay vì truy cập trực
tiếp vào RAM, vì nó có thể truy vấn dữ liệu từ bộ nhớ Cache một cách tức thời
hoặc hầu như ngay lập tức thay vì phải đợi khi truy cập vào dữ liệu được lưu trong
RAM. CPU truy cập vào bộ nhớ Cache thay vì RAM càng nhiều thì tốc độ của hệ
thống càng nhanh hơn.
Hình 2.2 : Trao đổi dữ liệu giữa các thành phần CPU - Cache- RAM
2. Hai mức Cache
Nói chung ở các CPU hiện đại hiện nay đều có đến ba Cache nhớ: L2 là Cache
nhớ lớn hơn và có thể tìm thấy ở giữa bộ nhớ RAM và Cache chỉ lệnh L1, nó nắm
giữ cả các chỉ lệnh và dữ liệu; Cache chỉ lệnh L1 được sử dụng để lưu các chỉ lệnh
đã được thực thi bởi CPU và lưu dữ liệu để có thể được ghi ngược trở lại bộ nhớ và
Nhóm 3
8
Các kĩ thuật tiên tiến của bộ vi xử lý

Cache nhớ dữ liệu L1. L1 và L2 có nghĩa là “Level 1” và “Level 2”, ám chỉ khoảng
cách từ chúng đến lõi CPU.

Hình 2.3 : Hoạt động của 2 mức Cache
• Cache mức một (L1 cache): thường là cache trong (on-chip cache; nằm
bên trong CPU)
• Cache mức hai (L2 cache) thường là cache ngoài (off-chip cache;
cache này nằm bên ngoài CPU).
• Ngoài ra, trong một số hệ thống (PowerPC G4, IBM S/390 G4,
Itanium của Intel) còn có tổ chức cache mức ba (L3 cache), đây là mức
cache trung gian giữa cache L2 và một thẻ bộ nhớ.
III. ĐƠN VỊ QUẢN LÝ BỘ NHỚ
1. Tổng quan về quản lý bộ nhớ
Quản lý bộ nhớ là một công việc quan trọng và phức tạp nhất của hệ điều hành
(HĐH). Bộ phận quản lý bộ nhớ chính như là một tài nguyên của hệ thống dùng để
cấp phát và chia sẻ cho nhiều tiến trình đang ở trạng thái hoạt động. Công cụ cơ
bản của quản lý bộ nhớ là sự phân trang và phân đoạn (quản lý bộ nhớ thật). Với sự
Nhóm 3
9
Các kĩ thuật tiên tiến của bộ vi xử lý
phân trang mỗi tiến trình được chia thành nhiều phần nhỏ có quan hệ với nhau, với
kích thước mỗi trang là cố định. Sự phân đoạn cung cấp cho HĐH các khối nhớ,
đoạn nhớ có kích thước khác nhau. HĐH có thể kết hợp giữa phân trang và phân
đoạn để có chiến lược quản lý bộ nhớ linh hoạt hơn.
Tuy nhiên các phương pháp quản lý bộ nhớ thật có chung một nhược điểm là
cần phải nạp toàn bộ file phần mềm vào bộ nhớ trước khi khởi chạy ứng dụng
tương ứng. Hiện nay, máy chỉ có RAM kích thước vừa phải (≤ 4GB), nhưng phải
chạy đồng thời nhiều ứng dụng, mỗi ứng dụng lại có nhu cầu bộ nhớ rất lớn, nhiều
khi lớn hơn cả kích thước của RAM. Như vậy, các phương pháp trước đây đều thất
bại không giải quyết nổi yêu cầu mới này.

Người ta đã tìm được phương pháp quản lý bộ nhớ đáp ứng được yêu cầu mới,
đó là phương pháp quản lý bộ nhớ ảo. Bộ nhớ ảo là bộ đệm trong máy tính giúp
máy tính chạy nhanh hơn giống như bộ nhớ đệm cache. Ý tưởng nền tảng của
phương pháp này là : không cần nạp hết chương trình vào bộ nhớ trước khi chạy
mà khi ứng dụng chạy tới lệnh nào và truy xuất dữ liệu nào thì HĐH mới nạp phần
chương trình chứa lệnh và dữ liệu cần chạy, sau đó khi cần thì giải phóng vùng nhớ
để chứa phần code và dữ liệu khác.
Có 3 phương pháp quản lý bộ nhớ ảo khác nhau:
• Quản lý bộ nhớ phân trang
• Quản lý bộ nhớ phân đoạn
• Kết hợp quản lý bộ nhớ phân trang và phân đoạn.
Để đạt được hiệu quả cần thiết, người ta phải thực hiện các phương pháp quản
lý bộ nhớ ảo bằng phần cứng. Đơn vị phần cứng quản lý bộ nhớ ảo được gọi là
MMU (Memory Management Unit) thường ở bên trong CPU (hình 2.4).
Nhóm 3
10
Các kĩ thuật tiên tiến của bộ vi xử lý
Hình 2.4 : Đơn vị quản lý bộ nhớ
2. Nhiệm vụ, chức năng của đơn vị quản lý bộ nhớ
a) Chuyển đổi địa chỉ ảo thành địa chỉ vật lý
Địa chỉ vật lý có dạng segment ( một nhóm các ô nhớ liên tục), địa chỉ thật
tương ứng là địa chỉ 32 bit, là kết quả của phép cộng số học trong hình 2.5.
Hình 2.5 : Chuyển đổi địa chỉ ảo thành địa chỉ 32bit
Địa chỉ ảo tuyến tính 32 bit được đổi sang địa chỉ thật của RAM bằng cơ chế
phân trang như hình 2.5.
Nhóm 3
11
Các kĩ thuật tiên tiến của bộ vi xử lý
Hình 2.6 : Chuyển đổi địa chỉ 32 bit thành địa chỉ thật
b) Cung cấp cơ chế phân trang/phân đoạn

• Phân trang : Phân trang là cơ chế quản lý bộ nhớ cho phép không gian
địa chỉ vật lý của quá trình chuyển đổi là không kề nhau. Phân trang có
ý tưởng khá đơn giản: Khởi tạo vùng nhớ trên bộ nhớ vật lý để xử lý,
lưu giữ thông tin trong 1 bảng. Mỗi tiến trình đều có 1 bảng riêng gồm
N dòng, N là số trang ảo mà tiến trình cần. Mỗi trang có 2 thuộc tính :
bit và số trang. Trang ảo cùng kích cỡ với trang vật lý. Bộ nhớ tiến
trình được chia thành những trang cùng kích cỡ cố định lưu giữ thông
tin tiến trình để xử lý.
• Phân đoạn : Phân trang là phương thức quản lý bộ nhớ phổ biến nhất
nhưng vẫn còn các cách khác, tiêu biểu là phân đoạn. Thay vì chia địa
chỉ ảo thành những trang kích thước bằng nhau, địa chỉ thật thành
những khung trang, địa chỉ ảo được chia thành địa chỉ luận lý, đơn vị
độ dài hoặc các đoạn.
• So sánh giữa 2 cơ chế : Giống như phân trang, phân đoạn cũng có
những vùng nhớ phân mảnh. Phân trang tạo ra những vùng nhớ đó vì
khung trang có thể khởi tạo 1 tiến trình mà không cần những thuộc tính
của khung trang. Phân đoạn lại khác, chứa những phân mảnh ở ngoài.
Những phân đoạn được tạo và hủy, những vùng nhớ được giải phóng
và chuẩn hóa lại dẫn đến lỗi trong bộ nhớ. Thực tế có rất nhiều vùng
nhớ nhỏ nhưng không đủ lớn để lưu các thuộc tính của phân đoạn.
Nhóm 3
12
Các kĩ thuật tiên tiến của bộ vi xử lý
c) Cung cấp chế độ bảo vệ bộ nhớ
Cơ chế bảo vệ trong hệ thống phân trang được thực hiện với các bit bảo vệ
được gắn với mỗi khung trang. Thông thường, các bit này được lưu trong bảng
trang, vì mỗi truy xuất đến bộ nhớ đều phải tham khảo đến bảng trang để phát sinh
địa chỉ vật lý, khi đó, hệ thống có thể kiểm tra các thao tác truy xuất trên khung
trang tương ứng có hợp lệ với thuộc tính bảo vệ của nó không. Ngoài ra, một bit
phụ trội được thêm vào trong cấu trúc một phần tử của bảng trang : bit hợp lệ - bit

không hợp lệ (valid – invalid).
• Bit hợp lệ : trang tương ứng thuộc về không gian địa chỉ của tiến trình.
• Bit không hợp lệ : trang tương ứng không nằm trong không gian địa chỉ
của tiến trình, điều này có nghĩa tiến trình đã truy xuất đến một địa chỉ
không được phép.
Một ưu điểm đặc biệt của cơ chế phân đoạn là khả năng đặc tả thuộc tính bảo
vệ cho mỗi phân đoạn. Vì mỗi phân đoạn biểu diễn cho một phần chương trình
với ngữ nghĩa được người dùng xác định, người sử dụng có thể biết được một phân
đoạn chứa đựng những gì bên trong, do vậy họ có thể đặc tả các thuộc tính bảo vệ
thích hợp cho từng phân đoạn. Cơ chế phần cứng phụ trách chuyển đổi địa chỉ bộ
nhớ sẽ kiểm tra các bit bảo vệ được gán với mỗi phần tử trong bảng phân đoạn để
ngăn chặn các thao tác truy xuất không hợp lệ đến phân đoạn tương ứng.

Nhóm 3
13
Các kĩ thuật tiên tiến của bộ vi xử lý
CHƯƠNG III
CÁC KIẾN TRÚC SONG SONG MỨC LỆNH
I. TỔNG QUAN VỀ KỸ THUẬT ỐNG DẪN
1. Khái niệm
• Kỹ thuật ống dẫn là kỹ thuật làm cho các giai đoạn khác nhau của nhiều lệnh
được thi hành cùng một lúc.
• Các giai đoạn :
- Lấy lệnh (IF: Instruction Fetch)
- Giải mã (ID: Instruction Decode)
- Thi hành (EX : Execute)
- Thâm nhập bộ nhớ (MEM: Memory access)
- Lưu trữ kết quả (RS: Result Storing)

Hình 3.1: Các giai đoạn khác nhau của kỹ thuật ống dẫn

2. Những khó khăn trong kỹ thuật ống dẫn
Khi thi hành lệnh trong một máy tính dùng kỹ thuật ống dẫn, có nhiều trường
hợp làm cho việc thực hiện kỹ thuật ống dẫn không thực hiện được như là: thiếu
các mạch chức năng, một lệnh dùng kết quả của lệnh trước, một lệnh nhảy.
Có thể phân biệt 3 loại khó khăn: khó khăn do cấu trúc, khó khăn do số liệu
và khó khăn do điều khiển.
• Khó khăn do cấu trúc: Đây là khó khăn do thiếu bộ phận chức năng, ví
dụ một máy tính dùng kỹ thuật ống dẫn phải có nhiều ALU, nhiều PC,
Nhóm 3
14
Các kĩ thuật tiên tiến của bộ vi xử lý
nhiều thanh ghi lệnh IR… Các khó khăn này được giải quyết bằng cách
thêm các bộ phận chức năng cần thiết và hữu hiệu.
• Khó khăn do số liệu: Ví dụ như trường hợp các lệnh liên tiếp sau:
Lệnh 1: ADD R1,R2, R3
Lệnh 2: SUB R4, R1, R5
Lệnh 3: AND R6, R1, R7
Lệnh 4: OR R8, R1, R9
Hình 3.2 cho thấy R1, kết quả của lệnh 1 chỉ có thể được dùng cho lệnh
2 sau giai đoạn MEM của lệnh 1, nhưng R1 được dùng cho lệnh 2 vào
giai đoạn EX của lệnh 1. Chúng ta cũng thấy R1 được dùng cho các lệnh
3 và 4.
Hình 3.2: Khó khăn do số liệu
Để khắc phục khó khăn này, một bộ phận phần cứng được dùng để đưa kết
quả từ ngã ra ALU trực tiếp vào một trong các thanh ghi ngã vào như trong
hình 3.3.
Hình 3.3: ALU đưa kết quả tính toán trở lại
Khi bộ phận phần cứng nêu trên phát hiện có dùng kết quả của ALU
làm toán hạng cho liệt kê, nó tác động vào mạch đa hợp để đưa ngã ra của
Nhóm 3

15
Các kĩ thuật tiên tiến của bộ vi xử lý
ALU vào ngã vào của ALU hoặc vào ngã vào của một đơn vị chức năng khác
nếu cần.
• Khó khăn do điều khiển:
Nguyên nhân: Các lệnh làm thay đổi tính thi hành các lệnh một cách
tuần tự (nghĩa là PC tăng đều đặn sau mỗi lệnh), gây khó khăn về điều
khiển. Các lệnh này là lệnh nhảy đến một địa chỉ tuyệt đối chứa trong một
thanh ghi, hay lệnh nhảy đến một địa chỉ xác định một cách tương đối so
với địa chỉ hiện tại của bộ đếm chương trình PC. Các lệnh nhảy trên có thể
có hoặc không điều kiện.
Trong trường hợp lệnh không có điều kiện, tác vụ nhảy không thể biết
trước giai đoạn giải mã.
Trong trường hợp lệnh nhảy có điều kiện thì phải tính toán điều kiện.
Thông thường các kiến trúc RISC đặt kết quả việc so sánh vào trong thanh
ghi trạng thái, hoặc vào trong thanh ghi tổng quát. Trong cả 2 trường hợp,
đọc điều kiện tương đương với đọc thanh ghi. Đọc thanh ghi có thể được
thực hiện trong phân nửa chu kỳ cuối giai đoạn ID.
Một trường hợp khó hơn có thể xảy ra trong những lệnh nhảy có điều
kiện. Đó là điều kiện được có khi so sánh 2 thanh ghi và chỉ thực hiện lệnh
nhảy khi kết quả so sánh là đúng. Việc tính toán trên các đại lượng logic
không thể thực hiện được trong phân nửa chu kỳ và như thế phải kéo dài thời
gian thực hiện lệnh nhảy có điều kiện. Người ta thường tránh các trường hợp
này để không làm giảm mức hữu hiệu của máy tính.

Nhóm 3
16
Các kĩ thuật tiên tiến của bộ vi xử lý
Hình 3.4: Khó khăn do điều khiển
Giải pháp:

• Cách thứ nhất là đóng băng kỹ thuật ống dẫn trong một chu kỳ, nghĩa
là ngưng thi hành lệnh thứ i+1 đang làm nếu lệnh thứ i là lệnh nhảy. Ta
mất trắng một chu kỳ cho mỗi lệnh nhảy.
• Cách thứ hai là thi hành lệnh sau lệnh nhảy nhưng lưu ý rằng hiệu quả
của một lệnh nhảy bị chậm mất một lệnh. Vậy lệnh theo sau lệnh nhảy
được thực hiện trước khi lệnh mà chương trình phải nhảy tới được
thực hiện. Chương trình dịch hay người lập trình có nhiệm vụ xen vào
một lệnh hữu ích sau lệnh nhảy.
II. SIÊU ỐNG DẪN (SUPERPIPELINE & HYPERPIPELINE)
1. Khái niệm
Máy tính có kỹ thuật siêu ống dẫn bậc n bằng cách chia các giai đoạn của kỹ
thuật ống dẫn đơn giản, mỗi giai đoạn được thực hiện trong khoản thời gian T
c
,
thành n giai đoạn con thực hiện trong khoản thời gian T
c
/n.
2. Nhận xét
a) Ưu điểm
• Độ hữu hiệu của kỹ thuật này tương đương với việc thi hành n lệnh
trong mỗi chu kỳ T
c
.
• Hình 3.5 trình bày ví dụ về siêu ống dẫn bậc 2, có so sánh với ống dẫn
đơn giản. Ta thấy trong một chu kỳ T
c
, máy dùng kỹ thuật siêu ống dẫn
làm 2 lệnh thay vì làm 1 lệnh trong máy dùng kỹ thuật ống dẫn bình
thường.
• Trong máy tính siêu ống dẫn, tốc độ thực hiện lệnh tương đương với

việc thực hiện một lệnh trong khoảng thời gian T
c
/n.
Nhóm 3
17
Các kĩ thuật tiên tiến của bộ vi xử lý
b) Nhược điểm
• Thời gian thực hiện một giai đoạn con ngắn T
c
/n và việc trì hoãn trong
thi hành lệnh nhảy lớn.
• Trong ví dụ ở hình 3.5, nếu lệnh thứ i là một lệnh nhảy tương đối thì
lệnh này được giải mã trong giai đoạn ID, địa chỉ nhảy đến được tính
vào giai đoạn EX, lệnh phải được nhảy tới là lệnh thứ i+4, vậy có trì trệ
3 lệnh thay vì 1 lệnh trong kỹ thuật ống dẫn bình thường.
Hình 3.5: Siêu ống dẫn bậc 2 so với ống dẫn đơn giản.
III. SIÊU VÔ HƯỚNG (SUPERSCALAR)
1. Khái niệm
Máy tính siêu vô hướng bậc n có thể thực hiện đồng thời n lệnh trong một chu
kỳ xung nhịp T
c
. Hình 3.6 trình bày một ví dụ về sự vận hành của một máy tính
siêu vô hướng bậc 2 so với một máy tính dùng kỹ thuật ống dẫn.
Nhóm 3
18
Các kĩ thuật tiên tiến của bộ vi xử lý
Hình 3.6: Siêu vô hướng so với kỹ thuật ống dẫn
2. Nhận xét
Trong một máy tính siêu vô hướng phần cứng phải quản lý việc đọc và thi hành
đồng thời nhiều lệnh. Vậy nó phải có khả năng quản lý các quan hệ giữa số liệu

với nhau. Cũng cần phải chọn các lệnh có khả năng được thi hành cùng một lúc.
Những bộ xử lý đầu tiên đưa ra thị trường dùng kỹ thuật này là các bộ xử lý Intel
i860 và IBM RS/6000. Các bộ xử lý này có khả năng thực hiện song song nhiều tác
vụ trên số nguyên và trên số lẻ.
Năm 1992, người ta thấy xuất hiện các bộ xử lý có nhiều bộ thực hiện tác vụ độc
lập với nhau (nhiều ALU, bộ tính toán số lẻ, nạp dữ liệu, lưu dữ liệu, nhảy), có thể
thực hiện song song nhiều lệnh (lệnh tính số nguyên, số lẻ, lệnh bộ nhớ, lệnh
nhảy ). Số lệnh có thể được thi hành song song càng nhiều thì phần cứng thực hiện
việc này càng phức tạp.
3. Kỹ thuật siêu luồng (Hyper Threading)
Kỹ thuật siêu luồng là kỹ thuật giúp CPU có khả năng chạy nhiều ứng dụng
cùng một lúc bằng cách chia thành các luồng dữ liệu khác nhau để xử lý các ứng
dụng cùng một thời điểm. Kỹ thuật siêu phân luồng cho phép các phần mềm ứng
dụng được viết cho những máy chủ đa luồng có thể thực hiện các chỉ thị song song
đồng thời trên mỗi bộ xử lý riêng, bằng cách này sẽ cải thiện tức thì tốc độ giao
dịch cũng như thời gian đáp ứng và các yêu cầu đặc thù khác của phần mềm nghiệp
vụ và thương mại điện tử. Kỹ thuật này tương thích với các phần mềm ứng dụng và
hệ điều hành sẵn có trên các máy chủ (server), nó cho phép hỗ trợ nhiều người
Nhóm 3
19
Các kĩ thuật tiên tiến của bộ vi xử lý
dùng hơn và tăng khối lượng công việc được xử lý trên một máy chủ. Với các máy
trạm (workstation) cao cấp, kỹ thuật siêu phân luồng cũng sẽ tăng đáng kể tốc độ
các phần mềm ứng dụng đòi hỏi năng lực tính toán cao, ví dụ như phần mềm thiết
kế 3 chiều, xử lý ảnh hay video… Trong thời gian tới sẽ xuất hiện ngày càng nhiều
phần mềm được thiết kế đặc biệt và tối ưu hoá cho kỹ thuật này.
4. Máy tính có lệnh rất dài (VLIW – Very long instruction word)
Máy tính có lệnh rất dài là máy tính siêu vô hướng có thể thực hiện 2 hoặc 3
lệnh trong mỗi chu kỳ xung nhịp. Do kỹ thuật ống dẫn đòi hỏi các lệnh phải phụ
thuộc vào nhau nên rất khó thực hiện nhiều lệnh trong một chu kỳ. Như vậy, thay

vì cố thực hiện nhiều lệnh trong một chu kỳ, người ta tìm cách đưa vào nhiều
lệnh trong một từ lệnh dài. Một lệnh VLIW có thể chứa hai tác vụ tính toán số
nguyên, hai tác vụ tính toán số lẻ, hai tác vụ thâm nhập bộ nhớ và một lệnh nhảy.
Một lệnh như vậy được chia thành nhiều trường, mỗi trường có thể có từ 16 đến
24 bít và chiều dài của lệnh VLIW là từ 112 đến 168 bit. Có nhiều kỹ thuật
tạo ra một lệnh VLIW trong đó tất cả các trường đều được dùng. Giá thành
và độ phức tạp của một máy tính có lệnh thật dài tăng lên rất nhiều nếu
người ta tăng số trường trong một lệnh VLIW.
5. Kiến trúc IA – 64
Kiến trúc IA-64 là một kiến trúc mới được giới thiệu trong những năm gần
đây. Kiến trúc này là sản phẩm của sự kết hợp nghiên cứu giữa hai công ty máy
tính hàng đầu thế giới là Intel, HP và một số trường đại học. Kiến trúc mới dựa trên
sự phát triển của công nghệ mạch tích hợp và kỹ thuật xử lý song song. Kiến trúc
IA-64 giới thiệu một sự khởi đầu mới quan trọng của kỹ thuật siêu vô hướng -
kỹ thuật xử lý lệnh song song (EPIC: Expicitly Parallel Intruction Computing) - kỹ
thuật ảnh hưởng nhiều đến sự phát triển của bộ xử lý hiện nay. Sản phẩm đầu
tiên thuộc kiến trúc này là bộ xử lý Itanium của hãng Intel.
a) Đặc trưng của kiến trúc IA – 64

Cơ chế xử lý là song song các lệnh mã máy (EPIC).
Nhóm 3
20
Các kĩ thuật tiên tiến của bộ vi xử lý

Các lệnh dài hay rất dài (LIW hay VLIW).

Các lệnh rẽ nhánh xác định (thay vì đoán các lệnh rẽ nhánh như các
kiến

trúc trước).



Nạp trước các lệnh (theo sự suy đoán).
b) Các đặc trưng tổ chức của bộ xử lý theo kiến trúc IA – 64
• Có nhiều thanh ghi: số lượng thanh ghi các bộ xử lý kiến trúc IA-64 là
256 thanh ghi. Trong đó, 128 thanh ghi tổng quát (GR) 64 bit cho các
tính toán số nguyên, luận lý; 128 thanh ghi 82 bit (FR) cho các phép
tính dấu chấm động và dữ liệu đồ hoạ; ngoài ra, còn có 64 thanh ghi
thuộc tính (PR)1 bit để chỉ ra các thuộc tính lệnh đang thi hành.
• Nhiều bộ thi hành lệnh: hiện nay, một máy tính có thể có tám hay
nhiều hơn các bộ thi hành lệnh song song. Các bộ thi hành lệnh này được
chia thành bốn kiểu:
- Kiểu I:
dùng xử lý các lệnh tính toán số nguyên, dịch, luận

lý,
so sánh, đa phương tiện.
- Kiểu M: Nạp và lưu trữ giữa thanh ghi và bộ nhớ thêm vào một
vài tác dụng ALU.
- Kiểu B: Thực hiện các lệnh rẽ nhánh.
- Kiểu F: Các lệnh tính toán số dấu chấm động.
c) Định dạng lệnh trong kiến trúc IA – 64
Kiến trúc IA-64 định nghĩa một gói (buidle) 128 bit chứa ba lệnh (mỗi lệnh
dài 41 bit) và một trường mẫu (template field) 5 bit. Bộ xử lý có thể lấy một hay
nhiều gói lệnh thi hành cùng lúc. Trường mẫu này chứa các thông tin chỉ ra các
lệnh có thể thực hiện song song. Các lệnh trong một gói có thể là các lệnh độc
lập nhau. Bộ biên dịch sẽ sắp xếp lại các lệnh trong các gói lệnh kề nhau theo
một thứ tự để các lệnh có thể được thực hiện song song.
CHƯƠNG IV
Nhóm 3

21
Các kĩ thuật tiên tiến của bộ vi xử lý
KIẾN TRÚC RISC
I. SƠ LƯỢC VỀ CISC
Các kiến trúc với tập lệnh phức tạp CISC (Complex Instruction Set
Computer) được nghĩ ra từ những năm 1960. Vào thời kỳ này, người ta nhận
thấy các chương trình dịch khó dùng các thanh ghi, rằng các vi lệnh được thực
hiện nhanh hơn các lệnh và cần thiết phải làm giảm độ dài các chương trình.
Các đặc tính này khiến người ta ưu tiên chọn các kiểu ô nhớ - ô nhớ và ô nhớ -
thanh ghi, với những lệnh phức tạp và dùng nhiều kiểu định vị. Điều này dẫn
tới việc các lệnh có chiều dài thay đổi và như thế thì dùng bộ điều khiển vi
chương trình là hiệu quả nhất.
Hình 4.1 cho ta thấy các đặc tính của một vài máy CISC tiêu biểu. Ta nhận thấy
cả ba đều có điểm chung là có nhiều lệnh, các lệnh có chiều dài thay đổi. Nhiều
cách thực hiên lệnh và nhiều vi chương trình được dùng.

Hình 4.1: Đặc tính của một vài máy CISC
II. CÁC ĐẶC TRƯNG CỦA RISC
1. Khái niệm và lịch sử ra đời
RISC (Reduced Instruction Set Computer) là một phương pháp thiết kế các bộ
vi xử lý theo hướng đơn giản hóa tập lệnh, trong đó thời gian thực thi tất cả các
lệnh đều như nhau.
Ý tưởng thiết kế RISC bắt đầu khi người ta nhận thấy rất nhiều tính năng trong
các bộ vi xử lý vốn được thiết kế nhằm giúp công việc lập trình dễ dàng hơn lại
Nhóm 3
22
Các kĩ thuật tiên tiến của bộ vi xử lý
thường bị các phần mềm bỏ sót. Những tính năng này thông thường cần vài chu kỳ
máy để thực thi. Cộng thêm sự cách biệt về hiệu suất giữa các CPU và bộ
nhớ chính đã dẫn đến nhiều kỹ thuật hoặc nhằm tổ chức lại quá trình thực thi trong

bộ xử lý hoặc nhằm giảm bớt số lần truy xuất bộ nhớ.
Những năm cuối của thập niên 1970, các nhà nghiên cứu của công ty IBM (và
một số dự án khác) đã chứng minh rằng phần lớn các phương pháp đánh giá địa chỉ
trực giao thường bị bỏ qua. Đây chính là kết quả không mong đợi do sử dụng các
trình biên dịch cao cấp thay vì sử dụng hợp ngữ. Đây là một nghịch lý của quá
trình thiết kế vi xử lý, người thiết kế không có đủ thời gian để tối ưu cho tất cả các
lệnh, do đo họ chỉ chú trọng đến những lệnh thường được sử dụng nhiều nhất.
Những chương trình trong thực tế thường tốn phần lớn thời gian để thực hiện
một số tác vụ đơn giản, do đó một số nhà nghiên cứu hướng tới việc tối ưu hóa
những tác vụ này. Do xung nhịp của CPU bị giới hạn bởi thời gian thực hiện lệnh
chậm nhất, nên nếu tối ưu lệnh sẽ khiến cho toàn bộ tập lệnh được thực thi nhanh
hơn nhiều. Mục tiêu của RISC chính là đơn giản hóa các lệnh, để mỗi lệnh có thể
được thực thi chỉ trong 1 chu kỳ máy. Việc tập trung đơn giản hóa các lệnh đã cho
ra đời các loại "Máy tính với tập lệnh được đơn giản hóa" - RISC.
2. Các đặc trưng của RISC
Mạch RISC có một số đặc điểm sau:
• Có một số ít lệnh (thông thường dưới 100 lệnh ).
• Có một số ít các kiểu định vị (thông thường hai kiểu: định vị tức thì
và định vị gián tiếp thông qua một thanh ghi).
• Có một số ít dạng lệnh (một hoặc hai)
• Các lệnh đều có cùng chiều dài.
• Chỉ có các lệnh ghi hoặc đọc ô nhớ mới thâm nhập vào bộ nhớ.
• Dùng bộ tạo tín hiệu điều khiển bằng mạch điện để tránh chu kỳ giải
mã các vi lệnh làm cho thời gian thực hiện lệnh kéo dài.

Bộ xử lý RISC có nhiều thanh ghi để giảm bớt việc thâm nhập vào
bộ nhớ
trong.
• Các bộ xử li RISC đầu tiên thực hiện tất cả các lệnh trong 1 chu kì
máy.

Nhóm 3
23
Các kĩ thuật tiên tiến của bộ vi xử lý

Hình 4.2: Đặc tính của ba mẫu đầu tiên máy RISC
a) Ưu điểm:
• Diện tích bộ vi xử lí dùng cho bộ điều khiển giảm từ 60% ( cho các bộ
xử lí CISC) xuống còn 10% (cho các bộ xử lí RISC). Như vậy có thể
tích hợp thêm vào bên trong bộ xử lí các thanh ghi, các cổng vào ra và
bộ nhớ cache…
• Tốc độ tính toán cao nhờ vào việc giải mã lệnh đơn giản, nhờ có nhiều
thanh ghi (ít thâm nhập bộ nhớ) và nhờ thực hiện kĩ thuật ống dẫn lien
tục và có hiệu quả (các lệnh đều có thời gian thực hiện giống nhau và
có cùng dạng).
• Thời gian cần thiết để thiết kế bộ điều khiển là ít. Điều này làm giảm
chi phí thiết kế.
• Bộ điều khiển trở nên đơn giản và gọn làm cho ít rủi ro mà ta thường
gặp trong bộ điều khiển.
b) Nhược điểm:

Các chương trình dài ra so với các chương trình viết cho bộ xử lí CISC.

Các chương trình dịch gặp nhiều khó khăn vì có ít lệnh làm cho có ít
lựa chọn để diễn dịch các cấu trúc của chương trình gốc. Sự cứng
Nhóm 3

×