intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

CHƯƠNG 4 MỨC VI LẬP TRÌNH

Chia sẻ: Dao Tu | Ngày: | Loại File: PPT | Số trang:61

49
lượt xem
7
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Chương trình mã máy đang thực hiện chiếm 3 vùng nhớ khác nhau trong bộ nhớ: vùng lệnh, vùng dữ liệu, vùng ngăn xếp Vùng lệnh: chứa các lệnh của chương trình, do Thanh ghi bộ đếm chương trình quản lý. Vùng dữ liệu: chứa dữ liệu, do thanh ghi con trỏ dữ liệu quản lý Vùng ngăn xếp: chứa địa chỉ CTC, ngắt, phục vụ thực hiện rẽ nhánh, do thanh ghi con trỏ ngăn xếp quản lý

Chủ đề:
Lưu

Nội dung Text: CHƯƠNG 4 MỨC VI LẬP TRÌNH

  1. CHƯƠNG 4 MỨC VI LẬP TRÌNH BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 1 /87
  2. THANH GHI Chức năng và đặc điểm:  Tập hợp các thanh ghi nằm trong BXL  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 BXL Như là mức đầu tiên của hệ thống nhớ  Tùy thuộc vào BXL cụ thể  Số lượng thanh ghi nhiều → tăng hiệu năng của BXL  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  BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 2 /87
  3. THANH GHI Một số thanh ghi điển hình  thanh ghi địa chỉ  Các Bộ đếm chương trình (Program Counter)   Con trỏ dữ liệu (Data Pointer)  Con trỏ ngăn xếp (Stack Pointer)  Thanh ghi cơ sở và thanh ghi ch ỉ s ố (Base Register & Index Register) thanh ghi dữ liệu  Các  Thanh ghi trạng thái (thanh ghi cờ) BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 3 /87
  4. THANH GHI Thanh ghi địa chỉ   Chương trình mã máy đang thực hiện chiếm 3 vùng nhớ khác nhau trong bộ nhớ: vùng lệnh, vùng dữ liệu, vùng ngăn xếp Vùng lệnh: chứa các lệnh của chương trình, do Thanh  ghi bộ đếm chương trình quản lý.  Vùng dữ liệu: chứa dữ liệu, do thanh ghi con tr ỏ d ữ li ệu quản lý  Vùng ngăn xếp: chứa địa chỉ CTC, ngắt, ph ục vụ th ực hiện rẽ nhánh, do thanh ghi con tr ỏ ngăn x ếp qu ản lý BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 4 /87
  5. THANH GHI Bộ đếm chương trình  gọi là con trỏ lệnh IP (Instruction Pointer),  Còn quản lý địa chỉ vùng lệnh  Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vào  Sau khi lệnh được nhận vào, nội dung PC tự động tăng để trỏ sang lệnh kế tiếp BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 5 /87
  6. THANH GHI Minh họa bộ đếm chương trình  . . . Lệnh Lệnh Lệnh Lệnh sẽ được PC nhận vào Lệnh kế tiếp Lệnh Lệnh . . . BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 6 /87
  7. THANH GHI Thanh ghi con trỏ dữ liệu   Chứa địa chỉ của ngăn nhớ dữ liệu mà BXL cần truy nhập ... Dữ liệu Dữ liệu Dữ liệu DP DL cần đọc/ghi Dữ liệu Dữ liệu . . . BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 7 /87
  8. THANH GHI Con trỏ ngăn xếp  xếp (Stack):  Ngăn Là vùng nhớ có cấu trúc LIFO   Đáy ngăn xếp là một ngăn nh ớ xác định  Đỉnh ngăn xếp có thể bị thay đổi trỏ ngăn xếp SP:  Con SP trỏ vào ngăn nhớ đỉnh ngăn xếp   Cất thêm thông tin vào ngăn x ếp → SP giảm  Lấy thông tin từ ngăn xếp → SP tăng  Khi ngăn xếp rỗng → SP trỏ vào đáy BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 8 /87
  9. THANH GHI CÊt  vµo SP Đỉnh Stack ChiÒu  LÊy r a t¨ng  cña  ®Þa   chØ  Đáy Stack BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 9 /87
  10. THANH GHI Thanh ghi cơ sở và thanh ghi chỉ số  ghi cơ sở: chứa địa chỉ của ngăn nhớ cơ sở  Thanh (ngăn nhớ gốc tương đối), còn gọi: địa chỉ đoạn (segment)  Thanh ghi chỉ số: chứa độ lệch của địa chỉ giữa ngăn nhớ mà BXL cần truy nhập so với ngăn nhớ cơ sở, còn gọi: địa chỉ offset 10 / BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA
  11. . . . Thanh ghi cơ sở Ngăn nhớ cơ sở Gốc tương đối Thanh ghi chỉ số ch ng lệ ả Kho Ng/nhớ cần truy nhập . . . 11 / BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA
  12. Các thanh ghi dữ liệu   Chứa các dữ liệu tạm thời hoặ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ố thực (dấu phẩy động) 12 / BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA
  13. Thanh ghi trạng thái  gọi là thanh ghi cờ (Flag Register)  Còn  Chứa các thông tin trạng thái của BXL Các cờ phép toán: báo hiệu trạng thái của phép toán   Các cờ điều khiển: biểu thị trạng thái điều khiển c ủa BXL 13 / BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA
  14. Minh họa thanh ghi trạng thái x x x x OF DF IF TF SF ZF X AF X PF X CF • OF (Overflow - tràn): OF = 1 xác định tràn số học, xảy ra khi kết quả vượt ra ngoài ph ạm vi biểu diễn. • DF (Direction- hướng): xác định hướng chuyển chuỗi, DF = 1 khi CPU làm việc với chuỗi Cờ theo thứ tự từ phải sang trái và ngược lại. • IF (Interrupt - ngắt): cho phépuhay ển m các ngắt có mặt nạ. điề khi cấ Cờ trạng thái • TF (Trap - bẫy): đặt CPU vào chế độ từng bước, dùng cho các chương trình g ỡ rối (debugger). • SF (Sign - dấu): dùng để chỉ các kết quả số học là số dương (SF = 0) hay âm (SF = 1). • ZF (Zero): = 1 nếu kết quả của phép toán trước là 0. • AF (Auxiliary – nhớ phụ): dùng trong các số thập phân để chỉ nhớ từ nửa byte thấp hay mượn từ nửa byte cao. • PF (Parity): PF = 1 nếu kết quả của phép toán là có tổng số bit 1 là chẵn (dùng để ki ểm tra lỗi truyền dữ liệu) •CF (Carry): CF = 1 nếu có nhớ hay mượn từ bit cao nhất của kết quả. Cờ này cũng dùng cho các lệnh quay. 14 / BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA
  15. 4.2.1 Đường dữ liệu Đường dữ liệu là một phần của CPU, nó có chứa  ALU, các đầu vào và đầu ra. Thí dụ trên hình vẽ:  16 thanh ghi 16 bit giống nhau tạo nên một bộ  nhớ tạm chỉ truy cập được ở mức vi chương trình. Thanh ghi đưa nội dung ra: bus A, bus B hoặc  đồng thời cả 2 bus. Nạp vào thanh ghi: từ bus C.  ALU (16 bit) có thể thực hiện 4 chức năng: A+B,  A AND B, A và not A A F0 và F1 định chức năng sẽ được ALU thực hiện.  ALU sinh ra hai bit trạng thái dựa trên kết quả ra  hiện thời của nó: N có giá trị 1 khi kết quả ra là âm  Z có giá trị 1 khi kết quả ra bằng 0 (Zê-rô).  15 / BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA
  16. 4.2.1 Đường dữ liệu (Data path) Shifter có thể dịch: trái, phải, không dịch.  Có thể thực hiện dịch trái hai bit một giá trị  ghi trong thanh ghi R, bằng cách tính R+R trong ALU, sau đó dịch kết quả (tổng) một bit nữa sang trái bằng thanh ghi dịch. A latch và B latch: được nạp từ bus A và  bus B để cho phép có thể thay đổi nội dung các thanh ghi đã nạp giá trị vào ALU. Các tín hiệu L0 và L1 điều khiển việc nạp  giá trị trên bus A và bus B vào các thanh ghi chốt. 16 / BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA
  17. 4.2.1 Đường dữ liệu (Data path) MAR: thanh ghi địa chỉ ô nhớ cần thao tác  Có thể được nạp từ thanh ghi chốt B song  song với một thao tác của ALU. M0 điều khiển việc nạp của MAR.  MBR: thanh ghi đệm (dữ liệu) đọc/ghi bộ nhớ.  Được nạp giá trị từ đầu ra của thanh ghi  dịch, giá trị này cũng có thể đồng thời được chứa vào một trong các thanh ghi của bộ nhớ tạm. M1 điều khiển việc nạp của MBR từ đầu ra  của thanh ghi dịch M2 và M3 điều khiển việc đọc và ghi bộ nhớ.  AMUX: bộ dồn kênh để chọn dữ liệu đưa vào  ALU từ A latch hay từ MBR A0 điều khiển AMUX.  17 / BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA
  18. 4.4.2 Thí dụ về một vi chương trình Các thanh ghi:  PC, AC và SP  IR: Thanh ghi lệnh.  TIR (Temporary IR): chứa tạm thời bản sao của  IR dùng để giải mã vĩ chỉ thị. 0, 1, -1: các hằng số được chỉ ra trên thanh ghi  AMASK ( 0000.1111.1111.1111b): làm mặt nạ  để tách các bit của trường địa chỉ khỏi các bit của trường opcode trong chỉ thị MAC-1. SMASK ( 0000.0000.1111.1111b): làm mặt nạ  để tách địa chỉ offset 8 bit trong các chỉ thị INSP và DESP. Sáu thanh ghi còn lại (A, B, C, D, E, F) không  được gán trước các chức năng, có thể được sử dụng theo ý của người lập vi chương trình. 18 / BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA
  19. 4.2.2 Vi chỉ thị - microinstruction Các tín hiệu để điều khiển đường dữ liệu gồm 9  nhóm:  16 tín hiệu để điều khiển việc nạp cho bus A từ bộ nhớ tạm (có 16 thanh ghi).  16 tín hiệu để điều khiển việc nạp cho bus B từ bộ nhớ tạm.  16 tín hiệu để điều khiển việc nạp cho bộ nhớ tạm từ bus C.  2 tín hiệu để điều khiển 2 thanh ghi ch ốt A và B.  2 tín hiệu để điều khiển chức năng ALU.  2 tín hiệu để điều khiển bộ dịch.  4 tín hiệu để điều khiển MAR và MBR.  2 tín hiệu để chỉ rõ thao tác đối với bộ nhớ (R/W).  1 tín hiệu để điều khiển Amux. Tổng số tín hiệu: 61  19 / BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA
  20. ... 4.2.2 Vi chỉ thị - microinstruction Có thể điều khiển đường dl bằng 61 tín hiệu  Thực hiện một chu kỳ của đường dữ liệu:  Một chu kỳ bao gồm việc mở cổng cho  các giá trị trong bộ nhớ tạm đi vào bus A và bus B, chốt chúng lại trong hai thanh ghi chốt bus A latch và B latch Cho các giá trị từ các thanh ghi chốt chạy  qua ALU và shifter Cuối cùng là việc chứa các kết quả vào  trong bộ nhớ tạm hoặc vào MBR. Ngoài ra MAR cũng có thể được nạp, sau đó một chu kỳ bộ nhớ sẽ bắt đầu. 20 / BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2