Tải bản đầy đủ (.pdf) (28 trang)

Kiến trúc bộ xử lý ppt

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

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 4
KIẾN TRÚC BỘ XỬ LÝ
Nguyễn Kim Khánh
Trường ĐạihọcBáchkhoaHà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ấutrúccơ bảncủa CPU
4.2. Tậplệnh
4.3. Hoạt động củaCPU
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
Nộidung
8 September 2009 4
NKK-HUT
4.1. Cấutrúccơ bảncủaCPU
 Nhiệmvụ củaCPU:
 Nhậnlệnh (Fetch Instruction): CPU đọclệnh từ bộ


nhớ.
 Giảimãlệnh (Decode Instruction): xác định thao tác
mà lệnh yêu cầu.
 Nhậndữ liệu (Fetch Data): nhậndữ liệutừ bộ nhớ
hoặccáccổng vào-ra.
 Xử lý dữ liệu (Process Data): thựchiện phép toán số
học hay phép toán logic vớicácdữ liệu.
 Ghi dữ liệu (Write Data): ghi dữ liệurabộ nhớ hay
cổng vào-ra
1. Nhiệmvụ và cấutrúccủaCPU
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ấutrúccơ bảncủaCPU
8 September 2009 6
NKK-HUT
 Đơnvịđiềukhiển (Control Unit - CU)
 Đơnvị số học và logic (Arithmetic and
Logic Unit - ALU)
 Tập thanh ghi (Register File - RF)
 Đơnvị nối ghép bus (Bus Interface Unit -
BIU)
 Bus bên trong (Internal Bus)
Các thành phầncơ bảncủaCPU
8 September 2009 7
NKK-HUT
2. Đơnvị số học và logic
 Chứcnăng: Thựchiệncácphéptoán
số học và phép toán logic:

 Số học: cộng, trừ, nhân, chia, tăng, giảm,
đảodấu
 Logic: AND, OR, XOR, NOT, phép dịch bit.
8 September 2009 8
NKK-HUT
Mô hình kếtnốiALU
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. Đơnvịđiềukhiển
 Chứcnăng
 Điềukhiểnnhậnlệnh từ bộ nhớđưavào
thanh ghi lệnh
 Tăng nội dung củaPC để trỏ sang lệnh kế
tiếp
 Giảimãlệnh đã đượcnhận để xác định thao
tác mà lệnh yêu cầu
 Phát ra các tín hiệu điềukhiểnthựchiệnlệnh
 Nhậncáctínhiệuyêucầutừ bus hệ thống và
đáp ứng vớicácyêucầu đó.
8 September 2009 10
NKK-HUT
Mô hình kếtnối đơnvịđiềukhiển
8 September 2009 11
NKK-HUT
Các tín hiệu đưa đến đơnvịđiềukhiển
 Clock: tín hiệunhịptừ mạch tạodao
động bên ngoài.
 Mã lệnh từ thanh ghi lệnh đưa đến để

giảimã.
 Các cờ từ thanh ghi cờ cho biếttrạng
thái củaCPU.
 Các tín hiệuyêucầutừ bus điềukhiển
8 September 2009 12
NKK-HUT
Các tín hiệu phát ra từđơnvịđiềukhiển
 Các tín hiệu điềukhiển bên trong CPU:
 Điềukhiển các thanh ghi
 ĐiềukhiểnALU
 Các tín hiệu điềukhiển bên ngoài CPU:
 Điềukhiểnbộ nhớ
 Điềukhiểncácmô-đ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ếtkếđơnvịđiềukhiển
 Đơnvịđiềukhiểnvi chương trình
(Microprogrammed Control Unit)
 Đơnvịđiềukhiểnnốikếtcứng
(Hardwired Control Unit)
8 September 2009 14
NKK-HUT
Đơnvịđiềukhiểnvi chương trình
8 September 2009 15
NKK-HUT
Đơnvịđiềukhiểnvi chương trình (tiếp)
 Bộ nhớ vi chương trình (ROM) lưutrữ
các vi chương trình (microprogram)

 Mộtvi chương trình bao gồmcácvi
lệnh (microinstruction)
 Mỗivi lệnh mã hoá cho một vi thao tác
(microoperation)
 Để hoàn thành mộtlệnh cầnthựchiện
mộthoặcmột vài vi chương trình
 Tốc độ chậm
8 September 2009 16
NKK-HUT
Đơnvịđiềukhiểnnốikếtcứ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
Đơnvịđiềukhiểnnốikếtcứng (tiếp)
 Sử dụng mạch cứng để giảimãvàtạo
các tín hiệu điềukhiểnthựchiệnlệnh
 Tốc độ nhanh
 Đơnvịđiềukhiểnphứctạp
8 September 2009 18
NKK-HUT
4.Tập thanh ghi
 Chứcnăng và đặc điểm:
 Chứacácthôngtin tạmthờiphụcvụ cho
hoạt động ở thời điểmhiệntạicủaCPU
 Đượccoilàmức đầutiêncủahệ thống nhớ
 Số lượng thanh ghi nhiều Æ tăng hiệunăng
củaCPU
 Có hai loại thanh ghi:
 Các thanh ghi lậptrìnhđược

 Các thanh ghi không lậptrìnhđược
8 September 2009 19
NKK-HUT
Phân loại thanh ghi theo chứcnăng
 Thanh ghi địachỉ: quảnlýđịachỉ củangăn
nhớ hay cổng vào-ra.
 Thanh ghi dữ liệu: chứatạmthờicácdữ
liệu.
 Thanh ghi đanăng: có thể chứa địachỉ
hoặcdữ liệu.
 Thanh ghi điềukhiển/trạng thái: chứacác
thông tin điềukhiểnvàtrạng thái củaCPU.
 Thanh ghi lệnh: chứalệnh đang đượcthực
hiện.
8 September 2009 20
NKK-HUT
Mộtsố thanh ghi điểnhình
 Các thanh ghi địachỉ
 Bộđếmchương trình PC (Program Counter)
 Con trỏ dữ liệu DP (Data Pointer)
 Con trỏ ngănxế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
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ộđếmchương trình PC

 Còn đượcgọi là con trỏ lệnh IP
(Instruction Pointer)
 Giữđịachỉ củalệnh tiếp theo sẽđược
nhận vào.
 Sau khi mộtlệnh đượcnhận vào, nội
dung PC tựđộng tăng để trỏ sang lệnh
kế tiếp.
8 September 2009 22
NKK-HUT
Minh họabộđếmchương trình
8 September 2009 23
NKK-HUT
Thanh ghi con trỏ dữ liệu
 Chứa địachỉ củangănnhớ dữ liệumà
CPU muốntruynhập
 Thường có mộtsố 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ănxếp (Stack)
 Ngănxếplàvùngnhớ có cấutrúcLIFO
(Last In - First Out)
 Ngănxếpthường dùng để phụcvụ cho
chương trình con
 Đáy ngănxếplàmộtngănnhớ xác định

 Đỉnh ngănxếplàthôngtin nằm ở vị trí
trên cùng trong ngănxếp
 Đỉnh ngănxếpcóthể bị thay đổi
8 September 2009 26
NKK-HUT
Con trỏ ngănxếp SP (Stack Pointer)
 Chứa địachỉ củangănnhớđỉnh ngănxếp
 Khi cấtmộtthôngtin vàongănxếp:
 Nội dung của SP tựđộng giảm
 Thông tin đượccất vào ngănnhớđượctrỏ
bởiSP
 Khi lấymột thông tin ra khỏingănxếp:
 Thông tin được đọctừ ngănnhớđượctrỏ bởi
SP
 Nội dung của SP tựđộng tăng
 Khi ngănxếprỗng, SP trỏ vào đáy
8 September 2009 27
NKK-HUT
Minh họa con trỏ ngănxếpSP
8 September 2009 28
NKK-HUT
Thanh ghi cơ sở và thanh ghi chỉ số
 Thanh ghi cơ sở: chứa địachỉ củangăn
nhớ cơ sở (địachỉ cơ sở)
 Thanh ghi chỉ số: chứa độ lệch địachỉ
giữangănnhớ mà CPU cầntruynhập
so vớingănnhớ cơ sở (chỉ số)
 Địachỉ củangănnhớ cầntruynhập=
địachỉ 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ứacácdữ liệutạmthờihoặccáckế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ấuphẩ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ủaCPU
 Các cờ phép toán: báo hiệutrạng thái của
kếtquả phép toán
 Các cờđiềukhiển: biểuthị trạng thái điều
khiểncủaCPU
8 September 2009 32
NKK-HUT
Ví dụ cờ phép toán
 Cờ Zero (cờ rỗng): đượcthiếtlậplên1 khi
kếtquả của phép toán bằng 0.
 Cờ Sign (cờ dấu): đượcthiếtlậplên1 khikết
quả phép toán nhỏ hơn0
 Cờ Carry (cờ nhớ): đượcthiếtlậplên1 nếu

phép toán có nhớ ra ngoài bit cao nhất Æ cờ
báo tràn vớisố không dấu.
 Cờ Overflow (cờ tràn): đượcthiếtlậplên1
nếucộng hai số nguyên cùng dấumàkếtquả
có dấungượclại Æ cờ báo tràn vớisố 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ềukhiển
 Cờ Interrupt (Cờ chophépngắt):
 NếuIF = 1 Æ CPU ở trạng thái cho phép
ngắtvới tín hiệuyêucầungắttừ bên ngoài
gửitới
 NếuIF = 0 Æ CPU ở trạng thái cấmngắt
với tín hiệuyêucầungắttừ bên ngoài gửi
tới
8 September 2009 34
NKK-HUT
4.2. Tậplệnh
 Mỗibộ xử lý có mộttậplệnh xác định
 Tậplệnh thường có hàng chục đến hàng
trămlệnh
 Mỗilệnh là mộtchuỗisố nhị phân mà bộ xử
lý hiểu được để thựchiệnmộtthaotácxác
định.
 Các lệnh đượcmôtả bằngcáckýhiệugợi
nhớ Æ chínhlàcáclệnh củahợpngữ
1. Giớithiệu chung về tậplệnh

8 September 2009 35
NKK-HUT
Các thành phầncủalệnh máy
 Mã thao tác (operation code Æ opcode):
mã hóa cho thao tác mà bộ xử lý phảithực
hiện
 Địachỉ toán hạng: chỉ ra nơichứacáctoán
hạng mà thao tác sẽ tác động
 Toán hạng nguồn: dữ liệuvàocủa thao tác
 Toán hạng đích: dữ liệuracủa thao tác
8 September 2009 36
NKK-HUT
Số lượng địachỉ toán hạng trong lệnh (1)
 Ba địachỉ toán hạng:
 2 toán hạng nguồn, 1 toán hạng đích
 c = a + b
 Từ lệnh dài vì phải mã hoá địachỉ cho cả
ba toán hạng
 Đượcsử 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 địachỉ toán hạng trong lệnh (2)
 Hai địachỉ toán hạng:
 Mộttoánhạng vừalàtoánhạng nguồn
vừalàtoánhạng đích; toán hạng còn lạilà
toán hạng nguồn
 a = a + b
 Giá trị cũ của 1 toán hạng nguồnbị mấtvì

phảichứakếtquả
 Rút gọn độ dài từ lệnh
 Phổ biến
8 September 2009 38
NKK-HUT
Số lượng địachỉ toán hạng trong lệnh (3)
 Một địachỉ toán hạng:
 Mộttoánhạng đượcchỉ ra trong lệnh
 Mộttoánhạng là ngầm định Æ thường là
thanh ghi (thanh chứa –accumulator)
 Đượcsử dụng trên các máy ở các thế hệ
trước
8 September 2009 39
NKK-HUT
Số lượng địachỉ toán hạng trong lệnh (4)
 0 địachỉ toán hạng:
 Các toán hạng đều đượcngầm định
 Sử dụng Stack
 Ví dụ:
push a
push b
add
pop c
có nghĩalà: c = a+b
 không thông dụng
8 September 2009 40
NKK-HUT
Đánh giá về sốđịachỉ toán hạng
 Nhiều địachỉ toán hạng
 Các lệnh phứctạphơn

 Cầnnhiều thanh ghi
 Chương trình có ít lệnh hơn
 Nhậnlệnh và thựchiệnlệnh chậmhơn
 Ít địachỉ toán hạng
 Các lệnh đơngiảnhơn
 Cần ít thanh ghi
 Chương trình có nhiềulệnh hơn
 Nhậnlệnh và thựchiệnlệ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ủathiếtkế tậplệnh (1)
 Về thao tác
 Bao nhiêu thao tác ?
 Các thao tác nào ?
 Mức độ phứctạpcủa các thao tác ?
 Các kiểudữ liệu
 Các khuôn dạng lệnh
 Độ dài củatrường mã thao tác
 Số lượng địachỉ toán hạng
8 September 2009 42
NKK-HUT
Các vấn đề củathiếtkế tậplệnh (2)
 Các thanh ghi
 Số thanh ghi củaCPU đượcsử dụng
 Các thao tác nào đượcthựchiệntrêncác
thanh ghi ?
 Các phương pháp định địachỉ (xét sau)
(addressing modes)

8 September 2009 43
NKK-HUT
RISC
 CISC và RISC
 CISCÆComplex Instruction Set Computer:
 Máy tính vớitậplệnh phứctạp
 Các bộ xử lý truyềnthống: x86, 680x0
 RISCÆReduced Instruction Set Computer:
 Máy tính vớitậplệnh thu gọn
 SunSPARC, Power PC, MIPS, ARM, …
 RISC đối nghịch vớiCISC
8 September 2009 44
NKK-HUT
Các đặctrưng của RISC
 Số lượng lệnh ít
 Hầuhếtcáclệnh truy nhập toán hạng ở
các thanh ghi
 Truy nhậpbộ nhớ bằng các lệnh
LOAD/STORE
 Thờigianthựchiệnlệnh là mộtchukỳ
máy
 Cá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 đặctrư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ớn
 Có ít mode địachỉ (<=4)

 Hỗ trợ các thao tác củangônngữ bậc
cao
 Đều đượcthiếtkế kiểu pipeline lệnh
8 September 2009 46
NKK-HUT
2. Các kiểu thao tác cơ bản
 Chuyểndữ liệu
 Xử lý số họcvớisố nguyên
 Xử lý logic
 Điềukhiển vào-ra
 Chuyển điềukhiển(rẽ nhánh)
 Điềukhiểnhệ thống
8 September 2009 47
NKK-HUT
Các lệnh chuyểndữ liệu
 MOVE Copy dữ liệutừ nguồn đến đích
 LOAD Nạpdữ liệutừ bộ nhớđếnbộ xử lý
 STORE Cấtdữ liệutừ bộ xử lý đếnbộ nhớ
 EXCHANGE Trao đổinội dung củanguồnvàđí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ấtnội dung toán hạng nguồn vào ngănxếp
 POP Lấynội dung đỉnh ngănxế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ấytrị tuyệt đốitoánhạng
 NEGATE Đổidấutoánhạng (lấybù2)
 INCREMENT Tăng toán hạng thêm 1
 DECREMENT Giảmtoánhạng đi1
 COMPARE Trừ hai toán hạng để lậpcờ
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ựchiện phép AND hai toán hạng
 OR Thựchiện phép OR hai toán hạng
 XOR Thựchiện phép XOR hai toán hạng
 NOT Đảobit củatoánhạng (lấybù1)
 TEST Thựchiện phép AND hai toán hạng
để lậpcờ
8 September 2009 50
NKK-HUT
Minh hoạ các lệnh AND, OR, XOR
 Giả sử có hai thanh ghi chứadữ liệunhư sau:
(R1) = 1010 1010
(R2) = 0000 1111
 R1 Å (R1) AND (R2) = 0000 1010
Phép toán AND dùng để xoá mộtsố bit và giữ
nguyên mộtsố bit còn lạicủatoánhạng.
 R1 Å (R1) OR (R2) = 1010 1111
Phép toán OR dùng để thiếtlậpmộtsố bit và giữ
nguyên mộtsố bit còn lạicủatoánhạng.
 R1 Å (R1) XOR (R2) = 1010 0101

Phép toán XOR dùng để đảomộtsố bit và giữ
nguyên mộtsố bit còn lạicủatoánhạng.
8 September 2009 51
NKK-HUT
Các lệnh logic (tiếp)
SHIFT Dịch trái (phải) toán hạng
ROTATE 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ệnhvàorachuyêndụng
 INPUT Copy dữ liệutừ mộtcổng xác
định đưa đến đích
 OUTPUT Copy dữ liệutừ nguồn đến
mộtcổng xác định
8 September 2009 54
NKK-HUT
Các lệnh chuyển điềukhiển
 JUMP (BRANCH) Lệnh nhảy không điềukiện:
 nạpvàoPC một địachỉ xác định
 JUMP CONDITIONAL Lệnh nhảycóđiềukiện:
 điềukiện đúng Æ nạpvàoPC một địachỉ xác định
 điềukiệnsaiÆ không làm gì cả
 CALL Lệnh gọichương trình con:
 Cấtnội dung củaPC (địachỉ trở về) ra mộtvị trí xác
định (thường ở Stack)

 NạpvàoPC địachỉ củalệnh đầutiêncủachương trình
con
 RETURN Lệnh trở về từ chương trình con:
 Khôi phục địachỉ trở về trả lạichoPC để trở về
chương trình chính
8 September 2009 55
NKK-HUT
Lệnh rẽ nhánh không điềukiện
 Chuyểntớithựchiệnlệnh
ở vị trí có địachỉ XXX:
PC Å XXX
8 September 2009 56
NKK-HUT
Lệnh rẽ nhánh có điềukiện
 Trong lệnh có kèm theo điềukiện
 Kiểmtrađiềukiện trong lệnh:
 Nếu điềukiện đúng Æ chuyểntớithựchiện
lệnh ở vị trí có địachỉ XXX
PC Å XXX
 Nếu điềukiệnsaiÆ chuyển sang thựchiện
lệnh_kế_tiếp
 Điềukiệnthường đượckiểmtrathông
qua các cờ
 Có nhiềulệnh rẽ nhánh có điềukiệ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ềukiện
8 September 2009 58

NKK-HUT
Lệnh CALL và RETURN
 Lệnh gọichương trình con: lệnh CALL
 Cấtnội dung PC (chứa địachỉ củalệnh_kế_tiếp) ra
Stack
 NạpvàoPC địachỉ củalệnh đầutiêncủachương
trình con đượcgọi
Æ Bộ xử lý được chuyển sang thựchiệnchương trình
con tương ứng
 Lệnh trở về từ chương trình con: lệnh RETURN
 Lấy địachỉ củalệnh_kế_tiếp đượccất ở Stack nạp
trả lạichoPC Æ Bộ xử lý được điềukhiển quay trở
về thựchiệntiếplệnh nằmsaulệnh CALL
8 September 2009 59
NKK-HUT
Minh hoạ lệnh CALL và RETURN
8 September 2009 60
NKK-HUT
Gọicácthủ tụclồ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ềukhiểnhệ thống
 HALT Dừng thựchiệnchương trình
 WAIT Tạmdừng thựchiệnchương trình,
lặpkiểmtrađiềukiệnchođếnkhi

thoả mãn thì tiếptụcthựchiện
 NO OPERATION Không thựchiệngìcả
 LOCK Cấm không cho xin chuyểnnhượng
bus
 UNLOCK Cho phép xin chuyểnnhượng bus
8 September 2009 63
NKK-HUT
3. Các phương pháp định địachỉ (addressing modes)
Khái niệmvềđịnh địachỉ (addressing)
 Toán hạng củalệnh có thể là:
 Mộtgiátrị cụ thể nằm ngay trong lệnh
 Nội dung của thanh ghi
 Nội dung củangănnhớ hoặccổng vào-ra
 Phương pháp định địachỉ là cách thức
địachỉ hóa trong trường địachỉ củalệnh
để xác định nơichứa toán hạng
8 September 2009 64
NKK-HUT
Các phương pháp định địachỉ thông dụng
 Định địachỉ tứcthì
 Định địachỉ thanh ghi
 Định địachỉ trựctiếp
 Định địachỉ gián tiếp qua thanh ghi
 Định địachỉ gián tiếp
 Định địachỉ 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 địachỉ tứcthì

 Toán hạng nằm ngay trong Trường địa
chỉ củalệnh
 Chỉ có thể là toán hạng nguồn
 Ví dụ:
ADD R1, 5 ; R1Å R1+5
 Không tham chiếubộ nhớ
 Truy nhập toán hạng rất nhanh
 Dảigiátrị của toán hạng bị hạnchế
8 September 2009 66
NKK-HUT
Sơđồđịnh địachỉ tứcthì
8 September 2009 67
NKK-HUT
Định địachỉ thanh ghi
 Toán hạng đượcchứa trong thanh ghi có
tên trong Trường địachỉ
 Ví dụ:
ADD R1, R2 ; R1Å R1+R2
 Số lượng thanh ghi ít Æ Trường địachỉ
chỉ cầnítbit
 Không tham chiếubộ nhớ
 Truy nhập toán hạng nhanh
 Tăng số lượng thanh ghi Æ hiệuquả hơn
8 September 2009 68
NKK-HUT
Sơđồđịnh địachỉ 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 địachỉ trựctiếp
 Toán hạng là ngănnhớ có địachỉđược
chỉ ra trựctiếptrongTrường địachỉ của
lệnh
 Ví dụ: ADD R1, A ;R1 Å R1 + (A)
 Cộng nội dung thanh ghi R1 vớinội dung
củangănnhớ có địachỉ là A
 Tìm toán hạng trong bộ nhớởđịachỉ A
 CPU tham chiếubộ nhớ mộtlần để truy
nhậpdữ liệu
8 September 2009 70
NKK-HUT
Sơđồđịnh địachỉ trựctiếp
8 September 2009 71
NKK-HUT
Định địachỉ gián tiếp qua thanh ghi
 Toán hạng là ngănnhớ có địachỉ nằm
trong thanh ghi
 Trường địachỉ cho biết tên thanh ghi đó
 Thanh ghi có thể là ngầm định
 Thanh ghi này đượcgọi là thanh ghi
con trỏ
 Vùng nhớ có thểđược tham chiếulà
lớn(2
n
), (vớin làđộ dài của thanh ghi)
8 September 2009 72
NKK-HUT
Sơđồđịnh địachỉ 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 địachỉ gián tiếpqua ngănnhớ
 Ngănnhớđượctrỏ bởiTrường địachỉ
củalệnh chứa địachỉ củatoánhạng
 Có thể gián tiếp nhiềulần
 Giống như khái niệmbiến con trỏ và
biến động trong lậptrình
 CPU phảithựchiện tham chiếubộ nhớ
nhiềulần để tìm toán hạng Æ chậm
 Vùng nhớ có thểđược tham chiếulà
lớn
8 September 2009 74
NKK-HUT
Sơđồđịnh địachỉ gián tiếp qua ngănnhớ
8 September 2009 75
NKK-HUT
Định địachỉ dịch chuyển
 Để xác định toán hạng, Trường địachỉ
chứa hai thành phần:
 Tên thanh ghi
 Hằng số
 Địachỉ của toán hạng = nội dung thanh
ghi + hằng số
 Thanh ghi có thểđượcngầm định
8 September 2009 76
NKK-HUT
Sơđồđịnh địachỉ 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 địachỉ dịch chuyển
 Địachỉ hoá tương đốivớiPC
 Thanh ghi là Bộđếmchương trình PC
 Toán hạng có địachỉ cách ngănnhớđược
trỏ bởiPC một độ lệch xác định
 Định địachỉ cơ sở
 Thanh ghi chứa địachỉ cơ sở
 Hằng số là chỉ số
 Định địachỉ chỉ số
 Hằng số là địachỉ cơ sở
 Thanh ghi chứachỉ số
8 September 2009 78
NKK-HUT
4.3. Hoạt động củaCPU
Chu trình lệnh
 Nhậnlệnh
 Giảimãlệnh
 Nhậntoánhạng
 Thựchiệnlệnh
 Cất toán hạng
 Ngắ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ậnlệnh

 CPU đưa địachỉ củalệnh cầnnhậntừ bộ
đếmchương trình PC ra bus địachỉ
 CPU phát tín hiệu điềukhiển đọcbộ nhớ
 Lệnh từ bộ nhớđược đặt lên bus dữ liệu
và được CPU copy vào thanh ghi lệnh IR
 CPU tăng nội dung PC để trỏ sang lệnh
kế 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ậnlệnh
8 September 2009 82
NKK-HUT
Giảimãlệnh
 Lệnh từ thanh ghi lệnh IR được đưa
đến đơnvịđiềukhiển
 Đơnvịđiềukhiểntiếnhànhgiảimãlệnh
để xác định thao tác phảithựchiện
 Giảimãlệnh xảy ra bên trong CPU
8 September 2009 83
NKK-HUT
Nhậndữ liệu
 CPU đưa địachỉ của toán hạng ra bus
địachỉ
 CPU phát tín hiệu điềukhiển đọc
 Toán hạng được đọc vào CPU
 Tương tự như nhậnlệnh
8 September 2009 84
NKK-HUT

Nhậndữ liệugiántiếp
 CPU đưa địachỉ ra bus địachỉ
 CPU phát tín hiệu điềukhiển đọc
 Nội dung ngănnhớđược đọc vào CPU,
đó chính là địachỉ củatoánhạng
 Địachỉ này được CPU phát ra bus địa
chỉđểtìm ra toán hạng
 CPU phát tín hiệu điềukhiển đọc
 Toá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ậntoánhạng gián tiếp
8 September 2009 86
NKK-HUT
Thựchiệnlệnh
 Có nhiềudạng tuỳ thuộcvàolệnh
 Có thể là:
 Đọc/Ghi bộ nhớ
 Vào/Ra
 Chuyểngiữa các thanh ghi
 Thao tác số học/logic
 Chuyển điềukhiển(rẽ nhánh)

8 September 2009 87
NKK-HUT
Ghi toán hạng
 CPU đưa địachỉ ra bus địachỉ
 CPU đưadữ liệucần ghi ra bus dữ liệu

 CPU phát tín hiệu điềukhiểnghi
 Dữ liệutrênbus dữ liệu đượccopy đến
vị 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ủabộđếmchương trình PC (địa
chỉ trở về sau khi ngắt) được đưarabus dữ
liệu
 CPU đưa địachỉ (thường đượclấytừ con trỏ
ngănxếp SP) ra bus địachỉ
 CPU phát tín hiệu điềukhiểnghibộ nhớ
 Địachỉ trở về trên bus dữ liệu được ghi ra vị
trí xác định (ở ngănxếp)
 Địachỉ lệnh đầutiêncủachương trình con
điềukhiểnngắt đượcnạpvàoPC
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ạn
và cho phép thựchiệngối lên nhau (như dây

chuyềnlắpráp)
 Chẳng hạn có 6 công đoạn:
 Nhậnlệnh (Fetch Instruction - FI)
 Giảimãlệnh (Decode Instruction - DI)
 Tính địachỉ toán hạng (Calculate Operand Address-CO)
 Nhận toán hạng (Fetch Operands - FO)
 Thựchiệnlệ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úc
 Hazard dữ liệu
 Hazard điềukhiển
8 September 2009 94
NKK-HUT
Hazard về cấu trúc
 Nguyên nhân: Dùng chung tài nguyên
 Khắc phục:
 nhân tài nguyên để tránh xung đột
 Làm trễ
Ví dụ:
 Bus dữ liệu: truyền lệnh và dữ liệu
Æ Bus 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 W
I 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 W
Write 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

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×