5 Nguyễn Thị Mỹ Dung – Khoa CNTT Quá trình thực hiện lệnh máy 3 b Đường số liệu trong bộ xử lý Được mô tả dưới dạng lệnh như sau: 6 Nguyễn Thị Mỹ Dung – Khoa CNTT 7 Nguyễn Thị Mỹ Dung –
Trang 11 Nguyễn Thị Mỹ Dung – Khoa CNTT
Nội dung:
I Thực hiện lệnh máy bên trong bộ xử lý
II Kiến trúc RISC và kỹ thuật đường ống III Ngắt quãng
IV Máy tính có lệnh thật dài (VLIW)
V Máy tính Vectơ
VI Máy tính song song VII Kiến trúc IA-64
2 Nguyễn Thị Mỹ Dung – Khoa CNTT
I Thực hiện lệnh máy bên trong bộ xử lý
1 Các quá trình thực hiện một lệnh máy
Quá trình này là một chu kỳ: Đọc lệnh – giải mã lệnh – thực thi lệnh và trải qua 5 giai đoạn:
1 Tìm – nạp lệnh từ bộ nhớ thanh ghi (IR) Thanh ghi con trỏ lệnh IP trỏ đến lệnh kế tiếp
2 Xác định loại lệnh vừa nạp Nếu lệnh có sử dụng
dữ liệu trong bộ nhớ thì xác định nơi chứa dữ liệu
3 Tìm – nạp các dữ liệu vào các thanh ghi bên trong bộ xử lý (nếu có)
4 Thi hành lệnh
5 Lưu kết quả vào vùng nhớ thích hợp
Trở lại B1 để thực hiện lệnh kế tiếp
3 Nguyễn Thị Mỹ Dung – Khoa CNTT
Quá trình thực hiện lệnh máy (2)
a) Quá trình đọc lệnh: được mô tả bằng ngôn ngữ truyền thanh ghi (RTL) như sau:
Fetch: [MAR] [PC]
[PC] [PC] + 1 [MBR] [MS([MAR])]
[IR] [MBR]
CU [IR(op_code)]
Trong đó:
MAR: Reg địa chỉ nhớ (địa chỉ 1 vùng trong BNC) PC: Reg bộ đếm chương trình (địa chỉ lệnh kế tiếp) MBR: Reg đệm nhớ (lưu trữ tạm thời các lệnh hoặc dữ liệu nhận được từ bộ nhớ trong)
IR: Reg lệnh (mã toán hạng: mã thao tác và toán hạng) CU: đơn vị điều khiển.
4 Nguyễn Thị Mỹ Dung – Khoa CNTT
Quá trình đọc lệnh (tt)
- [MAR] [PC]: sao chép nội dung thanh ghi đếm chương trình vào thanh ghi địa chỉ nhớ.
- [MS(20)] [PC]: sao chép nội dung thanh ghi bộ đếm chương trình vào ô nhớ 20 trong bộ nhớ chính.
- [MBR] [MS([MAR])]: sao chép nội dung ô nhớ từ thanh ghi địa chỉ nhớ vào thanh ghi đệm nhớ.
Lưu ý:
- Lệnh hợp ngữ: ADD D0, [A1]
- Ngôn ngữ RTL: [D0] [D0] + [MS([A1])]
=> cộng nội dung ô nhớ có địa chỉ là thanh ghi địa chỉ A1 với nội dung thanh ghi số liệu D0, kết quả lưu vào thanh ghi D0.
Trang 25 Nguyễn Thị Mỹ Dung – Khoa CNTT
Quá trình thực hiện lệnh máy (3)
b) Đường số liệu trong bộ xử lý Được mô tả dưới dạng lệnh như sau:
6 Nguyễn Thị Mỹ Dung – Khoa CNTT
7 Nguyễn Thị Mỹ Dung – Khoa CNTT
Quá trình thực hiện lệnh máy (4)
c) Các lệnh nhảy có điều kiện
- Các lệnh nhảy có điều kiện cho phép tạo cấu trúc If Then Else
- Lệnh nhảy là loại ngắt mềm buộc bộ xử lý nhảy đến địa chỉ lệnh nhảy
để thi hành tức thì lệnh ngoài chương trình, sau đó mới quay về làm tiếp theo công việc ở chương trình
Nguyễn Thị Mỹ Dung – Khoa CNTT
Quá trình thực hiện lệnh máy (5) d) Toán hạng tức thì
Toán hạng là một hằng số
- Ví dụ:
Mov D0, 12h D0: thanh ghi số liệu 12h: là hằng số
Trang 39 Nguyễn Thị Mỹ Dung – Khoa CNTT
Quá trình thực hiện lệnh máy (6)
e) Kiến trúc của một vi xử lý thực tế
Sự phát triển nhanh chóng của công nghệ vật liệu bán dẫn đã tạo ra các bộ xử lý có độ rộng từ dữ liệu ngày càng lớn tới 32 – 64 bit và có thêm nhiều thanh ghi trong đó
Các bộ xử lý điển hình với nhiều bus và nhiều thanh ghi xuất hiện, các thanh ghi điều khiển: PC, MAR, MBR, IR Đặc biệt là nhiều thanh ghi địa chỉ, nhiều thanh ghi số liệu
Để thâm nhập các thanh ghi cần có định dạng lệnh hai địa chỉ
Một lệnh lúc này gồm 3 trường: mã tác vụ, địa chỉ thanh ghi đích, địa chỉ toán hạng nguồn
10 Nguyễn Thị Mỹ Dung – Khoa CNTT
Quá trình thực hiện lệnh máy (7)
Phương pháp định địa chỉ
Địa chỉ toán hạng nguồn Thanh ghi toán hạng đích
Mã tác vụ
[1001]
AX MOV
VD:
MOV AX, [1001] ;[AX] [MS(1001)]
ADD D0+ [A1] ;[D0] [D0] + [MS([A1])]
ADD R1, [R2] ;[R1] [R1] + MS(R2) ADD R1, 100[R2] ;[R1] [R1] + [MS([R2] + 100)]
ADD R1, [R2 + R3] ;[R1] [R1] + [MS([R2] + [R3])]
11 Nguyễn Thị Mỹ Dung – Khoa CNTT
Thực hiện lệnh máy bên trong bộ xử lý (2)
2 Đơn vị điều khiển CU
Bộ xử lý được thiết kế gồm 2 phần: đường đi
dữ liệu và bộ điều khiển
Bộ điều khiển là phần phức tạp nhất trong bộ
xử lý CU tạo ra các tín hiệu điều khiển di chuyển số liệu, điều khiển các tác vụ mà các bộ phận chức năng phải làm Bộ điều khiển cũng tạo các tín hiệu làm các lệnh thực hiện một cách tuần tự
Việc cài đặt bộ điều khiển có thể dùng một trong hai cách sau: dùng mạch điện tử hoặc dùng vi chương trình
12 Nguyễn Thị Mỹ Dung – Khoa CNTT
Đơn vị điều khiển CU (2) a/ Bộ điều khiển được vi chương trình
- Ngôn ngữ tự nhiên của máy tính là các lệnh máy thường được viết bằng các từ gợi nhớ mã lệnh
- Các lệnh máy này là các lệnh vĩ mô
- Mỗi lệnh vĩ mô được dịch bởi một số các hoạt động rất sơ đẳng tức là các vi lệnh
- Một vi lệnh là một sự kiện nhỏ nhất xảy ra bên trong máy tính
- Quá trình xử lý một vi lệnh vĩ mô bằng cách thực hiện một chuỗi các vi lệnh được gọi là dịch lệnh
Trang 413 Nguyễn Thị Mỹ Dung – Khoa CNTT
Bộ điều khiển được vi chương trình (2)
Cấu trúc bộ điều khiển bằng vi chương trình:
- Một bộ đếm vi chương trình
- Một bộ nhớ vi chương trình
- Thanh ghi vi lệnh Nguyên tắc hoạt động (hình 6.6 trang 174, hình 6.7 trang 177)
14 Nguyễn Thị Mỹ Dung – Khoa CNTT
Đơn vị điều khiển CU (3)
b/ Bộ điều khiển dùng mạch điện tử (mạch
logic ngẫu nhiên) Cách tiếp cận để xây dựng một đơn vị điều khiển khác là tìm ra một chuỗi các phép toán logic và
số học cần thiết cho việc thực hiện một lệnh rồi thiết
kế mạch logic thích hợp để thực hiện các chuỗi này
Lúc đó ta có đơn vị điều khiển được xây dựng bằng các mạch logic ngẫu nhiên hay đơn vị điều khiển logic ngẫu nhiên
15 Nguyễn Thị Mỹ Dung – Khoa CNTT
II Các bộ xử lý RISC 1/ Kiến trúc RISC
- Tập lệnh với kiến trúc rút gọn
- Có ít lệnh (<100 lệnh)
- Có ít định dạng lệnh, các dạng có chiều dài cố định và bằng nhau (32bit)
- Có ít kiểu định vị
- Có ít lệnh hỗ trợ ngôn ngữ cấp cao
- Chỉ có 1 cách thi hành lệnh REG – REG
- Tiết kiệm thời gian chỉ có các lệnh r/w mới cho phép thâm nhập bộ nhớ
- Dùng bộ điều khiển bằng mạch logic ngẫu nhiên, khó sửa đổi
16 Nguyễn Thị Mỹ Dung – Khoa CNTT
RISC (2)
- Cho phép thi hành ngay một lệnh máy bằng mạch điện tử chỉ trong một chu kỳ máy
- Có diện tích nhỏ
- Tốc độ thi hành lệnh nhanh nhờ kỹ thuật ống dẫn
- Các lệnh được thi hành trong cùng khoảng thời gian như nhau
Một số ưu điểm và nhược điểm đối với kiến trúc RISC:
Trang 517 Nguyễn Thị Mỹ Dung – Khoa CNTT
Ưu điểm
- Diện tích của BXL dùng cho bộ điều khiển giảm từ 60% xuống còn 10% Như vậy, có thể tích hợp thêm vào bên trong BXL 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, và nhờ thực hiện kỹ thuật ống dẫn liên tục và có hiệu quả
- Thời gian cần thiết để thiết bộ điều khiển là ít
Điều này góp phần làm giảm chi phí thiết kế
- Bộ điều khiển đơn giản và gọn làm cho ít rủi ro
và ít sai sót
18 Nguyễn Thị Mỹ Dung – Khoa CNTT
Nhược điểm
- Cấm thâm nhập bộ nhớ đối với tất cả các lệnh ngoại trừ các lệnh đọc và ghi vào bộ nhớ Do đó ta buộc phải dùng nhiều lệnh để làm một công việc nhất định
- Cần thiết phải tính các địa chỉ hiệu dụng vì không có nhiều cách định vị
- Tập lệnh có ít lệnh nên các lệnh không có sẵn phải được thay thế bằng một chuỗi lệnh của bộ xử lý RISC
- Các chương trình dịch gặp nhiều khó khăn vì
có ít lệnh
- Có ít lệnh trợ giúp cho ngôn ngữ cấp cao
19 Nguyễn Thị Mỹ Dung – Khoa CNTT
- RISC loại có tập lệnh rút gọn
- Mạch điều khiển bằng mạch điện
- Gồm một tập ít lệnh có cấu trúc đơn giản
- Khi thực hiện được một lệnh máy không cần giải mã
mà có thể thực hiện ngay một số lệnh bằng mạch logic
- Loại này thích hợp cho các bộ xử lý dùng kỹ thuật ống dẫn
- CISC loại có tập lệnh phức tạp
- Mạch điều khiển bằng vi chương trình
- Gồm một tập nhiều lệnh
có cấu trúc phức tạp
- Muốn thực hiện được một lệnh máy phải giải mã ra thành các vi lệnh
- Loại này thích hợp cho các bộ xử lý có tốc độ truy cập bộ nhớ còn chậm
RISC CISC
20 Nguyễn Thị Mỹ Dung – Khoa CNTT
RISC (3)
1 Các đặc điểm của kiến trúc RISC
- Cần có đủ số thanh ghi để khắc phục hiệu ứng nghẽn cổ chai
- Vì các lệnh trong nhóm 2 (call, return…) thường xảy ra nên một kiến trúc hiệu dụng cần tạo sự dự phòng cho việc chuyển hiệu quả các tham số giữa các thủ tục
- Các lệnh phức tạp làm tăng thời gian thiết kế, sản xuất và thử nghiệm
- Nếu một bộ xử lý RISC đủ nhanh thì nó phải chạy được một lệnh trong một chu kỳ máy Điều này cũng có nghĩa là sự phức tạp của các lệnh phải có giới hạn của chúng
Trang 621 Nguyễn Thị Mỹ Dung – Khoa CNTT
Các đặc điểm của RISC (2)
- Kết quả tất yếu suy ra từ điều trên là một kiến trúc có hiệu quả không nên dùng bộ điều khiển bằng
vi chương trình
- Bộ xử lý hiệu quả phải có một định dạng lệnh đơn Khi đó việc giải mã lệnh có thể được thực hiện bằng mạch điện tử đơn giản hơn
- Để giảm thời gian chạy lệnh, các lệnh dài có liên quan tới các vi xử lý thế hệ 1 và 2 cần phải bỏ đi
22 Nguyễn Thị Mỹ Dung – Khoa CNTT
RISC (4)
2 Kỹ thuật đường ống (Pipeline)
Đây 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
Một lệnh được thực hiện trong 5 giai đoạn và mỗi giai đoạn được thực hiện trong một chu kỳ xung nhịp Các giai đoạn thực hiện: lấy lệnh (fetch operation); giải mã (DE: decode); thi hành (EX:
excute); thâm nhập bộ nhớ (MEM: memory access);
lưu trữ kết quả (RS: result storing)
23 Nguyễn Thị Mỹ Dung – Khoa CNTT
Kỹ thuật đường ống (tt)
Như vậy, kỹ thuật ống dẫn làm tăng tốc độ thực hiện các lệnh Tuy nhiên kỹ thuật ống dẫn cần có một
số ràng buộc:
24 Nguyễn Thị Mỹ Dung – Khoa CNTT
Kỹ thuật đường ống (2)
- Cần có một mạch điện để thi hành mỗi giai đoạn của lệnh vì tất cả các giai đoạn của lệnh được thi hành cùng lúc
- Phải có nhiều thanh ghi khác nhau cho các tác
vụ đọc và viết
- Cần giải mã các lệnh một cách đơn giản để có thể giải mã và đọc các toán hạng trong một chu kỳ duy nhất của xung nhịp
- Cần phải có các bộ làm tính ALU hữu hiệu để
có thể thi hành lệnh số học dài nhất, có số nhớ, trong khoảng thời gian ít hơn một chu kỳ xung nhịp
Trang 725 Nguyễn Thị Mỹ Dung – Khoa CNTT
Kỹ thuật đường ống (3)
- Cần phải có nhiều thanh ghi lệnh để lưu giữ lệnh mà chúng ta phải xem xét trong mỗi giai đoạn thi hành lệnh
- Cần phải có nhiều thanh ghi bộ đếm chương trình PC để có thể tái tục các lệnh trong trường hợp
có ngắt quãng
26 Nguyễn Thị Mỹ Dung – Khoa CNTT
RISC (5)
3 Khó khăn trong kỹ thuật đường ống
Kỹ thuật đường ống gặp một trở ngại mà các nhà thiết kế hệ thống phải để ý đến là các “bọt nước”
do gặp lệnh nhảy và tính phụ thuộc của các dữ liệu
Ta phân biệt 3 loại khó khăn sau:
- Khó khăn do thiếu mạch chức năng (vì một lệnh dùng nhiều kết quả của lệnh liền trước)
- Khó khăn do số liệu
- Khó khăn do điều khiển
27 Nguyễn Thị Mỹ Dung – Khoa CNTT
RISC (6)
4 Phương pháp khắc phục khó khăn
- Thêm các mạch chức năng.
- 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ô một trong các thanh ghi ngã vào.
- Sử dụng kỹ thuật tiến trước một bước (Internal Forward).
+ Cách 1: đó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 nột chu kỳ cho một lệnh nhảy).
+ Cách 2: thi hành lệnh sau lệnh nhảy nhưng lưu ý rằng hiệu quả của lệnh này 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 nhảy đến địa chỉ khác (do chương trình dịch hoặc người lập trình làm).
28 Nguyễn Thị Mỹ Dung – Khoa CNTT
III Ngắt quãng
Ngắt là một sự kiện xảy ra một cách ngẫu nhiên, đột ngột trong máy tính và làm ngưng tính tuần
tự của chương trình (nghĩa là tạo ra lệnh nhảy)
* Khi có m ột ngắt xảy ra bộ xử lý thi hành các giai đoạn sau:
- Thực hiện xong lệnh đang làm
- Lưu trữ trạng thái hiện tại
- Nhảy đến chương trình phục vụ ngắt
- Khi chương trình phục vụ ngắt chấm dứt, bộ xử lý khôi phục lại trạng thái cũ của nó và tiếp tục thực hiện các lệnh tiếp theo của chương trình chính
Trang 829 Nguyễn Thị Mỹ Dung – Khoa CNTT
Ngắt quảng (tt)
* Có các lo ại ngắt:
- Ngắt cứng : ngắt xuất phát từ phần cứng + Ngắt không che NMI (Non Maskle Interrupt):
ngắt ưu tiên cao nhất trong CPU để báo sự cố mất điện đột ngột
+ Ngắt có thể che được: có thể vô hiệu hoá bằng lệnh máy xoá cờ ngắt
- Ngắt mềm : ngắt xuất phát từ phần mềm
- Ngắt nội bộ (ngắt ngoại lệ): ngắt nội bộ bên trong bộ
xử lý
30 Nguyễn Thị Mỹ Dung – Khoa CNTT
Ngắt quảng (tt)
* Ng ắt được dùng cho các công việc sau:
- Ngoại vi đòi hỏi nhập/ xuất số liệu.
- Người lập trình muốn dùng dịch vụ của hệ điều hành.
- Cho một chương trình chạy từng lệnh.
- Làm điểm dừng của một chương trình.
- Báo tràn số liệu trong tính toán số học.
- Trang bộ nhớ thực sự không có trong bộ nhớ
- Báo vi phạm vùng cấm của bộ nhớ.
- Báo dùng một lệnh không có trong tập lệnh.
- Báo phần cứng máy tính bị hư.
- Báo điện bị cắt.
31 Nguyễn Thị Mỹ Dung – Khoa CNTT
IV Máy tính có lệnh rất dài (VLIW)
- 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 VLIW đượ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 bít
- 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
32 Nguyễn Thị Mỹ Dung – Khoa CNTT
V Máy tính Vectơ
- Bao gồm một bộ tính toán vô hướng bình thường dùng kỹ thuật ống dẫn và một bộ làm tính vectơ
- Bộ tính toán vô hướng, giống như bộ xử lý dùng
kỹ thuật ống dẫn, thực hiện các phép tính vô hướng, còn
bộ làm tính vectơ thực hiện các phép tính vectơ
- Đa số các máy tính vectơ cho phép làm các phép tính trên vectơ số nguyên, vectơ số lẻ và vectơ số logic
- Có 2 kiểu kiến trúc máy tính vectơ: kiểu vectơ
ô nhớ - ô nhớ và kiểu thanh ghi vectơ
- Kiến trúc kiểu thanh ghi vectơ được thực hiện trong các siêu máy tính
Trang 933 Nguyễn Thị Mỹ Dung – Khoa CNTT
VI Máy tính song song
- Trong các máy tính siêu ống dẫn, siêu vô hướng, máy tính vectơ, máy tính VLIW, người ta sử dụng tính thực hiện song song ở các mức độ khác nhau để làm tăng tính hiệu quả.
- Các máy tính song song có thể sắp xếp vào 4 loại sau:
1 - SISD (Single Instructions Stream, Single Data Stream):
Máy tính một dòng lệnh, một dòng số liệu.
2 - SIMD (Single Instructions Stream, Multiple Data Stream): Máy tính một dòng lệnh, nhiều dòng số liệu.
3 - MISD (Multiple Instructions Stream, Single Data Stream):Máy tính nhiều dòng lệnh, một dòng số liệu.
4 - MIMD (Multiple Instruction Stream, Multiple Data Stream): Máy tính nhiều dòng lệnh, nhiều dòng số liệu.
34 Nguyễn Thị Mỹ Dung – Khoa CNTT
VII 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 (Hewlett Packard) và một số trường đại học
- 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.
35 Nguyễn Thị Mỹ Dung – Khoa CNTT
Kiến trúc IA-64 (tt)
* Đặc điểm kiến trúc IA-64
- Cơ chế xử lý song song là song song các lệnh
mã máy (EPIC) thay vì các bộ xử lý song song như
hệ thống đa bộ 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)
36 Nguyễn Thị Mỹ Dung – Khoa CNTT