Bài giảng kiến trúc máy tính

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

(Last In – First Out)

†Ngăn xếp thường dùng để phục vụcho

chương trình con

†Đáy ngăn xếp là một ngăn nhớxác định

†Đỉnh ngăn xếp là thông tin nằm ởvị trí

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

†Đỉnh ngăn xếp có thểbịthay đổ

pdf91 trang | Chia sẻ: netpro | Lượt xem: 7961 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Bài giảng kiến trúc máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
khi tổng >2n-1 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.47 Chương 3: Biểu diễn dữ liệu và số học máy tính Ví dụ cộng số nguyên không dấu † 57 = 0011 1001 + 34 = + 0010 0010 91 0101 1011 = 64+16+8+2+1= 91 Æ đúng † 209 = 1101 0001 + 73 = 0100 1001 282 1 0001 1010 = 16 + 8 + 2 = 26 Æ sai Æ có tràn nhớ ra ngoài (Cout = 1) Để có kết quả đúng ta thực hiện cộng theo 16-bit: 209 = 0000 0000 1101 0001 + 73 = + 0000 0000 0100 1001 0000 0001 0001 1010 = 256+16+8+2 = 282 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.48 Chương 3: Biểu diễn dữ liệu và số học máy tính 2. Phép đảo dấu † Ta có: + 37 = 0010 0101 bù một = 0101 1010 + 1 bù hai = 1101 1011 = -37 † Lấy bù hai của số âm: - 37 = 1101 1011 bù một = 0010 0100 + 1 bù hai = 0010 0101 = +37 † Kết luận: Phép đảo dấu trong máy tính thực chất là lấy bù 2 13 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.49 Chương 3: Biểu diễn dữ liệu và số học máy tính 3. Cộng số nguyên có dấu Khi cộng 2 số nguyên có dấu n-bit không quan tâm đến bit Cout và kết quả nhận được là n-bit: † Cộng 2 số khác dấu: kết quả luôn luôn đúng. † Cộng 2 số cùng dấu: „ Nếu dấu kết quả cùng dấu với các số hạng thì kết quả là đúng. „ Nếu kết quả có dấu ngược lại, khi đó có tràn xảy ra (Overflow) và kết quả là sai. † Tràn xảy ra khi tổng nằm ngoài dải biểu diễn [-(2n-1),+(2n-1-1)] Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.50 Chương 3: Biểu diễn dữ liệu và số học máy tính Ví dụ cộng số nguyên có dấu không tràn † (+70) = 0100 0110 + (+42) = 0010 1010 +112 0111 0000 = +112 † (+97) = 0110 0001 + (- 52) = 1100 1100 +45 1 0010 1101 = +45 † (- 90) = 1010 0110 + (+36) = 0010 0100 - 54 1100 1010 = -54 † (- 74) = 1011 0110 + (- 30) = 1110 0010 - 104 1 1001 1000 = -104 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.51 Chương 3: Biểu diễn dữ liệu và số học máy tính Ví dụ cộng số nguyên có dấu bị tràn † (+75) = 0100 1011 + (+82) = 0101 0010 +157 1001 1101 = -128 + 16 + 8 + 4 + 1 = -99 Æ sai † (- 104) = 1001 1000 + (- 43) = 1101 0101 - 147 1 0110 1101 = 64 + 32 + 8 + 4 + 1 = +109 Æ sai † Cả 2 ví dụ trên đều tràn vì tổng nằm ngoài dải biểu diễn [-128, +127] Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.52 Chương 3: Biểu diễn dữ liệu và số học máy tính 4. Nguyên tắc thực hiện phép trừ † Phép trừ 2 số nguyên: X – Y = X + (-Y) † Nguyên tắc: Lấy bù hai của Y để được –Y, rồi cộng với X 14 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.53 Chương 3: Biểu diễn dữ liệu và số học máy tính 5. Nhân số nguyên không dấu † Các thanh ghi M, Q, A: n bit † C: 1 bit † 2 thừa số là n-bit Æ tích là số 2n-bit được chứa trong cặp thanh ghi A, Q Bắt đầu Dừng C 0; A 0 M số bị nhân Q số nhân; BĐ = n Q0 = 1 C, A A + M Dịch phải C, A, Q BĐ BĐ - 1 BĐ = 0 YN Y N Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.54 Chương 3: Biểu diễn dữ liệu và số học máy tính Ví dụ 1011 x 1101 (11 x 13 = 143) † n = 4 † Số bị nhân = 1011 Æ M † Số nhân = 1101 Æ Q C A Q 0 0000 1101 / các giá trị khởi đầu / 1011 0 1011 1101 C, A Å A + M 0 0101 1110 Dịch phải 1 bit n = 3 0 0010 1111 Dịch phải 1 bit n = 2 1011 0 1101 1111 C, A Å A + M 0 0110 1111 Dịch phải 1 bit n = 1 1011 1 0001 1111 C, A Å A + M 0 1000 1111 Dịch phải 1 bit n = 0 + + + Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.55 Chương 3: Biểu diễn dữ liệu và số học máy tính 6. Nhân số nguyên có dấu † Phương pháp 1: 1. Chuyển đổi các thừa số thành số dương 2. Nhân 2 số dương như số nguyên không dấu 3. Hiệu chỉnh dấu của kết quả: † Nếu 2 thừa số cùng dấu Æ không cần hiệu chỉnh † Nếu 2 thừa số khác dấu Æ đảo dấu kết quả bằng cách lấy bù 2. Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.56 Chương 3: Biểu diễn dữ liệu và số học máy tính Nhân số nguyên có dấu (tiếp) † Phương pháp 2: Sử dụng thuật toán nhân nhanh Booth 15 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.57 Chương 3: Biểu diễn dữ liệu và số học máy tính Ví dụ (+7) x (-3) = (-21) theo Booth † n = 4 † Số bị nhân = 0111 Æ M † -M = 1001 † 310 = 0011 -310 = 1101 (Số nhân)ÆQ A Q Q-1 0000 1001 1001 1100 0111 0011 0001 1001 1010 1101 1110 0 / các giá trị khởi đầu /1101 1101 1110 1110 1111 1111 0111 0 A Å A - M = A + (-M) 1 Dịch phải, giữ dấu A, n = 3 1 A Å A + M 0 Dịch phải, giữ dấu A, n = 2 0 A Å A - M 1 Dịch phải, giữ dấu A, n = 1 1011 1 Dịch phải, giữ dấu A, n = 0 + + + 1 Bỏ đi Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.58 Chương 3: Biểu diễn dữ liệu và số học máy tính 7. Chia số nguyên không dấu Khôi phục A † Thương chứa trong Q, † Phần dư chứa trong A Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.59 Chương 3: Biểu diễn dữ liệu và số học máy tính Ví dụ 7:3 = 2 dư 1 † n = 4 † Số bị chia = 0111 Æ Q † Số chia = 310 = 0011 Æ M † -M = 1101 A Q 0000 0000 1101 0000 0001 1110 0001 0011 0000 0000 0001 1110 A Å A - M 0001 0010 Khôi phục A, n = 0 / các giá trị khởi đầu /0111 1110 1110 1100 1100 1000 1001 Dịch trái A Å A - M = A + (-M) Khôi phục A, n = 3 Dịch trái A Å A - M Khôi phục A, n = 2 Dịch trái A Å A - M Q0 Å 1, n = 1 Dịch trái0010 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.60 Chương 3: Biểu diễn dữ liệu và số học máy tính 8. Chia số nguyên có dấu † Sử dụng thuật giải chia số nguyên không dấu „ Đổi số bị chia và số chia Æ dương „ Chia như số nguyên không dấu Æ thương và phần dư (đều là số dương) „ Hiệu chỉnh dấu: † (+) : (+) Æ không hiệu chỉnh dấu kết quả † (+) : (-) Æ đảo dấu thương † (-) : (+) Æ đảo dấu thương và phần dư † (-) : (-) Æ đảo dấu phần dư 16 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.61 Chương 3: Biểu diễn dữ liệu và số học máy tính 3.5. Số dấu chấm động 1. Nguyên tắc chung † Floating Point Number Æ biểu diễn cho số thực † Tổng quát: một số thực X được biểu diễn theo kiểu số dấu chấm động như sau: X = M * RE „ M là phần định trị (Mantissa), „ R là cơ số (Radix), „ E là phần mũ (Exponent). Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.62 Chương 3: Biểu diễn dữ liệu và số học máy tính 2. Chuẩn IEEE754/85 † Cơ số R = 2 † Các dạng: „ Dạng 32-bit „ Dạng 44-bit „ Dạng 64-bit „ Dạng 80-bit Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.63 Chương 3: Biểu diễn dữ liệu và số học máy tính Các dạng biểu diễn chính Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.64 Chương 3: Biểu diễn dữ liệu và số học máy tính Dạng 32-bit † S là bit dấu: „ S = 0 Æ Số dương „ S = 1 Æ Số âm † e (8 bit) là mã excess-127 của phần mũ E: „ e = E + 127 Æ E = e – 127 „ giá trị 127 được gọi là độ lệch (bias) † m (23 bit) là phần lẻ của phần định trị M: „ M = 1.m † Công thức xác định giá trị của số thực: X = (-1)S*1.m*2e-127 17 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.65 Chương 3: Biểu diễn dữ liệu và số học máy tính Ví dụ 1 Xác định giá trị của số thực được biểu diễn bằng 32-bit như sau: † 1100 0001 0101 0110 0000 0000 0000 0000 „ S = 1 Æ Số âm „ e = 1000 00102 = 130 Æ E = 130 – 127 = 3 Vậy: X = -1.10101100 * 23 = -1101.011 = -13.375 † 0011 1111 1000 0000 0000 0000 0000 0000 = ? = +1.0 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.66 Chương 3: Biểu diễn dữ liệu và số học máy tính Ví dụ 2 Biểu diễn số thực X = 83.75 về dạng số dấu chấm động IEEE754 32-bit Giải: † X = 83.7510 = 1010011.112 = 1.01001111 x 26 † Ta có: „ S = 0 vì đây là số dương „ E = e-127=6 Æ e = 127+6=13310 = 1000 01012 † Vậy: X = 0100 0010 1010 0111 1000 0000 0000 0000 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.67 Chương 3: Biểu diễn dữ liệu và số học máy tính Các quy ước đặc biệt † Các bit của e bằng 0, các bit của m bằng 0, thì X= ± 0 x000 0000 0000 0000 0000 0000 0000 0000 Æ X= ± 0 † Các bit của e bằng 1, các bit của m bằng 0, thì X= ± ∞ x111 1111 1000 0000 0000 0000 0000 0000 Æ X= ± ∞ † Các bit của e bằng 1, còn m có ít nhất 1 bit bằng 1, thì nó không biểu diễn cho số nào cả (NaN – not a number) Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.68 Chương 3: Biểu diễn dữ liệu và số học máy tính Dải giá trị biểu diễn † 2-127 đến 2+127 † 10-38 đến 10+38 18 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.69 Chương 3: Biểu diễn dữ liệu và số học máy tính Dạng 64-bit † S là bit dấu † e (11 bit) là mã excess-1023 của phần mũ E: Æ E = e – 1023 † m (52 bit) là phần lẻ của phần định trị M: † Giá trị của số thực: X = (-1)S*1.m*2e-1023 † Dải giá trị biểu diễn: 10-308 đến 10+308 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.70 Chương 3: Biểu diễn dữ liệu và số học máy tính Dạng 80-bit † S là bit dấu † e (15 bit) là mã excess-16383 của phần mũ E: Æ E = e – 16383 † m (64 bit) là phần lẻ của phần định trị M: † Giá trị của số thực: X = (-1)S*1.m*2e-16383 † Dải giá trị biểu diễn: 10-4932 đến 10+4932 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.71 Chương 3: Biểu diễn dữ liệu và số học máy tính 3.6. Biểu diễn ký tự † Bộ mã ASCII (American Standard Code for Information Interchange) † Bộ mã Unicode Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.72 Chương 3: Biểu diễn dữ liệu và số học máy tính 1. Bộ mã ASCII † Do ANSI (American National Standard Institute) thiết kế † Bộ mã 8 bit Æ có thể mã hóa được 28 =256 ký tự, có mã từ: 0016 ÷ FF16 , trong đó: „ 128 ký tự chuẩn, có mã từ 0016 ÷ 7F16 „ 128 ký tự mở rộng, có mã từ 8016 ÷ FF16 19 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.73 Chương 3: Biểu diễn dữ liệu và số học máy tính ASCII Character Code 128 ký tự chuẩn Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.74 Chương 3: Biểu diễn dữ liệu và số học máy tính Các ký tự chuẩn † 26 chữ cái hoa ‘A’ đến ‘Z’ có mã từ 4116 đến 5A16 (65 đến 90) „ ‘A’ Æ 0100 0001 = 4116 „ ‘B’ Æ 0100 0010 = 4216 „ ... „ ‘Z’ Æ 0101 1010 = 5A16 † 26 chữ cái thường ‘a’ đến ‘z’ có mã từ 6116 đến 7A16 (97 đến 122) „ ‘a’ Æ 0110 0001 = 6116 „ ‘b’ Æ 0110 0010 = 6216 „ ... „ ‘z’ Æ 0111 1010 = 7A16 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.75 Chương 3: Biểu diễn dữ liệu và số học máy tính Các ký tự chuẩn (tiếp) † 10 chữ số thập phân từ 0 đến 9 có mã từ 3016 đến 3916 (48 đến 57) „ ‘0’ Æ 0011 0000 = 3016 „ ‘1’ Æ 0011 0001 = 3116 „ ‘2’ Æ 0011 0010 = 3216 „ ... „ ‘9’ Æ 0011 1001 = 3916 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.76 Chương 3: Biểu diễn dữ liệu và số học máy tính Các ký tự chuẩn (tiếp) † Các ký hiệu khác: „ Các dấu câu: . , : ; ... „ Các dấu phép toán: + - * / % ... „ một số ký hiệu thông dụng: &, $, @, # „ dấu cách (space) 20 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.77 Chương 3: Biểu diễn dữ liệu và số học máy tính Các mã điều khiển: có mã 0016 ÷ 1F16 và 7F16 † Các mã ký tự điều khiển định dạng (điều khiển màn hình, máy in …): „ BS, HT, LF, VT, FF, CR † Các mã ký tự điều khiển truyền tin: „ SOH, STX, ETX, EOT, ENQ, ACK, NAK, SYN, ETB † Các mã ký tự điều khiển phân cách thông tin: „ FS, GS, RS, US † Các mã ký tự điều khiển khác: „ NUL, BEL, SO, SI, DLE, DC1+DC4, CAN, EM, SUB, ESC, DEL Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.78 Chương 3: Biểu diễn dữ liệu và số học máy tính Các ký tự mở rộng: có mã 8016 ÷ FF16 † Các ký tự mở rộng được định nghĩa bởi: „ nhà chế tạo máy tính „ người phát triển phần mềm † Ví dụ: „ Bộ mã ký tự mở rộng của IBM Æ IBM-PC. „ Bộ mã ký tự mở rộng của Apple Æ Macintosh. „ Có thể thay đổi các ký tự mở rộng để mã hóa cho các ký tự riêng của tiếng Việt, ví dụ như bộ mã TCVN3. Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.79 Chương 3: Biểu diễn dữ liệu và số học máy tính 2. Bộ mã hợp nhất Unicode † Do các hãng máy tính hàng đầu thiết kế † Bộ mã 16-bit † Bộ mã đa ngôn ngữ † Có hỗ trợ các ký tự tiếng Việt Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.80 Chương 3: Biểu diễn dữ liệu và số học máy tính Unicode Character Code 256 ký tự chuẩn 1Chương 4 BỘ XỬ LÝ TRUNG TÂM (Central Processing Unit - CPU) Phạm Quang Dũng Bộ môn Khoa học máy tính - Khoa CNTT Trường Đại học Nông nghiệp I – Hà Nội website: www.hau1.edu.vn/it/pqdung ĐT: (04) 8766318 DĐ: 0988.149.189 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.2 Chương 4: CPU Nội dung chương 4 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. Cấu trúc của các bộ xử lý tiên tiến 4.5. Kiến trúc Intel Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.3 Chương 4: CPU 4.1. Cấu trúc cơ bản của CPU 1. Nhiệm vụ và cấu trúc của CPU † Nhiệm vụ của CPU ¾ 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): 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ổng vào-ra Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.4 Chương 4: CPU Sơ đồ cấu trúc cơ bản của CPU 2Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.5 Chương 4: CPU Các thành phần cơ bản của CPU † Đơn vị điều khiển (Control Unit – CU) † Đơn vị số học và logic (Arithmetic and Logic Unit - ALU) † Tập thanh ghi (Register File - RF) † Đơn vị nối ghép bus (Bus Interface Unit - BIU) † Bus bên trong (Internal Bus) Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.6 Chương 4: CPU 2. Đơn vị số học và logic † Chức năng: Thực hiện các phép toán số học và phép toán logic: „ Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo dấu „ Logic: AND, OR, XOR, NOT, phép dịch bit. Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.7 Chương 4: CPU Mô hình kết nối ALU Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.8 Chương 4: CPU 3. Đơn vị điều khiển † Chức năng „ Điều khiển nhận lệnh từ bộ nhớ đưa vào thanh ghi lệnh „ Tăng nội dung của PC để trỏ sang lệnh kế tiếp „ Giải mã lệnh đã được nhận để xác định thao tác mà lệnh 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 đó. 3Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.9 Chương 4: CPU Mô hình kết nối đơn vị điều khiển Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.10 Chương 4: CPU Các tín hiệu đưa đến đơn vị điều khiển † Clock: tín hiệu nhịp từ mạch tạo dao động bên ngoài. † Mã lệnh từ thanh ghi lệnh đưa đến để giải mã. † Các cờ từ thanh ghi cờ cho biết trạng thái của CPU. † Các tín hiệu yêu cầu từ bus điều khiển Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.11 Chương 4: CPU Các tín hiệu phát ra từ đơn vị điều khiển † Các tín hiệu điều khiển bên trong CPU: „ Điều khiển các thanh ghi „ Điều khiển ALU † Các tín hiệu điều khiển bên ngoài CPU: „ Điều khiển bộ nhớ „ Điều khiển các môđun vào-ra Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.12 Chương 4: CPU 4. Tập thanh ghi † Chức năng và đặc điểm: „ Tập hợp các thanh ghi nằm trong CPU „ 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 „ Được coi là mức đầu tiên của hệ thống nhớ „ Tuỳ thuộc vào bộ xử lý cụ thể „ Số lượng thanh ghi nhiều Æ tăng hiệu năng của CPU „ Có hai loại thanh ghi † Các thanh ghi lập trình được † Các thanh ghi không lập trình được 4Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.13 Chương 4: CPU Phân loại thanh ghi theo chức năng † Thanh ghi địa chỉ: quản lý địa chỉ của ngăn nhớ hay cổng vào-ra. † Thanh ghi dữ liệu: chứa tạm thời các dữ liệu † Thanh ghi đa năng: có thể chứa địa chỉ hoặc dữ liệu. † Thanh ghi điều khiển/trạng thái: chứa các thông tin điều khiển và trạng thái của CPU. † Thanh ghi lệnh: chứa lệnh đang được thực hiện Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.14 Chương 4: CPU Một số thanh ghi điển hình † Các thanh ghi địa chỉ „ Bộ đếm chương trình PC (Program Counter) „ Con trỏ dữ liệu DP (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 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.15 Chương 4: CPU Bộ đếm chương trình PC † Còn được gọi là con trỏ lệnh IP (Instruction Pointer) † Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vào. † 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. Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.16 Chương 4: CPU Minh họa bộ đếm chương trình 5Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.17 Chương 4: CPU Thanh ghi con trỏ dữ liệu † Chứa địa chỉ của ngăn nhớ dữ liệu mà CPU muốn truy nhập † Thường có một số thanh ghi con trỏ dữ liệu Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.18 Chương 4: CPU Minh họa thanh ghi con trỏ dữ liệu DP Dữ liệu Dữ liệu cần đọc/ghi Dữ liệu Dữ liệu Dữ liệu Dữ liệu Dữ liệu Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.19 Chương 4: CPU Ngăn xếp (Stack) † Ngăn xếp là vùng nhớ có cấu trúc LIFO (Last In – First Out) † Ngăn xếp thường dùng để phục vụ cho chương trình con † Đáy ngăn xếp là một ngăn nhớ xác định † Đỉnh ngăn xếp là thông tin nằm ở vị trí trên cùng trong ngăn xếp † Đỉnh ngăn xếp có thể bị thay đổi Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.20 Chương 4: CPU Con trỏ ngăn xếp SP (Stack Pointer) † SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếp † Khi cất một thông tin vào ngăn xếp: „ Nội dung của SP tự động giảm „ Thông tin được cất vào ngăn nhớ được trỏ bởi SP † Khi lấy một thông tin ra khỏi ngăn xếp: „ Thông tin được đọc từ ngăn nhớ được trỏ bởi SP „ Nội dung của SP tự động tăng † Khi ngăn xếp rỗng, SP trỏ vào đáy 6Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.21 Chương 4: CPU Minh họa con trỏ ngăn xếp SP SP Đỉnh Stack Đáy Stack Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.22 Chương 4: CPU Thanh ghi cơ sở và thanh ghi chỉ số † Thanh ghi cơ sở: chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở) † 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ố) † Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.23 Chương 4: CPU Minh họa thanh ghi cơ sở và thanh ghi chỉ số Thanh ghi cơ sở Thanh ghi chỉ số Ngăn nhớ cơ sở Ngăn nhớ cần truy nhập Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.24 Chương 4: CPU Các thanh ghi dữ liệu † Chứa các dữ liệu tạm thời hoặc các kết quả trung gian † Cần có nhiều thanh ghi dữ liệu † Các thanh ghi số nguyên: 8, 16, 32, 64 bit † Các thanh ghi số dấu chấm động 7Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.25 Chương 4: CPU Thanh ghi trạng thái (Status Register) † Còn gọi là thanh ghi cờ (Flag Register) † Chứa các thông tin trạng thái của CPU „ Các cờ phép toán: báo hiệu trạng thái của kết quả phép toán „ Các cờ điều khiển: biểu thị trạng thái điều khiển của CPU Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.26 Chương 4: CPU Ví dụ cờ phép toán † 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. † 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 † Cờ Carry (cờ nhớ): được thiết lập lên 1 nếu phép toán có nhớ ra ngoài bit cao nhất Æ cờ báo tràn với số không dấu. † Cờ Overflow (cờ tràn): được thiếp 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 Æ cờ báo tràn với số có dấu. Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.27 Chương 4: CPU Ví dụ cờ điều khiển † Cờ Interrupt (Cờ cho phép ngắt) „ Nếu IF = 1 Æ CPU ở trạng thái cho phép ngắt với tín hiệu yêu cầu ngắt từ bên ngoài gửi tới „ Nếu IF = 0 Æ 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 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.28 Chương 4: CPU 4.2. Tập lệnh 1. Giới thiệu chung về tập lệnh † Mỗi bộ xử lý có một tập lệnh xác định † Tập lệnh thường có hàng chục đến hàng trăm lệnh † 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 † Các lệnh được mô tả bằng các ký hiệu gợi nhớ Æ chính là các lệnh của hợp ngữ 8Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.29 Chương 4: CPU Các thành phần của lệnh máy † Mã thao tác (operation code → opcode): mã hóa cho thao tác mà bộ xử lý phải thực hiện † Đị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 „ Toán hạng nguồn: dữ liệu vào của thao tác „ Toán hạng đích: dữ liệu ra của thao tác Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.30 Chương 4: CPU 2. Các kiểu thao tác † Chuyển dữ liệu † Xử lý số học với số nguyên † Xử lý logic † Điều khiển vào-ra † Chuyển điều khiển (rẽ nhánh) † Điều khiển hệ thống † Xử lý số dấu chấm động † Xử lý các dữ liệu chuyên dụng Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.31 Chương 4: CPU Các lệnh chuyển dữ liệu † MOVE Copy dữ liệu từ nguồn đến đích † LOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lý † STORE Cất dữ liệu từ bộ xử lý đến bộ nhớ † EXCHANGE Trao đổi nội dung của nguồn và đích † CLEAR Chuyển các bit 0 vào toán hạng đích † SET Chuyển các bit 1 vào toán hạng đích † PUSH Cất nội dung toán hạng nguồn vào ngăn xếp † POP Lấy nội dung đỉnh ngăn xếp đưa đến toán hạng đích Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.32 Chương 4: CPU Các lệnh số học † ADD Cộng hai toán hạng † SUBTRACT Trừ hai toán hạng † MULTIPLY Nhân hai toán hạng † DIVIDE Chia hai toán hạng † ABSOLUTE Lấy trị tuyệt đối toán hạng † NEGATE Đổi dấu toán hạng (lấy bù 2) † INCREMENT Tăng toán hạng thêm 1 † DECREMENT Giảm toán hạng đi 1 † COMPARE Trừ 2 toán hạng để lập cờ 9Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.33 Chương 4: CPU Các lệnh logic † AND Thực hiện phép AND hai toán hạng † OR Thực hiện phép OR hai toán hạng † XOR Thực hiện phép XOR hai toán hạng † NOT Đảo bit của toán hạng (lấy bù 1) † TEST Thực hiện phép AND 2 toán hạng để lập cờ † SHIFT Dịch trái (phải) toán hạng † ROTATE Quay trái (phải) toán hạng Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.34 Chương 4: CPU Minh hoạ các lệnh AND, OR, XOR † Giả sử có hai thanh ghi chứa dữ liệu như sau: (R1) = 1010 1010 (R2) = 0000 1111 † R1 Å (R1) AND (R2) = 0000 1010 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. † R1 Å (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. † R1 Å (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. Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.35 Chương 4: CPU Các lệnh vào ra chuyên dụng † INPUT Copy dữ liệu từ một cổng xác định đến đích † OUTPUT Copy dữ liệu từ nguồn đến một cổng xác định Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.36 Chương 4: CPU Các lệnh chuyển điều khiển † JUMP (BRANCH) - Lệnh nhảy không điều kiện: „ Nạp vào PC một địa chỉ xác định † JUMP CONDITIONAL - Lệnh nhảy có điều kiện: „ Điều kiện đúng Æ nạp PC một địa chỉ xác định „ Điều kiện sai Æ không làm gì cả † CALL - Lệnh gọi chương trình con: „ Cất nội dung của PC (địa chỉ trở về) ra một vị trí xác định (thường ở Stack) „ Nạp vào PC địa chỉ của lệnh đầu tiên của chương trình con † RETURN - Lệnh trở về từ chương trình con: „ Khôi phục địa chỉ trở về trả lại cho PC để trở về chương trình chính 10 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.37 Chương 4: CPU Lệnh rẽ nhánh không điều kiện † Chuyển tới thực hiện lệnh ở vị trí có địa chỉ XXX: PC Å XXX Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.38 Chương 4: CPU Lệnh rẽ nhánh có điều kiện † Trong lệnh có kèm theo điều kiện † Kiểm tra điều kiện trong lệnh: „ Nếu điều kiện đúng Æ chuyển tới thực hiện lệnh ở vị trí có địa chỉ XXX PC Å XXX „ Nếu điều kiện sai Æ chuyển sang thực hiện lệnh kế tiếp † Điều kiện thường được kiểm tra thông qua các cờ † Có nhiều lệnh rẽ nhánh có điều kiện Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.39 Chương 4: CPU Minh họa lệnh rẽ nhánh có điều khiện Lệnh Lệnh kế tiếp Lệnh rẽ nhánh XXX Lệnh Lệnh Lệnh Lệnh ... LệnhXXX Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.40 Chương 4: CPU Lệnh CALL và RETURN ‰ Lệnh gọi chương trình con: lệnh CALL „ Cất nội dung PC (chứa địa chỉ của lệnh kế tiếp) ra Stack „ Nạp vào PC địa chỉ của lệnh đầu tiên của chương trình con được gọi Æ Bộ xử lý được chuyển sang thực hiện chương trình con tương ứng ‰ Lệnh trở về từ chương trình con: lệnh RETURN ƒ Lấy địa chỉ của lệnh kế tiếp được cất ở Stack nạp trả lại cho PC Æ 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 11 Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.41 Chương 4: CPU Minh họa lệnh CALL và RETURN Lệnh Lệnh kế tiếp CALL CTcon Lệnh RETURN Lệnh ... LệnhCTcon Lệnh đầu tiên của CTcon ... Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.42 Chương 4: CPU Các lệnh điều khiển hệ thống † NO OPERATION Không thực hiện gì cả † HALT Dừng thực hiện chương trình † 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 † LOCK Cấm không cho xin chuyển nhượng bus † UNLOCK Cho phép xin chuyển nhượng bus Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.43 Chương 4: CPU 3. Các phương pháp định địa chỉ (addressing modes) Khái niệm về định đị

Các file đính kèm theo tài liệu này:

  • pdfBài giảng kiến truc may tính.pdf
Tài liệu liên quan