Upload
hoang-ha
View
112
Download
0
Embed Size (px)
Citation preview
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 1
8 September 2009 1
NKK-HUT
Hệ thống máy tính
Chương 4KIẾN TRÚC BỘ XỬ LÝ
Nguyễn Kim KhánhTrường Đại học Bách khoa Hà Nội
8 September 2009 2
NKK-HUT
Nội dung học phần
Chương 1. Giới thiệu chung Chương 2. Kiến trúc bộ nhớ Chương 3. Kiến trúc vào-ra Chương 4. Kiến trúc bộ xử lý Chương 5. Kiến trúc máy tính tiên tiến
8 September 2009 3
NKK-HUT
4.1. Cấu trúc cơ bản của CPU 4.2. Tập lệnh4.3. Hoạt động của CPU4.4. Kỹ thuật đường ống lệnh4.5. Các kiến trúc song song mức lệnh4.6. Một số kiến trúc thông dụng
Nội dung
8 September 2009 4
NKK-HUT
4.1. Cấu trúc cơ bản 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ácmà 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
1. Nhiệm vụ và cấu trúc của CPU
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 2
8 September 2009 5
NKK-HUT
Sơ đồ cấu trúc cơ bản của CPU
8 September 2009 6
NKK-HUT
Đơ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)
Các thành phần cơ bản của CPU
8 September 2009 7
NKK-HUT
2. Đơn vị số học và logic
Chức năng: Thực hiện các phép toánsố học và phép toán logic:
Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo dấuLogic: AND, OR, XOR, NOT, phép dịch bit.
8 September 2009 8
NKK-HUT
Mô hình kết nối ALU
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 3
8 September 2009 9
NKK-HUT
3. Đơn vị điều khiểnChức năngĐiều khiển nhận lệnh từ bộ nhớ đưa vàothanh ghi lệnhTăng nội dung của PC để trỏ sang lệnh kếtiếpGiải mã lệnh đã được nhận để xác định thaotác mà lệnh yêu cầuPhát ra các tín hiệu điều khiển thực hiện lệnhNhậ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 đó.
8 September 2009 10
NKK-HUT
Mô hình kết nối đơn vị điều khiển
8 September 2009 11
NKK-HUT
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ạngthái của CPU.Các tín hiệu yêu cầu từ bus điều khiển
8 September 2009 12
NKK-HUT
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
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 4
8 September 2009 13
NKK-HUT
Các phương pháp thiết kế đơn vị điều khiển
Đơn vị điều khiển vi chương trình(Microprogrammed Control Unit)Đơn vị điều khiển nối kết cứng(Hardwired Control Unit)
8 September 2009 14
NKK-HUT
Đơn vị điều khiển vi chương trình
8 September 2009 15
NKK-HUT
Đơn vị điều khiển vi chương trình (tiếp)
Bộ nhớ vi chương trình (ROM) lưu trữcác vi chương trình (microprogram)Một vi chương trình bao gồm các vi lệnh (microinstruction)Mỗi vi lệnh mã hoá cho một vi thao tác(microoperation)Để hoàn thành một lệnh cần thực hiệnmột hoặc một vài vi chương trìnhTốc độ chậm
8 September 2009 16
NKK-HUT
Đơn vị điều khiển nối kết cứng
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 5
8 September 2009 17
NKK-HUT
Đơn vị điều khiển nối kết cứng (tiếp)
Sử dụng mạch cứng để giải mã và tạocác tín hiệu điều khiển thực hiện lệnhTốc độ nhanhĐơn vị điều khiển phức tạp
8 September 2009 18
NKK-HUT
4.Tập thanh ghi
Chức năng và đặc điểm:Chứa các thông tin tạm thời phục vụ chohoạ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ớSố lượng thanh ghi nhiều tăng hiệu năngcủa CPUCó hai loại thanh ghi:
Các thanh ghi lập trình đượcCác thanh ghi không lập trình được
8 September 2009 19
NKK-HUT
Phân loại thanh ghi theo chức năng
Thanh ghi địa chỉ: quản lý địa chỉ của ngănnhớ 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ácthô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ựchiện.
8 September 2009 20
NKK-HUT
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ệuThanh ghi trạng thái
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 6
8 September 2009 21
NKK-HUT
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ẽ đượcnhận vào. Sau khi một lệnh được nhận vào, nộidung PC tự động tăng để trỏ sang lệnhkế tiếp.
8 September 2009 22
NKK-HUT
Minh họa bộ đếm chương trình
8 September 2009 23
NKK-HUT
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ậpThường có một số thanh ghi con trỏ dữliệu
8 September 2009 24
NKK-HUT
Minh hoạ thanh ghi con trỏ dữ liệu
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 7
8 September 2009 25
NKK-HUT
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ụ chochươ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
8 September 2009 26
NKK-HUT
Con trỏ ngăn xếp SP (Stack Pointer)
Chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpKhi cất một thông tin vào ngăn xếp:
Nội dung của SP tự động giảmThô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ởiSPNội dung của SP tự động tăng
Khi ngăn xếp rỗng, SP trỏ vào đáy
8 September 2009 27
NKK-HUT
Minh họa con trỏ ngăn xếp SP
8 September 2009 28
NKK-HUT
Thanh ghi cơ sở và thanh ghi chỉ số
Thanh ghi cơ sở: chứa địa chỉ của ngănnhớ 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ậpso 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ố
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 8
8 September 2009 29
NKK-HUT
Minh họa thanh ghi cơ sở và thanh ghi chỉ số
8 September 2009 30
NKK-HUT
Các thanh ghi dữ liệu
Chứa các dữ liệu tạm thời hoặc các kếtquả trung gianCần có nhiều thanh ghi dữ liệuCác thanh ghi số nguyên: 8, 16, 32, 64 bitCác thanh ghi số dấu phẩy động
8 September 2009 31
NKK-HUT
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ủakết quả phép toánCác cờ điều khiển: biểu thị trạng thái điềukhiển của CPU
8 September 2009 32
NKK-HUT
Ví dụ cờ phép toán
Cờ Zero (cờ rỗng): được thiết lập lên 1 khikế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ếtquả phép toán nhỏ hơn 0Cờ Carry (cờ nhớ): được thiết lập lên 1 nếuphé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ế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 cờ báo tràn với số códấu .
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 9
8 September 2009 33
NKK-HUT
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épngắt với tín hiệu yêu cầu ngắt từ bên ngoàigửi tớiNếu IF = 0 CPU ở trạng thái cấm ngắtvới tín hiệu yêu cầu ngắt từ bên ngoài gửitới
8 September 2009 34
NKK-HUT
4.2. Tập lệnh
Mỗi bộ xử lý có một tập lệnh xác địnhTập lệnh thường có hàng chục đến hàngtrăm lệnhMỗ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ợinhớ chính là các lệnh của hợp ngữ
1. Giới thiệu chung về tập lệnh
8 September 2009 35
NKK-HUT
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ựchiệnĐịa chỉ toán hạng: chỉ ra nơi chứa các toánhạng mà thao tác sẽ tác động
Toán hạng nguồn: dữ liệu vào của thao tácToán hạng đích: dữ liệu ra của thao tác
8 September 2009 36
NKK-HUT
Số lượng địa chỉ toán hạng trong lệnh (1)
Ba địa chỉ toán hạng:2 toán hạng nguồn, 1 toán hạng đíchc = a + bTừ lệnh dài vì phải mã hoá địa chỉ cho cảba toán hạngĐược sử dụng trên các bộ xử lý tiên tiến
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 10
8 September 2009 37
NKK-HUT
Số lượng địa chỉ toán hạng trong lệnh (2)
Hai địa chỉ toán hạng:Một toán hạng vừa là toán hạng nguồnvừa là toán hạng đích; toán hạng còn lại làtoán hạng nguồna = a + bGiá trị cũ của 1 toán hạng nguồn bị mất vìphải chứa kết quảRút gọn độ dài từ lệnhPhổ biến
8 September 2009 38
NKK-HUT
Số lượng địa chỉ toán hạng trong lệnh (3)
Một địa chỉ toán hạng:Một toán hạng được chỉ ra trong lệnhMột toán hạng là ngầm định thường làthanh ghi (thanh chứa –accumulator)Được sử dụng trên các máy ở các thế hệtrước
8 September 2009 39
NKK-HUT
Số lượng địa chỉ toán hạng trong lệnh (4)
0 địa chỉ toán hạng:Các toán hạng đều được ngầm địnhSử dụng StackVí dụ:
push apush baddpop ccó nghĩa là : c = a+b
không thông dụng
8 September 2009 40
NKK-HUT
Đánh giá về số địa chỉ toán hạng
Nhiều địa chỉ toán hạngCác lệnh phức tạp hơnCần nhiều thanh ghiChương trình có ít lệnh hơnNhận lệnh và thực hiện lệnh chậm hơn
Ít địa chỉ toán hạngCác lệnh đơn giản hơnCần ít thanh ghiChương trình có nhiều lệnh hơnNhận lệnh và thực hiện lệnh nhanh hơn
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 11
8 September 2009 41
NKK-HUT
Các vấn đề của thiết kế tập lệnh (1)
Về thao tácBao nhiêu thao tác ?Các thao tác nào ?Mức độ phức tạp của các thao tác ?
Các kiểu dữ liệuCác khuôn dạng lệnhĐộ dài của trường mã thao tácSố lượng địa chỉ toán hạng
8 September 2009 42
NKK-HUT
Các vấn đề của thiết kế tập lệnh (2)
Các thanh ghiSố thanh ghi của CPU được sử dụngCác thao tác nào được thực hiện trên cácthanh ghi ?
Các phương pháp định địa chỉ (xét sau) (addressing modes)
8 September 2009 43
NKK-HUT
RISC
CISC và RISCCISC Complex Instruction Set Computer:
Máy tính với tập lệnh phức tạpCác bộ xử lý truyền thống: x86, 680x0
RISC Reduced Instruction Set Computer: Máy tính với tập lệnh thu gọnSunSPARC, Power PC, MIPS, ARM, …RISC đối nghịch với CISC
8 September 2009 44
NKK-HUT
Các đặc trưng của RISC
Số lượng lệnh ítHầu hết các lệnh truy nhập toán hạng ởcác thanh ghiTruy nhập bộ nhớ bằng các lệnhLOAD/STOREThời gian thực hiện lệnh là một chu kỳmáyCác lệnh có độ dài cố định (32 bit)
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 12
8 September 2009 45
NKK-HUT
Các đặc trưng của RISC (tiếp)
Số lượng khuôn dạng lệnh là ít (<=4)CPU có tập thanh ghi lớnCó ít mode địa chỉ (<=4)Hỗ trợ các thao tác của ngôn ngữ bậccaoĐều được thiết kế kiểu pipeline lệnh
8 September 2009 46
NKK-HUT
2. Các kiểu thao tác cơ bản
Chuyển dữ liệuXử lý số học với số nguyênXử lý logicĐiều khiển vào-raChuyển điều khiển (rẽ nhánh)Điều khiển hệ thống
8 September 2009 47
NKK-HUT
Các lệnh chuyển dữ liệu
MOVE Copy dữ liệu từ nguồn đến đíchLOAD 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à đíchCLEAR Chuyển các bit 0 vào toán hạng đíchSET Chuyển các bit 1 vào toán hạng đíchPUSH Cất nội dung toán hạng nguồn vào ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toán hạng đích
8 September 2009 48
NKK-HUT
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ừ hai toán hạng để lập cờ
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 13
8 September 2009 49
NKK-HUT
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 hai toán hạngđể lập cờ
8 September 2009 50
NKK-HUT
Minh hoạ các lệnh AND, OR, XORGiả sử có hai thanh ghi chứa dữ liệu như sau:
(R1) = 1010 1010(R2) = 0000 1111
R1 (R1) AND (R2) = 0000 1010Phé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 1111Phé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 0101Phé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.
8 September 2009 51
NKK-HUT
Các lệnh logic (tiếp)
SHIFT Dịch trái (phải) toán hạngROTATE Quay trái (phải) toán hạng
8 September 2009 52
NKK-HUT
Các thao tác SHIFT và ROTATE
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 14
8 September 2009 53
NKK-HUT
Các lệnh vào ra chuyên dụng
INPUT Copy dữ liệu từ một cổng xácđịnh đưa đến đích
OUTPUT Copy dữ liệu từ nguồn đếnmột cổng xác định
8 September 2009 54
NKK-HUT
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 vào 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ìnhcon
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
8 September 2009 55
NKK-HUT
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
8 September 2009 56
NKK-HUT
Lệnh rẽ nhánh có điều kiện
Trong lệnh có kèm theo điều kiệnKiểm tra điều kiện trong lệnh:
Nếu điều kiện đúng chuyển tới thực hiệnlệnh ở vị trí có địa chỉ XXX PC XXX
Nếu điều kiện sai chuyển sang thực hiệnlệnh_kế_tiếp
Điều kiện thường được kiểm tra thôngqua các cờCó nhiều lệnh rẽ nhánh có điều kiện
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 15
8 September 2009 57
NKK-HUT
Minh hoạ lệnh rẽ nhánh có điều kiện
8 September 2009 58
NKK-HUT
Lệnh CALL và RETURN
Lệnh gọi chương trình con: lệnh CALLCất nội dung PC (chứa địa chỉ của lệnh_kế_tiếp) raStackNạp vào PC địa chỉ của lệnh đầu tiên của chươngtrình con được gọiBộ xử lý được chuyển sang thực hiện chương trình
con tương ứngLệ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ạptrả 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
8 September 2009 59
NKK-HUT
Minh hoạ lệnh CALL và RETURN
8 September 2009 60
NKK-HUT
Gọi các thủ tục lồng nhau
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 16
8 September 2009 61
NKK-HUT
Sử dụng Stack
8 September 2009 62
NKK-HUT
Các lệnh điều khiển hệ thống
HALT Dừng thực hiện chương trìnhWAIT Tạm dừng thực hiện chương trình,
lặp kiểm tra điều kiện cho đến khithoả mãn thì tiếp tục thực hiện
NO OPERATION Không thực hiện gì cảLOCK Cấm không cho xin chuyển nhượng
busUNLOCK Cho phép xin chuyển nhượng bus
8 September 2009 63
NKK-HUT
3. Các phương pháp định địa chỉ (addressing modes)
Khái niệm về định địa chỉ (addressing)Toán hạng của lệnh có thể là:
Một giá trị cụ thể nằm ngay trong lệnhNội dung của thanh ghiNội dung của ngăn nhớ hoặc cổng vào-ra
Phương pháp định địa chỉ là cách thứcđị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 64
NKK-HUT
Các phương pháp định địa chỉ thông dụng
Định địa chỉ tức thìĐịnh địa chỉ thanh ghiĐịnh địa chỉ trực tiếpĐịnh địa chỉ gián tiếp qua thanh ghiĐịnh địa chỉ gián tiếpĐịnh địa chỉ dịch chuyển
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 17
8 September 2009 65
NKK-HUT
Định địa chỉ tức thì
Toán hạng nằm ngay trong Trường địachỉ của lệnhChỉ có thể là toán hạng nguồnVí dụ:
ADD R1, 5 ; R1 R1+5Không tham chiếu bộ nhớTruy nhập toán hạng rất nhanhDải giá trị của toán hạng bị hạn chế
8 September 2009 66
NKK-HUT
Sơ đồ định địa chỉ tức thì
8 September 2009 67
NKK-HUT
Định địa chỉ thanh ghi
Toán hạng được chứa trong thanh ghi cótên trong Trường địa chỉVí dụ:
ADD R1, R2 ; R1 R1+R2Số lượng thanh ghi ít Trường địa chỉchỉ cần ít bit Không tham chiếu bộ nhớTruy nhập toán hạng nhanhTăng số lượng thanh ghi hiệu quả hơn
8 September 2009 68
NKK-HUT
Sơ đồ định địa chỉ thanh ghi
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 18
8 September 2009 69
NKK-HUT
Định địa chỉ trực tiếp
Toán hạng là ngăn nhớ có địa chỉ đượcchỉ ra trực tiếp trong Trường địa chỉ củalệnhVí dụ: ADD R1, A ;R1 R1 + (A)
Cộng nội dung thanh ghi R1 với nội dung của ngăn nhớ có địa chỉ là ATìm toán hạng trong bộ nhớ ở địa chỉ A
CPU tham chiếu bộ nhớ một lần để truynhập dữ liệu
8 September 2009 70
NKK-HUT
Sơ đồ định địa chỉ trực tiếp
8 September 2009 71
NKK-HUT
Định địa chỉ gián tiếp qua thanh ghi
Toán hạng là ngăn nhớ có địa chỉ nằmtrong thanh ghiTrường địa chỉ cho biết tên thanh ghi đóThanh ghi có thể là ngầm địnhThanh ghi này được gọi là thanh ghicon trỏ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 72
NKK-HUT
Sơ đồ định địa chỉ gián tiếp qua thanh ghi
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 19
8 September 2009 73
NKK-HUT
Định địa chỉ gián tiếp qua ngăn nhớ
Ngăn nhớ được trỏ bởi Trường địa chỉcủa lệnh chứa địa chỉ của toán hạngCó thể gián tiếp nhiều lầnGiống như khái niệm biến con trỏ vàbiến động trong lập trìnhCPU phải thực hiện tham chiếu bộ nhớnhiều lần để tìm toán hạng chậmVùng nhớ có thể được tham chiếu làlớn
8 September 2009 74
NKK-HUT
Sơ đồ định địa chỉ gián tiếp qua ngăn nhớ
8 September 2009 75
NKK-HUT
Định địa chỉ dịch chuyển
Để xác định toán hạng, Trường địa chỉchứa hai thành phần:
Tên thanh ghiHằng số
Địa chỉ của toán hạng = nội dung thanhghi + hằng sốThanh ghi có thể được ngầm định
8 September 2009 76
NKK-HUT
Sơ đồ định địa chỉ dịch chuyển
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 20
8 September 2009 77
NKK-HUT
Các dạng của định địa chỉ dịch chuyển
Địa chỉ hoá tương đối với PCThanh ghi là Bộ đếm chương trình PCToán hạng có địa chỉ cách ngăn nhớ đượctrỏ bởi PC một độ lệch xác định
Định địa chỉ cơ sởThanh ghi chứa địa chỉ cơ sởHằng số là chỉ số
Định địa chỉ chỉ sốHằng số là địa chỉ cơ sởThanh ghi chứa chỉ số
8 September 2009 78
NKK-HUT
4.3. Hoạt động của CPU
Chu trình lệnh
Nhận lệnhGiải mã lệnhNhận toán hạngThực hiện lệnhCất toán hạngNgắt
8 September 2009 79
NKK-HUT
Giản đồ trạng thái chu trình lệnh
8 September 2009 80
NKK-HUT
Nhận lệnh
CPU đưa địa chỉ của lệnh cần nhận từ bộđếm chương trình PC ra bus địa chỉCPU phát tín hiệu điều khiển đọc bộ nhớLệnh từ bộ nhớ được đặt lên bus dữ liệuvà được CPU copy vào thanh ghi lệnh IRCPU tăng nội dung PC để trỏ sang lệnhkế tiếp
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 21
8 September 2009 81
NKK-HUT
Sơ đồ mô tả quá trình nhận lệnh
8 September 2009 82
NKK-HUT
Giải mã lệnh
Lệnh từ thanh ghi lệnh IR được đưađến đơn vị điều khiểnĐơ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ệnGiải mã lệnh xảy ra bên trong CPU
8 September 2009 83
NKK-HUT
Nhận dữ liệu
CPU đưa địa chỉ của toán hạng ra bus địa chỉCPU phát tín hiệu điều khiển đọcToán hạng được đọc vào CPU Tương tự như nhận lệnh
8 September 2009 84
NKK-HUT
Nhận dữ liệu gián tiếp
CPU đưa địa chỉ ra bus địa chỉCPU phát tín hiệu điều khiển đọcNội dung ngăn nhớ được đọc vào CPU, đó chính là địa chỉ của toán hạngĐịa chỉ này được CPU phát ra bus địachỉ để tìm ra toán hạngCPU phát tín hiệu điều khiển đọcToán hạng được đọc vào CPU
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 22
8 September 2009 85
NKK-HUT
Sơ đồ tả nhận toán hạng gián tiếp
8 September 2009 86
NKK-HUT
Thực hiện lệnh
Có nhiều dạng tuỳ thuộc vào lệnhCó thể là:Đọc/Ghi bộ nhớVào/RaChuyển giữa các thanh ghiThao tác số học/logicChuyển điều khiển (rẽ nhánh)...
8 September 2009 87
NKK-HUT
Ghi toán hạng
CPU đưa địa chỉ ra bus địa chỉCPU đưa dữ liệu cần ghi ra bus dữ liệuCPU phát tín hiệu điều khiển ghiDữ liệu trên bus dữ liệu được copy đếnvị trí xác định
8 September 2009 88
NKK-HUT
Sơ đồ mô tả quá trình ghi toán hạng
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 23
8 September 2009 89
NKK-HUT
Ngắt
Nội dung của bộ đếm chương trình PC (địachỉ trở về sau khi ngắt) được đưa ra bus dữliệuCPU đưa địa chỉ (thường được lấy từ con trỏngăn xếp SP) ra bus địa chỉCPU phát tín hiệu điều khiển ghi bộ nhớĐịa chỉ trở về trên bus dữ liệu được ghi ra vịtrí xác định (ở ngăn xếp) Đị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
8 September 2009 90
NKK-HUT
Sơ đồ mô tả chu trình ngắt
8 September 2009 91
NKK-HUT
4.4. Kỹ thuật đường ống lệnh
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ạnvà cho phép thực hiện gối lên nhau (như dâychuyền lắp ráp)Chẳng hạn có 6 công đoạn:
Nhận lệnh (Fetch Instruction - FI)Giải mã lệnh (Decode Instruction - DI)Tính địa chỉ toán hạng (Calculate Operand Address-CO)Nhận toán hạng (Fetch Operands - FO)Thực hiện lệnh (Execute Instruction - EI)Ghi toán hạng (Write Operands - WO)
8 September 2009 92
NKK-HUT
Giản đồ thời gian cho đường ống lệnh
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 24
8 September 2009 93
NKK-HUT
Các Hazard của đường ống lệnh
Hazard cấu trúcHazard dữ liệuHazard điều khiển
8 September 2009 94
NKK-HUT
Hazard về cấu trúc
Nguyên nhân: Dùng chung tài nguyênKhắc phục:
nhân tài nguyên để tránh xung độtLàm trễ
Ví dụ: Bus dữ liệu: truyền lệnh và dữ liệuBus lệnh riêng, bus dữ liệu riêng (cache
lệnh và cache dữ liệu)
8 September 2009 95
NKK-HUT
Ví dụ Hazard về cấu trúc
conflict on arithmetic unit
cache miss
TLB miss
MULT A,B,C
MULT D,E,F
I D F E E E WI D F F F E E E W
3 clocks necessary for multiplication
stall
8 September 2009 96
NKK-HUT
Hazard về dữ liệu
Nguyên nhân: lệnh sau sử dụng dữ liệu kết quả của lệnh trước Các dạng:
RAW (Read After Write)WAR (Write After Read)WAW (Write After Write)
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 25
8 September 2009 97
NKK-HUT
Sự phụ thuộc về dữ liệu
RAW
WAR
WAW
ADD A,B,C
ADD E,A,D
ADD A,B,C
ADD B,D,E
ADD A,B,C
ADD A,D,E
Write-A must be earlier than
Read-A
Read-B must be earlier than
Write-B
First Write-A must be earlier
Than second Write-A
8 September 2009 98
NKK-HUT
WAR and WAW
WAR
WAW
ADD A,B,C
ADD B,D,E
ADD A,B,C
ADD A,D,E
Read-B is earlier than Write-B
first Write-A is earlier than second Write-A
I D F E W
I D F E WWrite B
Read B
I D F E W
I D F E W
Write A
Write A
no conflict at in-order pipeline
conflict at out-of-order pipeline
8 September 2009 99
NKK-HUT
RAW
ADD A,B,C
ADD E,A,D
I D F E W
I D F E C
I D F E W
I D D D F E W
Read A
Write A
stall
Write-A must be earlier
Than Read-A Write A
Read A
8 September 2009 100
NKK-HUT
Hazard điều khiển
BEQ A, B, Label
LOAD C, X
・・・・
Label: LOAD C, Y
I D F E C
I D F E C
set PC
stall
Wait for branch address
calculation
next instruction to a branch instruction cannot be fetched until branch condition
defined and PC updated
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 26
8 September 2009 101
NKK-HUT
4.5. Các kiến trúc song song mức lệnh
Siêu đường ống (Superpipeline & Hyperpipeline)Siêu vô hướng (Superscalar)VLIW (Very Long Instruction Word)
8 September 2009 102
NKK-HUT
Superpipeline
8 September 2009 103
NKK-HUT
Superscalar
8 September 2009 104
NKK-HUT
VLIW (Very Long Instruction Word)
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 27
8 September 2009 105
NKK-HUT
4.6. Một số kiến trúc thông dụng
1. Kiến trúc IntelKiến trúc 4-bit: 4004Kiến trúc 8-bit: 8008,8080,8085Kiến trúc 16-bit: 8086/8088,80186,80286Kiến trúc 32-bit: 80386, 80486,
Pentium,Pentium II, Celeron, Pentium III, Pentium 4, Core
Kiến trúc 64-bit: Itanium, Core 2
8 September 2009 106
NKK-HUT
Kiến trúc 16-bit (IA-16)
Các thanh ghi bên trong: 16-bitXử lý các phép toán số nguyên với 16-bitQuản lý bộ nhớ theo đoạn 64KBytesMở đầu cho dòng máy tính IBM-PC
8 September 2009 107
NKK-HUT
Kiến trúc 32-bit (IA-32)
Các thanh ghi bên trong: 32-bitXử lý các phép toán số nguyên với 32-bitCó ba chế độ làm việc:
Chế độ 8086 thực (Real 8086 mode): làm việc như mộtbộ xử lý 8086Chế độ 8086 ảo (Virtual 8086 mode): làm việc nhưnhiều bộ xử lý 8086 (đa nhiệm 16-bit)Chế độ bảo vệ (Protected mode)
đa nhiệm 32-bitquản lý bộ nhớ ảo
Xử lý các phép toán số dấu phẩy động (từ 80486)
8 September 2009 108
NKK-HUT
Kiến trúc 64-bit (IA-64)
Các thanh ghi bên trong: 64-bitXử lý các phép toán số nguyên với 64-bitXử lý các phép toán số dấu phẩy độngKhông tương thích phần cứng với các bộxử lý trước đóTương thích phần mềm bằng cách giả lậpmôi trường
Bài giảng Hệ thống máy tính
Nguyễn Kim Khánh - ĐHBKHN 28
8 September 2009 109
NKK-HUT
2. Một số kiến trúc khác
Kiến trúc MIPS (đã học)Kiến trúc ARMKiến trúc Sun SPARCKiến trúc PowerPC…
8 September 2009 110
NKK-HUT
Hết chương 4