Cấp vi lập trình pdf

9 191 1
Cấp vi lập trình pdf

Đang tải... (xem toàn văn)

Thông tin tài liệu

Cấp vi lập trình Mục tiêu Nghiên cứu cách thức: - Vi chương trình điều khiển các thành phần phần cứng - Vi chương trình phiên dòch các chỉ thò của cấp máy quy ước Cấp vi lập trình Cách thức kết nối Đường dữ liệu PC AC SP IR TIR 0 +1 -1 AMASK SMASK A B C D E F Bus A Bus B Bus C L(A) L(B) AMUX ALU L 0   L 1 Shifter F 0  F 1   N  Z  S 0  S 1 MBR MAR Address out  M 0 To address bus To data bus M 2  M 3   M 1 A 0  Data in Data out 16 thanh ghi (16 bits) Bus A,B dẫn dữ liệu đến ALU 16 bits ALU thực hiện 4 chức năng: A+B, A ^ B, A, Not A nhờ F 0 và F 1 và 2 trạng thái N, Z Bus C nạp nội dung từ ALU vào thanh ghi Bus A,B không trực tiếp đưa dữ liệu đến ALU mà thông qua 2 mạch chốt Đề truyền với bộ nhớ, đưa MAR và MBR vào vi cấu trúc MAR nạp đòa chỉ từ chốt B nhờ đường điều khiển M 0 M 1 nạp dữ liệu cho MBR, M 2,3 điều khiển đọc và ghi bộ nhớ Kênh Amux xác đònh dữ liệu vào từ chốt A hay MBR nhờ A 0 Cấp vi lập trình Cách thức kết nối Khuôn dạng vi lệnh PC AC SP IR TIR 0 +1 -1 AMASK SMASK A B C D E F Bus A Bus B Bus C L(A) L(B) AMUX ALU L 0   L 1 Shifter F 0  F 1   N  Z  S 0  S 1 MBR MAR Address out  M 0 To data bus M 2  M 3   M 1 A 0  Data in Data out To address bus - 16 tín hiệu điều khiển nạp cho Bus A từ thanh ghi - 16 tín hiệu điều khiển nạp cho Bus B từ thanh ghi - 16 tín hiệu điều khiển nạp cho thanh ghi từ Bus C - 2 tín hiệu điề khiển chốt A,B - 2 tín hiệu điều khiển chức năng ALU - 2 tín hiệu điều khiển mạch dòch bit - 4 tín hiệu điều khiển MAR và MBR - 2 tín hiệu điều khiển đọc, ghi bộ nhớ - 1 tín hiệu điều khiển Amux Mã hóa thông tin bằng 4 bit và dùng mạch giải mã 416 để tiết kiệm 32 bits Cấp vi lập trình Cách thức kết nối Khuôn dạng vi lệnh A M U X C O N D A L U S H M B R M A R R D W R E N C C B A ADDR Bits 1 2 2 2 1 1 1 1 1 4 4 4 8 Khuôn dạng vi lệnh có 32 bits Mã hóa thông tin bằng 4 bits điều khiển 3 bus A,B,C, dùng để chọn thanh ghi Bit thêm vào ENC (Enable C) Dùng RS và WR điều khiển chốt MBR Thêm COND quản lý trình tự vi lệnh kế tiếp Thêm COND quản lý đòa chỉ vi lệnh kế tiếp Đk chọn dữ liệu từ chốt A (=0) hoặc MBR (=1) đến ALU Chọn chức năng ALU: A+B (=00), A and B (01), A (=10), Not A (11) Mạch dòch bit phải (=01), trái (=10), không dòch (=00) Nạp dữ liệu cho MBR từ mạch dòch bit (=1) hoặc không (=0) Nạp đòa chỉ cho MAR từ mạch chốt B (=1) hoặc không (=0) RD,WR yêu cầu đọc/ghi dữ liệu (=1) hoặc không (=0) Đk cất kết quả ALU vào bộ nhớ nháp (=1) hoặc không (=0) COND=1, nhảy đến ADDR nếu N=1 COND=2, nhảy đến ADDR nếu Z=1 COND=3, nhảy đế ADDR Cấp vi lập trình Sơ đồ khối đầy đủ của vi cấu trúc 16 register MAR MBR LA LB AMUX ALU Shifter A B C A M U X C O N D A L U S H M B R M A R R D W R EN C C B A ADDR 256 x 32 Control Store Increment MPC Mmux C decode B decode A decode 4 3 Clock 2 Subcycles 1 MIR N Z 2 2 2 RD WR 4 4 4 16 16 16 Cấp vi lập trình Vi hợp ngữ Nguyên tắc: vi chương trình được viết dưới dạng số nhò phân, mỗi vi lệnh dài 32 bit Ví dụ: Để cộng AC với A và chứa kết quả vào AC 0 00 00 00 0 0 0 0 1 0001 0001 0010 00000000 Amux=0 Cond=0 ALU=0 (Phép cộng) SH=0 MBR,MAR,RD,WR=0 ENC=1 C=1 B=1 A=10 ADDR=0  Có thể viết: ENC=1,C=1,B=1,A=10 Cấp vi lập trình Vi hợp ngữ Nguyên tắc: sử dụng ký hiệu của ngôn ngữ cấp cao mô tả chỉ thò máy. PC AC SP IR TIR 0 +1 -1 AMASK SMASK A B C D E F Bus A Bus B Bus C L(A) L(B) AMUX ALU L 0   L 1 Shifter F 0  F 1   N  Z  S 0  S 1 MBR MAR Address out  M 0 To data bus M 2  M 3   M 1 A 0  Data in Data out Mar:=pc;rd 0 0 2 0 0 1 1 0 0 0 0 0 00 Ir:=mbr 1 0 2 0 0 0 0 0 1 3 0 0 00 Pc:=pc+1 0 0 0 0 0 0 0 0 1 0 6 0 0 Alu:=tir;if n then goto 15 0 1 2 0 0 0 0 0 0 0 0 4 15 A M U X C O N D A L U S H M B R M A R R D W R E N C C B A A D D R Cấp vi lập trình Ví dụ một vi chương trình thực hiện lệnh cộng (ADD) 1. Vi lệnh: PC-MAR: - ALU nối Bus D và Bus S - Bus D nối PC - Bus S nôi MAR 2. Vi lệnh: |ADDR|MBR - Đọc MEM ra MBR 3. Vi lệnh: (MBR)IR - ALU nối Bus M và bus S - MBR nối Bus M - Bus S nối IR 4. Vi lệnh: DECODE Nhảy đến đòa chỉ mã lệnh (đã giải mã) 5. Vi lệnh: (IA)MAR - ALU nối Bus D và Bus S - Nối IA (của IR) và Bus D - Bus S nôi MAR 6. Vi lệnh: |DATA|MBR- Đọc dữ liệu từ MEM ra MBR 7. Vi lệnh: MBR+A - Cộng nội dung trên Bus D và Mus M và đưa ra Bus S - MBR nối Bus M - Nối Bus S với AC 8. Vi lệnh: PC+1 - Nối Bus D và Bus S qua ALU, PC cộng 1 - Nối PC và Bus D - Nối Bus S và PC 1. mar:=pc;rd; 2. pc:=pc+1;rd; 3. ir:=mbr; 4. mar:=ir;rd ; {LODD} 5. rd; 6. ac:=mar;goto 0; 7. mar:=ir;rd ; {ADDD} 8. Rd; 9. ac:=mbr+ac;goto 0; 10. mar:=ir;rd; {SUBD} 11. ac:=ac+1;rd; {x-y = } 12. a:=inv(mbr); {x+1+Not y} 13. ac:=ac+a;goto 0; Cấp vi lập trình Ví dụ một vi chương trình thực hiện lệnh cộng (ADD) 1. mar:=pc;rd; 2. pc:=pc+1;rd; 3. ir:=mbr; 4. mar:=ir;rd; {LODD} 5. rd; 6. 0 00 10 0 0 1 1 0 0 0000 0000 0000 00000000 0 00 00 0 0 0 0 0 1 0000 0110 0000 00000000 1 00 10 0 0 0 0 0 1 0011 0000 0000 00000000 0 00 10 0 0 1 1 0 0 0000 0011 0000 00000000 0 00 00 0 0 0 1 0 0 0000 0000 0000 00000000 A M U X C O N D A L U S H M B R M A R R D W R E N C C B A A D D R Vi chương trình viết dưới dạng ngôn ngữ tượng trưng, sử dụng ký hiệu của ngôn ngữ cấp cao Vi chương trình viết dưới dạng vi lệnh nhò phân, mỗi vi lệnh dài 32 bits . Cấp vi lập trình Mục tiêu Nghiên cứu cách thức: - Vi chương trình điều khiển các thành phần phần cứng - Vi chương trình phiên dòch các chỉ thò của cấp máy quy ước Cấp vi lập trình. MIR N Z 2 2 2 RD WR 4 4 4 16 16 16 Cấp vi lập trình Vi hợp ngữ Nguyên tắc: vi chương trình được vi t dưới dạng số nhò phân, mỗi vi lệnh dài 32 bit Ví dụ: Để cộng AC với A và. E N C C B A A D D R Vi chương trình vi t dưới dạng ngôn ngữ tượng trưng, sử dụng ký hiệu của ngôn ngữ cấp cao Vi chương trình vi t dưới dạng vi lệnh nhò phân, mỗi vi lệnh dài 32 bits

Ngày đăng: 28/07/2014, 06:20

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan