Bài giảng Kiến trúc máy tính - Chương 6: Kiến trúc bộ lệnh - Vũ Đức Lung

pdf 34 trang ngocly 3390
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 6: Kiến trúc bộ lệnh - Vũ Đức Lung", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_chuong_6_kien_truc_bo_lenh_vu_d.pdf

Nội dung text: Bài giảng Kiến trúc máy tính - Chương 6: Kiến trúc bộ lệnh - Vũ Đức Lung

  1. Chương 6– Kin trúc b lnh 6.1.Phânloạikiếntrúcbộlệnh 6.2.Địachỉbộnhớ 6.3.Mãhóatậplệnh 6.3.1.Cáctiêuchuẩnthiếtkếdạngthứclệnh 6.3.2.Opcodemởrộng 6.3.3.Vídụvềdạngthứclệnh 6.3.4.Cácchếđộlậpđịachỉ 6.4.Bộlệnh 6.4.1.Nhómlệnhtruyềndữliệu 6.4.2.Nhómlệnhtínhtoánsốhọc 6.4.3.NhómlệnhLogic 6.4.4.Nhómcáclệnhdịchchuyển 6.4.5.Nhómcáclệnhcóđiềukiệnvàlệnhnhảy 6.5.CấutrúclệnhCISCvàRISC Khoa KTMT Vũ Đc Lung 1
  2. 6.1.Phânloikintrúcblnh  kiến trúc ngăn xếp (stack),  kiến trúc thanh ghi tích lũy (Accumulator)  kiến trúc thanh ghi đa dụng GPRA(generalpurposeregister architecture). Ví dụ phép tính C=A+Bđược dùng trong các kiểu kiến trúc: Khoa KTMT Vũ Đc Lung 2
  3. Kiu kin trúc GPR  Ưu điểm – Dùngthanhghi,mộtdạnglưutrữtrongcủaCPUcótốcđộnhanhhơn bộnhớngoài – Trình tự thực hiện lệnh có thể ởmọi thứ tự – Dùng thanh ghi để lưu các biến và như vậy sẽ giảm thâm nhập đến bộ nhớ =>chương trình sẽ nhanh hơn  Nhược điểm – Lệnhdài – Số lượng thanh ghi bị giới hạn  Ngănxếp (Stack) ?  Thanhghitíchluỹ (Accumulator Register) ? Khoa KTMT Vũ Đc Lung 3
  4. Kiukintrúcthanhghiđadng  lệnh có 2toán hạng ADDA,B  lệnh có 3toán hạng ADDA,B,C  Số toán hạng bộ nhớ có thể thay đổi từ 0tới 3  Các loại toán hạng • thanhghithanhghi(kiểunàycònđượcgọinạplưutrữ), • thanhghi bộnhớ • bộnhớ bộnhớ. Khoa KTMT Vũ Đc Lung 4
  5. 6.2.Đachbnh  Các khái niệm: – Memory,bit,cell,address,byte,word  Sắpxếpthứtựbyte – Có vấn đề gì không trong cách sắp xếp thứ tự byte Khoa KTMT Vũ Đc Lung 5
  6. Vn đ th t byte VD:Biu din JIMSMITH,21tui,phòng 260 Khoa KTMT Vũ Đc Lung 6
  7. 6.3.Mãhóatplnh  Các trường mã hóa: – mã tác vụ (operationcode): Opcode – Địa chỉ Khoa KTMT Vũ Đc Lung 7
  8. Các tiêu chun thit k dng thc lnh  Có 4tiêu chuẩn thiết kế: – Mã lệnh ngắn ưu việt hơn mã lệnh dài – Độ dài mã lệnh đủ đế biểu diễn tất cả phép toán mong muốn – độ dài wordcủa máy bằng bội số nguyên của độ dài ký tự – sốBITtrongtrườngđịachỉcàngngắncàngtốt Ví dụ thiết kế máy với ký tự 8bitvà bộ nhớ chính chứa 216 ký tự +Ônhớ kích thước 8bit=>trường địa chỉ cần 16bit +Ônhớ kích thước 32bit=>trường địa chỉ cần 14bit Khoa KTMT Vũ Đc Lung 8
  9. Opcodemrng ví d mt máy tính có lnh dài 16bit :  Lệnh (n+k)bitvới opcode chiếm kbitvà địa chỉ chiếm nbit. VD:15lệnh ba địa chỉ Khoa KTMT Vũ Đc Lung 9
  10. Opcodemrng  14lệnh hai địa chỉ Khoa KTMT Vũ Đc Lung 10
  11. dng thc lnh PDP11  Mã hóa lệnh trên máy PDP11  támcáchtrênPDP11  opcode mở rộng có dạng x111  các lệnh một toán hạng – opcode 10bit:4bitopcode và 6bitcủa trường toán hạng nguồn – mode/register6bit Khoa KTMT Vũ Đc Lung 11
  12. Hlntel8088/80286/80386/Pentium  DạngthứclệnhcủacácmáytínhIntel: – Cấu tạo phức tạp – kế thừa từ nhiều thế hệ – bốncáchlậpđịachỉtoánhạng(sovớitámcáchtrênPDP11) PREFIXbyte: LOCKprefix:đểđảmbảoviệcdànhriêngvùngnhớchiasẻtrongmôitrường đabộxửlý REPeatprefix:đặctrưngchomộtchuỗiphéptoánđượclậpđilập li Khoa KTMT Vũ Đc Lung 12
  13. FormatlnhPentium Khoa KTMT Vũ Đc Lung 13
  14. Cácchđlpđach  Địachỉtứcthời–Immediate  Địachỉtrựctiếp–Direct  Địachỉgiántiếp–Indirect  Địachỉthanhghi–Register  Địachỉgiántiếpthanhghi–Registerinderect  Địachỉdịchchuyển–Displacement  Địachỉngănxếp Stack Khoa KTMT Vũ Đc Lung 14
  15. Các ch đ lp đa ch Khoa KTMT Vũ Đc Lung 15
  16. Cách tính đa ch thc Khoa KTMT Vũ Đc Lung 16
  17. Các ch đ lp đa ch  Lập địa chỉ tức thời (ImmediateAddressing) : – OPERAND=A – MOV R1,#4  Lập địa chỉ trực tiếp (DirectAddressing) : – EA=A  Lập địa chỉ gián tiếp (IndirectAddressing) – EA=(A) – một contrỏ (trong C++)  Lập địa chỉ thanh ghi (RegisterAddressing) – trỏ tới một thanh ghi – Các máy ngày nayđược thiết kế có các thanh ghi vì lý do? Khoa KTMT Vũ Đc Lung 17
  18. Các ch đ lp đa ch  Địa chỉ gián tiếp thanh ghi (RegisterIndirect) – EA=(R)  Địa chỉ Địa chỉ dịch chuyển – Displacement – EA=A+(R)  Địa chỉ ngăn xếp – Stack – FILO(firstinlastout ) Khoa KTMT Vũ Đc Lung 18
  19. VD: Khoa KTMT Vũ Đc Lung 19
  20. Ví d lnh Addvi tham chiu b nh  Add R1,@(R3) Khoa KTMT Vũ Đc Lung 20
  21. 6.4.Blnh  Quá trình biên dịch ra ngôn ngữ máy Khoa KTMT Vũ Đc Lung 21
  22. Nhóm lnh truyn d liu  MOVERi,Rj  Một số ví dụ lệnh MOVE: Khoa KTMT Vũ Đc Lung 22
  23. Nhóm lnh truyn d liu  LOAD đích,nguồn – vídụ:LOADRi,M(địachỉ) //Ri M[địachỉ]  STORE đích,nguồn – vídụ:STOREM(địachỉ),Ri //M[địachỉ]←Ri Khoa KTMT Vũ Đc Lung 23
  24. Nhóm lnh tính toán s hc  ADDđích,nguồn //đích đích+nguồn  SUBđích,nguồn //đích đích– nguồn  Ví dụ: ADD AX,BX //AX AX+BX ADD AL,74H //AL  AL+[74H] SUB CL,AL //CL  CL– AL SUB AX,0405H //AX  AX– 0405H Khoa KTMT Vũ Đc Lung 24
  25. Nhóm lnh tính toán s hc  Các lệnh tính toán số học cơ bản Khoa KTMT Vũ Đc Lung 25
  26. Nhóm lnh logic  ANDđích,nguồn  ORđích,nguồn  Vídụ: ANDAL,BL AL=00001101B BL=00110011B =>AL= 00000001B Khoa KTMT Vũ Đc Lung 26
  27. Nhóm các lnh dch chuyn s hc hoc logic (SHIFT)  SRL(ShiftRightLogical dịch phải logic)  SLL(ShiftLeftLogical dịch trái logic)  SRA(ShiftRightArithmetic dịch phải số học)  SLA(ShiftLeftArithmetic– dịch trái số học) Khoa KTMT Vũ Đc Lung 27
  28. Các lnh dch chuyn Khoa KTMT Vũ Đc Lung 28
  29. Các lnh dch chuyn Khoa KTMT Vũ Đc Lung 29
  30. Các lnh có điu kin và lnh nhy Nếu thì nếukhông (IF THEN ELSE ) Khoa KTMT Vũ Đc Lung 30
  31. Các lnh có điu kin và lnh nhy Ví dụ: LOAD R1,#100 Loop: ADD R0,(R2)+ DECREMENT R1 BEQZ R1,Loop Khoa KTMT Vũ Đc Lung 31
  32. Thng kê s dng CPU Loại lệnh %sử dụng thời gian Chuyển dữ liệu 43% Điều khiển dòng chảy 23% Tính toán số học 15% Sosánh 13% Phép toán Logic 5% Các lệnh khác 1% Khoa KTMT Vũ Đc Lung 32
  33. Cu trúc lnh CISCvà RISC RISC CISC – Độ dài lệnh cố định (32bit) – Kích thước tập lệnh thay đổi – Sử dụng kiến trúc loadstorecác lệnh xử – Giá trị trong bộ nhớ được dùng như như lý dữ liệu hoạt động chỉ trong thanh ghi và toán hạng trong các chỉ lệnh xử lý dữ liệu cách ly với các lệnh truy cập bộ nhớ – Có rất nhiều thanh ghi,nhưng hầu hết chỉ để – Một số lớn các thanh ghi đa dụng 32bit sử dụng cho một mục đích riêng biệt nào đấy – Có một số ít lệnh (thường dưới 100lệnh) – Có rất nhiều lệnh (khoảng 500) – Có một số ít các kiểu định vị – Có nhiều kiểu định vị (xem phần 6.3.4) – Có một số ít dạng lệnh (một hoặc hai) – Có nhiều dạng lệnh – Chỉ có các lệnh ghi hoặc đọc ônhớ mới – Có nhiều lệnh khác cũng thâm nhập vào bộ thâm nhập vào bộ nhớ. nhớ được – Giải mã lệnh logicbằng kết nối phần cứng – Sử dụng rất nhiều codetrong ROMgiải mã – Thực thi chỉ lệnh theo cấu trúc dòng chảy các chỉ lệnh (xem hình 7.9trong chương sau) – Các máy cũ phải tuần tự hết dòng lệnh này – Một lệnh thực thi trong 1 chu kì xung mới đến dòng lệnh khác nhịp – Cần nhiều chu kì xung nhịp để hoàn thành một lệnh Khoa KTMT Vũ Đc Lung 33
  34. CÂUHIVÀBÀITPCHƯƠNG 6 1.Giả sử cần thiết kế máy với ký tự 8bitvà bộ nhớ chính chứa 224 ký tự.Hãy cho biết trường địa chỉ cần bao nhiêu bittrong trường hợp: a)Ônhớ kích thước 8bit b)Ônhớ kích thước 16bit c)Ônhớ kích thước 32bit 2.Thiết kế opcode mở rộng nhằm cho phép mã hóa nội dungsau trong lệnh 36 bit – 7lệnh có hai địa chỉ 15bitvà một số hiệu thanh ghi 3bit – 500lệnh có một địa chỉ 15bitvà một số hiệu thanh ghi 3bit – 50lệnh không có địa chỉ hoặc thanh ghi 3.Có thể thiết kế opcode mở rộng để cho phép mã hóa nội dungsau trong lệnh 12bitđược không?Trường thanh ghi rộng 3bit. – 4lệnh có ba thanh ghi – 255lệnh có hai thanh ghi – 2048lệnh không có thanh ghi Khoa KTMT Vũ Đc Lung 34