Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Hệ thống máy tính

Nội dung học phần

Chương 4 KIẾN TRÚC BỘ XỬ LÝ

(cid:132) Chương 1. Giới thiệu chung (cid:132) Chương 2. Kiến trúc bộ nhớ (cid:132) Chương 3. Kiến trúc vào-ra (cid:132) Chương 4. Kiến trúc bộ xử lý (cid:132) Chương 5. Kiến trúc máy tính tiên tiến

Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội

NKK-HUT

NKK-HUT

8 September 2009 1 8 September 2009 2

4.1. Cấu trúc cơ bản của CPU

Nội dung

1. Nhiệm vụ và cấu trúc của CPU

(cid:132) Nhiệm vụ của CPU:

(cid:132) Nhận lệnh (Fetch Instruction): CPU đọc lệnh từ bộ

nhớ.

(cid:132) Giải mã lệnh (Decode Instruction): xác định thao tác

mà lệnh yêu cầu.

(cid:132) Nhận dữ liệu (Fetch Data): nhận dữ liệu từ bộ nhớ

hoặc các cổng vào-ra.

4.1. Cấu trúc cơ bản của CPU 4.2. Tập lệnh 4.3. Hoạt động của CPU 4.4. Kỹ thuật đường ống lệnh 4.5. Các kiến trúc song song mức lệnh 4.6. Một số kiến trúc thông dụng

(cid:132) 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.

(cid:132) Ghi dữ liệu (Write Data): ghi dữ liệu ra bộ nhớ hay

cổng vào-ra

4 8 September 2009 3 8 September 2009

Nguyễn Kim Khánh - ĐHBKHN

1

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Sơ đồ cấu trúc cơ bản của CPU

Các thành phần cơ bản của CPU

(cid:132) Đơn vị điều khiển (Control Unit - CU)

(cid:132) Đơn vị số học và logic (Arithmetic and

Logic Unit - ALU)

(cid:132) Tập thanh ghi (Register File - RF)

(cid:132) Đơn vị nối ghép bus (Bus Interface Unit -

BIU)

(cid:132) Bus bên trong (Internal Bus)

NKK-HUT

NKK-HUT

8 September 2009 5 8 September 2009 6

2. Đơn vị số học và logic

Mô hình kết nối ALU

(cid:132) Chức năng: Thực hiện các phép toán

số học và phép toán logic: (cid:132) Số học: cộng, trừ, nhân, chia, tăng, giảm,

đảo dấu

(cid:132) Logic: AND, OR, XOR, NOT, phép dịch bit.

8 8 September 2009 7 8 September 2009

Nguyễn Kim Khánh - ĐHBKHN

2

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Mô hình kết nối đơn vị điều khiển

3. Đơn vị điều khiển

(cid:132) Chức năng

(cid:132) Điều khiển nhận lệnh từ bộ nhớ đưa vào

thanh ghi lệnh

(cid:132) Tăng nội dung của PC để trỏ sang lệnh kế

tiếp

(cid:132) Giải mã lệnh đã được nhận để xác định thao

tác mà lệnh yêu cầu

(cid:132) Phát ra các tín hiệu điều khiển thực hiện lệnh (cid:132) 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 đó.

NKK-HUT

NKK-HUT

8 September 2009 9 8 September 2009 10

Các tín hiệu đưa đến đơn vị điều khiển

Các tín hiệu phát ra từ đơn vị điều khiển

(cid:132) Các tín hiệu điều khiển bên trong CPU:

(cid:132) Clock: tín hiệu nhịp từ mạch tạo dao

động bên ngoài.

(cid:132) Điều khiển các thanh ghi (cid:132) Điều khiển ALU

(cid:132) Mã lệnh từ thanh ghi lệnh đưa đến để

(cid:132) Các tín hiệu điều khiển bên ngoài CPU:

giải mã.

(cid:132) Các cờ từ thanh ghi cờ cho biết trạng

(cid:132) Điều khiển bộ nhớ (cid:132) Điều khiển các mô-đun vào-ra

thái của CPU.

(cid:132) Các tín hiệu yêu cầu từ bus điều khiển

8 September 2009 11 8 September 2009 12

Nguyễn Kim Khánh - ĐHBKHN

3

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Đơn vị điều khiển vi chương trình

Các phương pháp thiết kế đơn vị điều khiển

(cid:132) Đơn vị điều khiển vi chương trình (Microprogrammed Control Unit)

(cid:132) Đơn vị điều khiển nối kết cứng

(Hardwired Control Unit)

NKK-HUT

NKK-HUT

8 September 2009 13 8 September 2009 14

Đơn vị điều khiển vi chương trình (tiếp)

Đơn vị điều khiển nối kết cứng

(cid:132) Bộ nhớ vi chương trình (ROM) lưu trữ các vi chương trình (microprogram) (cid:132) Một vi chương trình bao gồm các vi

lệnh (microinstruction)

(cid:132) Mỗi vi lệnh mã hoá cho một vi thao tác

(microoperation)

(cid:132) Để hoàn thành một lệnh cần thực hiện

một hoặc một vài vi chương trình

(cid:132) Tốc độ chậm

8 September 2009 15 8 September 2009 16

Nguyễn Kim Khánh - ĐHBKHN

4

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Đơn vị điều khiển nối kết cứng (tiếp)

4.Tập thanh ghi

(cid:132) Chức năng và đặc điểm:

(cid:132) Sử dụng mạch cứng để giải mã và tạo các tín hiệu điều khiển thực hiện lệnh

(cid:132) 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 (cid:132) Được coi là mức đầu tiên của hệ thống nhớ (cid:132) Số lượng thanh ghi nhiều (cid:198) tăng hiệu năng

(cid:132) Tốc độ nhanh (cid:132) Đơn vị điều khiển phức tạp

của CPU

(cid:132) Có hai loại thanh ghi:

(cid:132) Các thanh ghi lập trình được (cid:132) Các thanh ghi không lập trình được

NKK-HUT

NKK-HUT

8 September 2009 17 8 September 2009 18

Phân loại thanh ghi theo chức năng

Một số thanh ghi điển hình

(cid:132) Thanh ghi địa chỉ: quản lý địa chỉ của ngăn

(cid:132) Các thanh ghi địa chỉ

nhớ hay cổng vào-ra.

(cid:132) Thanh ghi dữ liệu: chứa tạm thời các dữ

liệu.

(cid:132) Thanh ghi đa năng: có thể chứa địa chỉ

hoặc dữ liệu.

(cid:132) Bộ đếm chương trình PC (Program Counter) (cid:132) Con trỏ dữ liệu DP (Data Pointer) (cid:132) Con trỏ ngăn xếp SP (Stack Pointer) (cid:132) Thanh ghi cơ sở và thanh ghi chỉ số (Base Register & Index Register)

(cid:132) Thanh ghi điều khiển/trạng thái: chứa các

(cid:132) Các thanh ghi dữ liệu (cid:132) Thanh ghi trạng thái

thông tin điều khiển và trạng thái của CPU. (cid:132) Thanh ghi lệnh: chứa lệnh đang được thực

hiện.

8 September 2009 19 8 September 2009 20

Nguyễn Kim Khánh - ĐHBKHN

5

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Bộ đếm chương trình PC

Minh họa bộ đếm chương trình

(cid:132) Còn được gọi là con trỏ lệnh IP

(Instruction Pointer)

(cid:132) Giữ địa chỉ của lệnh tiếp theo sẽ được

nhận vào.

(cid:132) Sau khi một lệnh được nhận vào, nội

dung PC tự động tăng để trỏ sang lệnh kế tiếp.

NKK-HUT

NKK-HUT

8 September 2009 21 8 September 2009 22

Thanh ghi con trỏ dữ liệu

Minh hoạ thanh ghi con trỏ dữ liệu

(cid:132) Chứa địa chỉ của ngăn nhớ dữ liệu mà

CPU muốn truy nhập

(cid:132) Thường có một số thanh ghi con trỏ dữ

liệu

8 September 2009 23 8 September 2009 24

Nguyễn Kim Khánh - ĐHBKHN

6

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Ngăn xếp (Stack)

Con trỏ ngăn xếp SP (Stack Pointer)

(cid:132) Ngăn xếp là vùng nhớ có cấu trúc LIFO

(cid:132) Chứa địa chỉ của ngăn nhớ đỉnh ngăn xếp (cid:132) Khi cất một thông tin vào ngăn xếp:

(Last In - First Out)

(cid:132) Ngăn xếp thường dùng để phục vụ cho

(cid:132) Nội dung của SP tự động giảm (cid:132) Thông tin được cất vào ngăn nhớ được trỏ

bởi SP

chương trình con

(cid:132) Khi lấy một thông tin ra khỏi ngăn xếp:

(cid:132) Thông tin được đọc từ ngăn nhớ được trỏ bởi

(cid:132) Đáy ngăn xếp là một ngăn nhớ xác định (cid:132) Đỉnh ngăn xếp là thông tin nằm ở vị trí

SP

trên cùng trong ngăn xếp

(cid:132) Nội dung của SP tự động tăng

(cid:132) Đỉnh ngăn xếp có thể bị thay đổi

(cid:132) Khi ngăn xếp rỗng, SP trỏ vào đáy

NKK-HUT

NKK-HUT

8 September 2009 25 8 September 2009 26

Minh họa con trỏ ngăn xếp SP

Thanh ghi cơ sở và thanh ghi chỉ số

(cid:132) Thanh ghi cơ sở: chứa địa chỉ của ngăn

nhớ cơ sở (địa chỉ cơ sở)

(cid:132) Thanh ghi chỉ số: chứa độ lệch địa chỉ giữa ngăn nhớ mà CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)

(cid:132) Địa chỉ của ngăn nhớ cần truy nhập =

địa chỉ cơ sở + chỉ số

8 September 2009 27 8 September 2009 28

Nguyễn Kim Khánh - ĐHBKHN

7

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Các thanh ghi dữ liệu

Minh họa thanh ghi cơ sở và thanh ghi chỉ số

(cid:132) Chứa các dữ liệu tạm thời hoặc các kết

quả trung gian

(cid:132) Cần có nhiều thanh ghi dữ liệu (cid:132) Các thanh ghi số nguyên: 8, 16, 32, 64

bit

(cid:132) Các thanh ghi số dấu phẩy động

NKK-HUT

NKK-HUT

8 September 2009 29 8 September 2009 30

Thanh ghi trạng thái (Status Register)

Ví dụ cờ phép toán

(cid:132) Cờ Zero (cờ rỗng): được thiết lập lên 1 khi

kết quả của phép toán bằng 0.

(cid:132) Cờ Sign (cờ dấu): được thiết lập lên 1 khi kết

quả phép toán nhỏ hơn 0

(cid:132) Còn gọi là thanh ghi cờ (Flag Register) (cid:132) Chứa các thông tin trạng thái của CPU (cid:132) Các cờ phép toán: báo hiệu trạng thái của

(cid:132) Cờ Carry (cờ nhớ): được thiết lập lên 1 nếu

kết quả phép toán

(cid:132) Các cờ điều khiển: biểu thị trạng thái điều

phép toán có nhớ ra ngoài bit cao nhất (cid:198) cờ báo tràn với số không dấu.

khiển của CPU

(cid:132) Cờ Overflow (cờ tràn): được thiết lập lên 1

nếu cộng hai số nguyên cùng dấu mà kết quả có dấu ngược lại (cid:198) cờ báo tràn với số có dấu .

8 September 2009 31 8 September 2009 32

Nguyễn Kim Khánh - ĐHBKHN

8

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Ví dụ cờ điều khiển

4.2. Tập lệnh

1. Giới thiệu chung về tập lệnh

(cid:132) Cờ Interrupt (Cờ cho phép ngắt):

(cid:132) Nếu IF = 1 (cid:198) CPU ở trạng thái cho phép

(cid:132) Mỗi bộ xử lý có một tập lệnh xác định (cid:132) Tập lệnh thường có hàng chục đến hàng

trăm lệnh

ngắt với tín hiệu yêu cầu ngắt từ bên ngoài gửi tới

(cid:132) Mỗi lệnh là một chuỗi số nhị phân mà bộ xử lý hiểu được để thực hiện một thao tác xác định.

(cid:132) Nếu IF = 0 (cid:198) CPU ở trạng thái cấm ngắt với tín hiệu yêu cầu ngắt từ bên ngoài gửi tới

(cid:132) Các lệnh được mô tả bằng các ký hiệu gợi

nhớ (cid:198) chính là các lệnh của hợp ngữ

NKK-HUT

NKK-HUT

8 September 2009 33 8 September 2009 34

Các thành phần của lệnh máy

Số lượng địa chỉ toán hạng trong lệnh (1)

(cid:132) Ba địa chỉ toán hạng:

(cid:132) Mã thao tác (operation code (cid:198) opcode):

(cid:132) 2 toán hạng nguồn, 1 toán hạng đích (cid:132) c = a + b (cid:132) Từ lệnh dài vì phải mã hoá địa chỉ cho cả

ba toán hạng

mã hóa cho thao tác mà bộ xử lý phải thực hiện

(cid:132) Được sử dụng trên các bộ xử lý tiên tiến

(cid:132) Địa chỉ toán hạng: chỉ ra nơi chứa các toán

hạng mà thao tác sẽ tác động (cid:132) Toán hạng nguồn: dữ liệu vào của thao tác (cid:132) Toán hạng đích: dữ liệu ra của thao tác

8 September 2009 35 8 September 2009 36

Nguyễn Kim Khánh - ĐHBKHN

9

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Số lượng địa chỉ toán hạng trong lệnh (2)

Số lượng địa chỉ toán hạng trong lệnh (3)

(cid:132) Hai địa chỉ toán hạng:

(cid:132) Một địa chỉ toán hạng:

(cid:132) Một toán hạng vừa là toán hạng nguồn

(cid:132) Một toán hạng được chỉ ra trong lệnh (cid:132) Một toán hạng là ngầm định (cid:198) thường là

vừa là toán hạng đích; toán hạng còn lại là toán hạng nguồn

thanh ghi (thanh chứa –accumulator)

(cid:132) Được sử dụng trên các máy ở các thế hệ

(cid:132) a = a + b (cid:132) Giá trị cũ của 1 toán hạng nguồn bị mất vì

trước

phải chứa kết quả

(cid:132) Rút gọn độ dài từ lệnh (cid:132) Phổ biến

NKK-HUT

NKK-HUT

8 September 2009 37 8 September 2009 38

Số lượng địa chỉ toán hạng trong lệnh (4)

Đánh giá về số địa chỉ toán hạng

(cid:132) 0 địa chỉ toán hạng:

(cid:132) Nhiều địa chỉ toán hạng (cid:132) Các lệnh phức tạp hơn (cid:132) Cần nhiều thanh ghi (cid:132) Chương trình có ít lệnh hơn (cid:132) Nhận lệnh và thực hiện lệnh chậm hơn

(cid:132) Ít địa chỉ toán hạng

(cid:132) Các toán hạng đều được ngầm định (cid:132) Sử dụng Stack (cid:132) Ví dụ: push a push b add pop c có nghĩa là : c = a+b (cid:132) không thông dụng

(cid:132) Các lệnh đơn giản hơn (cid:132) Cần ít thanh ghi (cid:132) Chương trình có nhiều lệnh hơn (cid:132) Nhận lệnh và thực hiện lệnh nhanh hơn

8 September 2009 39 8 September 2009 40

Nguyễn Kim Khánh - ĐHBKHN

10

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Các vấn đề của thiết kế tập lệnh (1)

Các vấn đề của thiết kế tập lệnh (2)

(cid:132) Các thanh ghi

(cid:132) Về thao tác

(cid:132) Số thanh ghi của CPU được sử dụng (cid:132) Các thao tác nào được thực hiện trên các

thanh ghi ?

(cid:132) Bao nhiêu thao tác ? (cid:132) Các thao tác nào ? (cid:132) Mức độ phức tạp của các thao tác ?

(cid:132) Các phương pháp định địa chỉ (xét sau)

(addressing modes)

(cid:132) Các kiểu dữ liệu (cid:132) Các khuôn dạng lệnh

(cid:132) Độ dài của trường mã thao tác (cid:132) Số lượng địa chỉ toán hạng

NKK-HUT

NKK-HUT

8 September 2009 41 8 September 2009 42

RISC

Các đặc trưng của RISC

(cid:132) CISC và RISC

(cid:132) CISC(cid:198)Complex Instruction Set Computer:

(cid:132) Số lượng lệnh ít (cid:132) Hầu hết các lệnh truy nhập toán hạng ở

các thanh ghi

(cid:132) Máy tính với tập lệnh phức tạp (cid:132) Các bộ xử lý truyền thống: x86, 680x0

(cid:132) Truy nhập bộ nhớ bằng các lệnh

(cid:132) RISC(cid:198)Reduced Instruction Set Computer:

LOAD/STORE

(cid:132) Thời gian thực hiện lệnh là một chu kỳ

máy

(cid:132) Máy tính với tập lệnh thu gọn (cid:132) SunSPARC, Power PC, MIPS, ARM, … (cid:132) RISC đối nghịch với CISC

(cid:132) Các lệnh có độ dài cố định (32 bit)

8 September 2009 43 8 September 2009 44

Nguyễn Kim Khánh - ĐHBKHN

11

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Các đặc trưng của RISC (tiếp)

2. Các kiểu thao tác cơ bản

(cid:132) Số lượng khuôn dạng lệnh là ít (<=4) (cid:132) CPU có tập thanh ghi lớn (cid:132) Có ít mode địa chỉ (<=4) (cid:132) Hỗ trợ các thao tác của ngôn ngữ bậc

cao

(cid:132) Đều được thiết kế kiểu pipeline lệnh

(cid:132) Chuyển dữ liệu (cid:132) Xử lý số học với số nguyên (cid:132) Xử lý logic (cid:132) Điều khiển vào-ra (cid:132) Chuyển điều khiển (rẽ nhánh) (cid:132) Điều khiển hệ thống

NKK-HUT

NKK-HUT

8 September 2009 45 8 September 2009 46

Các lệnh chuyển dữ liệu

Các lệnh số học

Cộng hai toán hạng

(cid:132) ADD

Trừ hai toán hạng

(cid:132) SUBTRACT

Nhân hai toán hạng

Copy dữ liệu từ nguồn đến đích Nạp dữ liệu từ bộ nhớ đến bộ xử lý Cất dữ liệu từ bộ xử lý đến bộ nhớ

(cid:132) MULTIPLY

Chia hai toán hạng

(cid:132) DIVIDE

Lấy trị tuyệt đối toán hạng

(cid:132) ABSOLUTE

Đổi dấu toán hạng (lấy bù 2)

(cid:132) NEGATE

Tăng toán hạng thêm 1

(cid:132) INCREMENT

Giảm toán hạng đi 1

Trừ hai toán hạng để lập cờ

(cid:132) DECREMENT (cid:132) MOVE (cid:132) LOAD (cid:132) STORE (cid:132) EXCHANGE Trao đổi nội dung của nguồn và đích (cid:132) CLEAR Chuyển các bit 0 vào toán hạng đích (cid:132) SET Chuyển các bit 1 vào toán hạng đích (cid:132) PUSH Cất nội dung toán hạng nguồn vào ngăn xếp (cid:132) POP Lấy nội dung đỉnh ngăn xếp đưa đến toán hạng đích (cid:132) COMPARE

8 September 2009 47 8 September 2009 48

Nguyễn Kim Khánh - ĐHBKHN

12

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Các lệnh logic

Minh hoạ các lệnh AND, OR, XOR

Thực hiện phép AND hai toán hạng

(cid:132) AND

Thực hiện phép OR hai toán hạng

(cid:132) Giả sử có hai thanh ghi chứa dữ liệu như sau: = =

(R1) (R2)

(cid:132) OR

Thực hiện phép XOR hai toán hạng

1010 1010 0000 1111 (cid:132) R1 (cid:197) (R1) AND (R2) = 0000 1010

(cid:132) XOR

Đảo bit của toán hạng (lấy bù 1)

(cid:132) NOT

Phép toán AND dùng để xoá một số bit và giữ nguyên một số bit còn lại của toán hạng.

Thực hiện phép AND hai toán hạng để lập cờ

(cid:132) R1 (cid:197) (R1) OR (R2) =

1010 1111

Phép toán OR dùng để thiết lập một số bit và giữ nguyên một số bit còn lại của toán hạng.

(cid:132) R1 (cid:197) (R1) XOR (R2) = 1010 0101

Phép toán XOR dùng để đảo một số bit và giữ nguyên một số bit còn lại của toán hạng.

(cid:132) TEST

NKK-HUT

NKK-HUT

8 September 2009 49 8 September 2009 50

Các lệnh logic (tiếp)

Các thao tác SHIFT và ROTATE

SHIFT Dịch trái (phải) toán hạng ROTATE Quay trái (phải) toán hạng

8 September 2009 51 8 September 2009 52

Nguyễn Kim Khánh - ĐHBKHN

13

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Các lệnh vào ra chuyên dụng

Các lệnh chuyển điều khiển

(cid:132) JUMP (BRANCH) Lệnh nhảy không điều kiện:

(cid:132) nạp vào PC một địa chỉ xác định

(cid:132) INPUT Copy dữ liệu từ một cổng xác định đưa đến đích

(cid:132) OUTPUT Copy dữ liệu từ nguồn đến

một cổng xác định

(cid:132) JUMP CONDITIONAL Lệnh nhảy có điều kiện: (cid:132) điều kiện đúng (cid:198) nạp vào PC một địa chỉ xác định (cid:132) điều kiện sai (cid:198) không làm gì cả (cid:132) CALL Lệnh gọi chương trình con:

(cid:132) Cất nội dung của PC (địa chỉ trở về) ra một vị trí xác

định (thường ở Stack)

(cid:132) Nạp vào PC địa chỉ của lệnh đầu tiên của chương trình

con

(cid:132) RETURN Lệnh trở về từ chương trình con: (cid:132) Khôi phục địa chỉ trở về trả lại cho PC để trở về

chương trình chính

NKK-HUT

NKK-HUT

8 September 2009 53 8 September 2009 54

Lệnh rẽ nhánh không điều kiện

Lệnh rẽ nhánh có điều kiện

(cid:132) Trong lệnh có kèm theo điều kiện (cid:132) Kiểm tra điều kiện trong lệnh:

(cid:132) Chuyển tới thực hiện lệnh ở vị trí có địa chỉ XXX:

(cid:132) Nếu điều kiện đúng (cid:198) chuyển tới thực hiện

PC (cid:197) XXX

lệnh ở vị trí có địa chỉ XXX PC (cid:197) XXX

(cid:132) Nếu điều kiện sai (cid:198) chuyển sang thực hiện

lệnh_kế_tiếp

(cid:132) Điều kiện thường được kiểm tra thông

qua các cờ

(cid:132) Có nhiều lệnh rẽ nhánh có điều kiện

8 September 2009 55 8 September 2009 56

Nguyễn Kim Khánh - ĐHBKHN

14

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Minh hoạ lệnh rẽ nhánh có điều kiện

Lệnh CALL và RETURN

(cid:132) Lệnh gọi chương trình con: lệnh CALL

(cid:132) Cất nội dung PC (chứa địa chỉ của lệnh_kế_tiếp) ra

Stack

(cid:132) Nạp vào PC địa chỉ của lệnh đầu tiên của chương

trình con được gọi

(cid:198) Bộ xử lý được chuyển sang thực hiện chương trình

con tương ứng

(cid:132) Lệnh trở về từ chương trình con: lệnh RETURN (cid:132) Lấy địa chỉ của lệnh_kế_tiếp được cất ở Stack nạp trả lại cho PC (cid:198) Bộ xử lý được điều khiển quay trở về thực hiện tiếp lệnh nằm sau lệnh CALL

NKK-HUT

NKK-HUT

8 September 2009 57 8 September 2009 58

Minh hoạ lệnh CALL và RETURN

Gọi các thủ tục lồng nhau

8 September 2009 59 8 September 2009 60

Nguyễn Kim Khánh - ĐHBKHN

15

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Sử dụng Stack

Các lệnh điều khiển hệ thống

(cid:132) HALT Dừng thực hiện chương trình (cid:132) WAIT Tạm dừng thực hiện chương trình,

lặp kiểm tra điều kiện cho đến khi thoả mãn thì tiếp tục thực hiện

(cid:132) NO OPERATION Không thực hiện gì cả (cid:132) LOCK

Cấm không cho xin chuyển nhượng bus

(cid:132) UNLOCK Cho phép xin chuyển nhượng bus

NKK-HUT

NKK-HUT

8 September 2009 61 8 September 2009 62

Các phương pháp định địa chỉ thông dụng

3. Các phương pháp định địa chỉ (addressing modes)

Khái niệm về định địa chỉ (addressing) (cid:132) Toán hạng của lệnh có thể là:

(cid:132) Một giá trị cụ thể nằm ngay trong lệnh (cid:132) Nội dung của thanh ghi (cid:132) Nội dung của ngăn nhớ hoặc cổng vào-ra (cid:132) Phương pháp định địa chỉ là cách thức

(cid:132) Định địa chỉ tức thì (cid:132) Định địa chỉ thanh ghi (cid:132) Định địa chỉ trực tiếp (cid:132) Định địa chỉ gián tiếp qua thanh ghi (cid:132) Định địa chỉ gián tiếp (cid:132) Định địa chỉ dịch chuyển

địa chỉ hóa trong trường địa chỉ của lệnh để xác định nơi chứa toán hạng

8 September 2009 63 8 September 2009 64

Nguyễn Kim Khánh - ĐHBKHN

16

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Định địa chỉ tức thì

Sơ đồ định địa chỉ tức thì

(cid:132) Toán hạng nằm ngay trong Trường địa

chỉ của lệnh

(cid:132) Chỉ có thể là toán hạng nguồn (cid:132) Ví dụ:

ADD R1, 5

; R1(cid:197) R1+5

(cid:132) Không tham chiếu bộ nhớ (cid:132) Truy nhập toán hạng rất nhanh (cid:132) Dải giá trị của toán hạng bị hạn chế

NKK-HUT

NKK-HUT

8 September 2009 65 8 September 2009 66

Sơ đồ định địa chỉ thanh ghi

Định địa chỉ thanh ghi

(cid:132) Toán hạng được chứa trong thanh ghi có

tên trong Trường địa chỉ

(cid:132) Ví dụ:

ADD R1, R2

; R1(cid:197) R1+R2

(cid:132) Số lượng thanh ghi ít (cid:198) Trường địa chỉ

chỉ cần ít bit

(cid:132) Không tham chiếu bộ nhớ (cid:132) Truy nhập toán hạng nhanh (cid:132) Tăng số lượng thanh ghi (cid:198) hiệu quả hơn

8 September 2009 67 8 September 2009 68

Nguyễn Kim Khánh - ĐHBKHN

17

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Định địa chỉ trực tiếp

Sơ đồ định địa chỉ trực tiếp

(cid:132) Toán hạng là ngăn nhớ có địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh

(cid:132) Ví dụ: ADD R1, A

;R1 (cid:197) R1 + (A) (cid:132) Cộng nội dung thanh ghi R1 với nội dung

của ngăn nhớ có địa chỉ là A

(cid:132) Tìm toán hạng trong bộ nhớ ở địa chỉ A (cid:132) CPU tham chiếu bộ nhớ một lần để truy

nhập dữ liệu

NKK-HUT

NKK-HUT

8 September 2009 69 8 September 2009 70

Định địa chỉ gián tiếp qua thanh ghi

Sơ đồ định địa chỉ gián tiếp qua thanh ghi

(cid:132) Toán hạng là ngăn nhớ có địa chỉ nằm

trong thanh ghi

(cid:132) Trường địa chỉ cho biết tên thanh ghi đó (cid:132) Thanh ghi có thể là ngầm định (cid:132) Thanh ghi này được gọi là thanh ghi

con trỏ

(cid:132) Vùng nhớ có thể được tham chiếu là

lớn (2n), (với n là độ dài của thanh ghi)

8 September 2009 71 8 September 2009 72

Nguyễn Kim Khánh - ĐHBKHN

18

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Sơ đồ định địa chỉ gián tiếp qua ngăn nhớ

Định địa chỉ gián tiếp qua ngăn nhớ

(cid:132) Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toán hạng

(cid:132) Có thể gián tiếp nhiều lần (cid:132) Giống như khái niệm biến con trỏ và

biến động trong lập trình

(cid:132) CPU phải thực hiện tham chiếu bộ nhớ nhiều lần để tìm toán hạng (cid:198) chậm (cid:132) Vùng nhớ có thể được tham chiếu là

lớn

NKK-HUT

NKK-HUT

8 September 2009 73 8 September 2009 74

Sơ đồ định địa chỉ dịch chuyển

Định địa chỉ dịch chuyển

(cid:132) Để xác định toán hạng, Trường địa chỉ

chứa hai thành phần: (cid:132) Tên thanh ghi (cid:132) Hằng số

(cid:132) Địa chỉ của toán hạng = nội dung thanh

ghi + hằng số

(cid:132) Thanh ghi có thể được ngầm định

8 September 2009 75 8 September 2009 76

Nguyễn Kim Khánh - ĐHBKHN

19

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

4.3. Hoạt động của CPU

Các dạng của định địa chỉ dịch chuyển

(cid:132) Địa chỉ hoá tương đối với PC

Chu trình lệnh

(cid:132) Thanh ghi là Bộ đếm chương trình PC (cid:132) Toán hạng có địa chỉ cách ngăn nhớ được

trỏ bởi PC một độ lệch xác định

(cid:132) Định địa chỉ cơ sở

(cid:132) Thanh ghi chứa địa chỉ cơ sở (cid:132) Hằng số là chỉ số (cid:132) Định địa chỉ chỉ số

(cid:132) Nhận lệnh (cid:132) Giải mã lệnh (cid:132) Nhận toán hạng (cid:132) Thực hiện lệnh (cid:132) Cất toán hạng (cid:132) Ngắt

(cid:132) Hằng số là địa chỉ cơ sở (cid:132) Thanh ghi chứa chỉ số

NKK-HUT

NKK-HUT

8 September 2009 77 8 September 2009 78

Giản đồ trạng thái chu trình lệnh

Nhận lệnh

(cid:132) CPU đưa địa chỉ của lệnh cần nhận từ bộ

đếm chương trình PC ra bus địa chỉ

(cid:132) CPU phát tín hiệu điều khiển đọc bộ nhớ

(cid:132) Lệnh từ bộ nhớ được đặt lên bus dữ liệu và được CPU copy vào thanh ghi lệnh IR

(cid:132) CPU tăng nội dung PC để trỏ sang lệnh

kế tiếp

8 September 2009 79 8 September 2009 80

Nguyễn Kim Khánh - ĐHBKHN

20

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Sơ đồ mô tả quá trình nhận lệnh

Giải mã lệnh

(cid:132) Lệnh từ thanh ghi lệnh IR được đưa

đến đơn vị điều khiển

(cid:132) Đơn vị điều khiển tiến hành giải mã lệnh

để xác định thao tác phải thực hiện (cid:132) Giải mã lệnh xảy ra bên trong CPU

NKK-HUT

NKK-HUT

8 September 2009 81 8 September 2009 82

Nhận dữ liệu

Nhận dữ liệu gián tiếp

(cid:132) CPU đưa địa chỉ ra bus địa chỉ

(cid:132) CPU đưa địa chỉ của toán hạng ra bus

(cid:132) CPU phát tín hiệu điều khiển đọc

địa chỉ

(cid:132) Nội dung ngăn nhớ được đọc vào CPU,

(cid:132) CPU phát tín hiệu điều khiển đọc

đó chính là địa chỉ của toán hạng

(cid:132) Toán hạng được đọc vào CPU

(cid:132) Địa chỉ này được CPU phát ra bus địa

(cid:132) Tương tự như nhận lệnh

chỉ để tìm ra toán hạng

(cid:132) CPU phát tín hiệu điều khiển đọc

(cid:132) Toán hạng được đọc vào CPU

8 September 2009 83 8 September 2009 84

Nguyễn Kim Khánh - ĐHBKHN

21

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Sơ đồ tả nhận toán hạng gián tiếp

Thực hiện lệnh

(cid:132) Có nhiều dạng tuỳ thuộc vào lệnh (cid:132) Có thể là:

(cid:132) Đọc/Ghi bộ nhớ (cid:132) Vào/Ra (cid:132) Chuyển giữa các thanh ghi (cid:132) Thao tác số học/logic (cid:132) Chuyển điều khiển (rẽ nhánh) (cid:132) ...

NKK-HUT

NKK-HUT

8 September 2009 85 8 September 2009 86

Ghi toán hạng

Sơ đồ mô tả quá trình ghi toán hạng

(cid:132) CPU đưa địa chỉ ra bus địa chỉ

(cid:132) CPU đưa dữ liệu cần ghi ra bus dữ liệu

(cid:132) CPU phát tín hiệu điều khiển ghi

(cid:132) Dữ liệu trên bus dữ liệu được copy đến

vị trí xác định

8 September 2009 87 8 September 2009 88

Nguyễn Kim Khánh - ĐHBKHN

22

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Ngắt

Sơ đồ mô tả chu trình ngắt

(cid:132) Nội dung của bộ đếm chương trình PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu

(cid:132) CPU đưa địa chỉ (thường được lấy từ con trỏ

ngăn xếp SP) ra bus địa chỉ

(cid:132) CPU phát tín hiệu điều khiển ghi bộ nhớ

(cid:132) Địa chỉ trở về trên bus dữ liệu được ghi ra vị

trí xác định (ở ngăn xếp)

(cid:132) Địa chỉ lệnh đầu tiên của chương trình con

điều khiển ngắt được nạp vào PC

NKK-HUT

NKK-HUT

8 September 2009 89 8 September 2009 90

4.4. Kỹ thuật đường ống lệnh

Giản đồ thời gian cho đường ống lệnh

(cid:132) Khái niệm: Đường ống lệnh (Instruction Pipelining) là kỹ thuật chia chu trình lệnh thành các công đoạn và cho phép thực hiện gối lên nhau (như dây chuyền lắp ráp)

(cid:132) Chẳng hạn có 6 công đoạn:

(cid:132) Nhận lệnh

(Fetch Instruction - FI)

(cid:132) Giải mã lệnh

(Decode Instruction - DI)

(cid:132) Tính địa chỉ toán hạng (Calculate Operand Address-CO)

(cid:132) Nhận toán hạng

(Fetch Operands - FO)

(cid:132) Thực hiện lệnh

(Execute Instruction - EI)

(cid:132) Ghi toán hạng

(Write Operands - WO)

8 September 2009 91 8 September 2009 92

Nguyễn Kim Khánh - ĐHBKHN

23

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

Các Hazard của đường ống lệnh

Hazard về cấu trúc

(cid:132) Hazard cấu trúc

(cid:132) Nguyên nhân: Dùng chung tài nguyên (cid:132) Khắc phục:

(cid:132) Hazard dữ liệu

(cid:132) Hazard điều khiển

(cid:132) nhân tài nguyên để tránh xung đột (cid:132) Làm trễ Ví dụ: (cid:132) Bus dữ liệu: truyền lệnh và dữ liệu (cid:198) Bus lệnh riêng, bus dữ liệu riêng (cache

lệnh và cache dữ liệu)

NKK-HUT

NKK-HUT

8 September 2009 93 8 September 2009 94

Ví dụ Hazard về cấu trúc

Hazard về dữ liệu

(cid:132) Nguyên nhân: lệnh sau sử dụng dữ liệu

3 clocks necessary for multiplication

conflict on arithmetic unit

kết quả của lệnh trước

MULT A,B,C

I D F E E E W

(cid:132) Các dạng:

MULT D,E,F

I D F F F E E E W

cache miss

stall

(cid:132) RAW (Read After Write) (cid:132) WAR (Write After Read) (cid:132) WAW (Write After Write)

TLB miss

8 September 2009 95 8 September 2009 96

Nguyễn Kim Khánh - ĐHBKHN

24

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

WAR and WAW

Sự phụ thuộc về dữ liệu

Read B

Write-A must be earlier than

ADD A,B,C

RAW

I D F E W

ADD A,B,C

WAR

Read-A

ADD E,A,D

ADD B,D,E

I D F E W

Write B

Read-B is earlier than Write-B

Read-B must be earlier than

ADD A,B,C

WAR

Write A

Write-B

ADD B,D,E

WAW

ADD A,B,C

I D F E W

ADD A,D,E

I D F E W

First Write-A must be earlier

ADD A,B,C

WAW

first Write-A is earlier than second Write-A

Write A

Than second Write-A

ADD A,D,E

no conflict at in-order pipeline

conflict at out-of-order pipeline

NKK-HUT

NKK-HUT

8 September 2009 97 8 September 2009 98

RAW

Hazard điều khiển

Write A

Wait for branch

address

set PC

I D F E W

ADD A,B,C

calculation

ADD E,A,D

I D F E C

BEQ A, B, Label

I D F E C

Read A

LOAD C, X

I D F E C

Write-A must be earlier

・・・・

Write A

Than Read-A

stall

Label: LOAD C, Y

I D F E W

I D D D F E W

next instruction to a branch instruction cannot be fetched until branch condition

Read A

defined and PC updated

stall

8 September 2009 99 8 September 2009 100

Nguyễn Kim Khánh - ĐHBKHN

25

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

4.5. Các kiến trúc song song mức lệnh

Superpipeline

(cid:132) Siêu đường ống (Superpipeline &

Hyperpipeline)

(cid:132) Siêu vô hướng (Superscalar) (cid:132) VLIW (Very Long Instruction Word)

NKK-HUT

NKK-HUT

8 September 2009 101 8 September 2009 102

Superscalar

VLIW (Very Long Instruction Word)

8 September 2009 103 8 September 2009 104

Nguyễn Kim Khánh - ĐHBKHN

26

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

4.6. Một số kiến trúc thông dụng

Kiến trúc 16-bit (IA-16)

1. Kiến trúc Intel (cid:132) Kiến trúc 4-bit: (cid:132) Kiến trúc 8-bit: (cid:132) Kiến trúc 16-bit: (cid:132) Kiến trúc 32-bit:

(cid:132) Các thanh ghi bên trong: 16-bit (cid:132) Xử lý các phép toán số nguyên với 16-bit (cid:132) Quản lý bộ nhớ theo đoạn 64KBytes (cid:132) Mở đầu cho dòng máy tính IBM-PC

(cid:132) Kiến trúc 64-bit:

4004 8008,8080,8085 8086/8088,80186,80286 80386, 80486, Pentium,Pentium II, Celeron, Pentium III, Pentium 4, Core Itanium, Core 2

NKK-HUT

NKK-HUT

8 September 2009 105 8 September 2009 106

Kiến trúc 32-bit (IA-32)

Kiến trúc 64-bit (IA-64)

(cid:132) Các thanh ghi bên trong: 32-bit (cid:132) Xử lý các phép toán số nguyên với 32-bit (cid:132) Có ba chế độ làm việc:

(cid:132) Chế độ 8086 thực (Real 8086 mode): làm việc như một

bộ xử lý 8086

(cid:132) Các thanh ghi bên trong: 64-bit (cid:132) Xử lý các phép toán số nguyên với 64-bit (cid:132) Xử lý các phép toán số dấu phẩy động (cid:132) Không tương thích phần cứng với các bộ

(cid:132) Chế độ 8086 ảo (Virtual 8086 mode): làm việc như

nhiều bộ xử lý 8086 (đa nhiệm 16-bit)

xử lý trước đó

(cid:132) Chế độ bảo vệ (Protected mode)

(cid:132) Tương thích phần mềm bằng cách giả lập

môi trường

(cid:132) đa nhiệm 32-bit (cid:132) quản lý bộ nhớ ảo

(cid:132) Xử lý các phép toán số dấu phẩy động (từ 80486)

8 September 2009 107 8 September 2009 108

Nguyễn Kim Khánh - ĐHBKHN

27

Bài giảng Hệ thống máy tính

NKK-HUT

NKK-HUT

2. Một số kiến trúc khác

Hết chương 4

(cid:132) Kiến trúc MIPS (đã học) (cid:132) Kiến trúc ARM (cid:132) Kiến trúc Sun SPARC (cid:132) Kiến trúc PowerPC (cid:132) …

8 September 2009 109 8 September 2009 110

Nguyễn Kim Khánh - ĐHBKHN

28