Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
100,18 KB
Nội dung
Chương 3: Sơ đồ khối vi xử lí Cấu trúc tất vi xử lí có khối ALU, ghi, khối điều khiển mạch logic Để nắm rõ nguyên lí làm việc vi xử lí cần phải khảo sát nguyên lí kết hợp khối với để xử lí chương trình Sơ đồ khối vi xử lí trình bày cấu trúc vi xử lí Mỗi vi xử lí khác có cấu trúc khác Ví dụ vi xử lí bit khác với vi xử lí 16 bit Với vi xử lí có sơ đồ cấu trúc bên cho sổ tay nhà chế tạo Sơ đồ cấu trúc dạng khối tiện lợi dễ trình bày nguyên lí hoạt động vi xử lí : INTR INTA\ RST 5.5 RST 6.5 RST 7.5 TRAP SID CK READY RD\ WR\ ALE S0 S1 IO/M\ HOLD HLDA RE.IN RE.OUT SOD A8 A15 AD0 AD7 Hình 1.5 :Sơ đồ cấu trúc Vi xử lí Trong sơ đồ khôái vi xử lí bao gồm khối sau: Khối ALU, ghi, khối Control logic Ngoài sơ đồ khối trình bày đường truyền tải tín hiệu từ nơi đến nơi khác hệ thống: e Chức khối Chức khối ALU : ALU khối quan trọng vi xử lí, khối ALU chứa mạch điện logic chuyên xử lí liệu Khối ALU có hai ngõ vào có tên “IN” ngõ vào liệu cho ALU xử lí ngõ có tên “OUT” ngõ kết liệu sau ALU xử lí liệu xong Dữ liệu trước vào ALU chứa ghi đệm (Temporarily register) có tên Temp Temp Bus liệu bên vi xử lí kết nối với hai ngõ vào “IN” ALU thông qua hai ghi đệm Sự kết nối cho phép ALU lấy liệu Bus liệu bên vi xử lí Thường ALU lấy liệu từ ghi đặc biệt có tên Accumulator Ngõ “OUT” ALU cho phép ALU gởi kết liệu sau xử lí xong Bus liệu bên vi xử lí, thiết bị kết nối với Bus bên nhận liệu Thường ALU gởi liệu sau xử lí xong tới ghi Accumulator Ví dụ ALU cộng hai liệu hai liệu chứa ghi Accumulator, sau phép cộng thực ALU kết gởi trở lại ghi Accumulator lưu trữ ghi ALU xử lí liệu hay hai liệu tùy thuộc vào lệnh hay yêu cầu điều khiển, ví dụ cộng hai liệu ALU xử lí hai liệu dùng hai ngõ vào “IN” để nhập liệu , tăng liệu lên đơn vị hay lấy bù liệu, ALU xử lí liệu cần ngõ vào “IN” Khối ALU thực phép toán xử lí sau Add Complement OR Exlusive OR Subtract Shift right Increment AND Shift left Decrement Như vậy, chức khối ALU làm thay đổi liệu hay chuyên xử lí liệu không lưu trữ liệu Để hiểu rõ thêm chức đặc biệt khối ALU cần khảo sát vi xử lí cụ thể Các ghi bên vi xử lí: Các ghi bên có chức lưu trữ tạm thời liệu xử lí Trong số ghi có vài ghi đặc biệt thực lệnh đặc biệt, ghi lại gọi ghi thông dụng Với sơ đồ minh họa trên, ghi thông dụng có tên Reg B, Reg C, Reg D, Reg E Các ghi thông dụng hữu dụng cho người lập trình điều thấy rõ qua chương trình Số lượng ghi thông dụng thay đổi tùy thuộc vào vi xử lí Số lượng cách sử dụng ghi thông dụng tùy thuộc vào cấu trúc vi xử lí, chúng có vài điểm giống Càng nhiều ghi thông dụng vấn đề lập trình đơn giản Các ghi có vi xử lí Accumulator register(A), Program counter register (PC), Stack pointer(SP), Status register (F), caùc ghi thông dụng, ghi lệnh (Instruction register), ghi địa Thanh ghi Accumulator: Thanh ghi Accumulator ghi quan trọng vi xử lí có chức lưu trữ liệu tính toán Hầu hết phép toán số học phép toán logic xảy ALU Accumulator Ví dụ thực lệnh cộng liệu A với liệu B liệu phải chứa ghi Accumulator giả sử Thanh ghi, sau thực lệnh cộng liệu A (chứa Accumulator) với liệu B (có thể chứa ô nhớ ghi thông dụng), kết lệnh cộng liệu C đặt ghi A thay cho liệu A trước Chú ý: Kết sau thực ALU thường gởi vào ghi Accumulator làm cho liệu trước chứa Accumulator bị Một chức quan trọng ghi Accumulator truyền liệu từ nhớ từ ghi bên vi xử lí thiết bị điều khiển bên liệu phải chứa ghi Accumulator Thanh ghi Accumulator nhiều chức quan trọng khác thấy rõ qua tập lệnh vi xử lí cụ thể, số bit ghi Accumulator đơn vị đo vi xử lí, vi xử lí bit ghi Accumulator có độ dài bit Program counter PC: PC ghi có vai trò quan trọng vi xử lí Chương trình chuỗi lệnh nối tiếp nhớ vi xử lí, lệnh yêu cầu vi xử lí thực xác công việc để giải vấn đề, lệnh phải đơn giản xác lệnh phải theo trình tự để chương trình thực Chức PC quản lí lệnh thực lệnh thực Thanh ghi PC vi xử lí có chiều dài từ liệu lớn chiều dài từ liệu vi xử lí Ví dụ vi xử lí bit có 65.536 ô nhớ ghi PC phải có chiều dài 16 bit để truy xuất ô nhớ ô nhớ đến ô nhớ thứ 65.535 Nội dung chứa ghi PC nội dung chứa ghi địa Trước vi xử lí thực chương trình ghi PC phải nạp số: “Đó địa ô nhớ chứa lệnh chương trình” Địa lệnh gởi đến IC nhớ thông qua Bus địa 16 bit Sau nhớ đặt nội dung ô nhớ lên Bus liệu Các nội dung lệnh, trình gọi đón lệnh từ nhớ Tiếp theo vi xử lí tự động tăng nội dung PC để chuẩn bị đón lệnh kế PC tăng vi xử lí bắt đầu thực lệnh đón trước Một chương trình nạp vào PC giá trị mới, lệnh làm thay đổi PC giá trị thực lệnh xảy địa Thanh ghi trạng thái (Status register): Thanh ghi trạng thái gọi ghi cờ (Flag register) dùng để lưu trữ kết số lệnh cần kiểm tra Việc lưu trữ kết kiểm tra cho phép người lập trình thực việc rẽ nhánh chương trình Khi chương trình rẽ nhánh, chương trình bắt đầu vị trí Trong nhánh rẽ có điều kiện, chương trình rẽ nhánh thực kết kiểm tra thỏa mãn điều kiện Thanh ghi trạng thái lưu trữ kết kiểm tra Các bit thường có ghi trạng thái trình bày hình vẽ sau: S Z x AC x P x C Chức Bit : Bit S :(Bit Signal): Bit dấu S = Khi kết số âm S=0 Khi kết số dương Bit Z (Bit Zero) Z=1 Khi kết không Z=0 Khi kết khác không Bit AC (Bit tràn) AC = Khi phép tính không tràn lên Bit thứ AC = Khi phép tính bị tràn lên Bit thứ Bit P (Parity) :Bit chẳn lẽ P=0 Khi kết số chẳn P=1 Khi kết số lẽ Bit C (Carry) :Bit nhớ C=0 Khi kết số nhớ C=1 Khi kết có số nhớ Bit x : Không có ý nghóa Các lệnh xảy ghi thường ảnh hưởng đến ghi trạng thái, ví dụ thực lệnh cộng hai liệu bit, kết lớn 111111112 bit carry có giá trị 1, bit carry chứa ghi trạng thái Vậy phép cộng làm cho bit carry có giá trị Ngược lại kết phép cộng có giá trị nhỏ 111111112 bit carry có giá trị Ví dụ lệnh tăng hay giảm giá trị ghi, kết ghi khác bit Z Ý nghiã bit ghi trạng thái: Carry/ borrow: Là bit carry thực phép cộng có giá trị tùy thuộc vào kết phép cộng Kết tràn bit carry =1, ngược lại carry=0 Là bit borrow thực phép tính trừ: Nếu số bị trừ lớn số trị bit borrow = 0, ngược lại bit borrow = Bit carry hay bit borrow laø bit phân biệt thực lệnh cụ thể Zero: Bit Z = kết phép toán 0, ngược lại bit Z= Negative: Bit N = bit MSB cuûa ghi có giá trị 1, ngược lại bit N = Intermadiate carry: Giống bit carry có tác dụng phép cộng hay trừ bit thấp Interrupt Flag: Bit IF có giá trị người lập trình muốn cho phép ngắt, ngược lại không cho phép ngắt Overflow: Bit bit carry phép toán cộng với bit dấu liệu Parity: Bit có giá trị kết phép toán số chẵn, ngược lại bit P = Số lượng bit có ghi trạng thái tùy thuộc vào vi xử lí Trong số vi xử lí xóa đặt bit trạng thái ghi trạng thái Thanh ghi trỏ ngăn xếp (Stack pointer): Thanh ghi trỏ ngăn xếp ghi quan trọng vi xử lí, độ dài từ liệu ghi SP ghi PC, chức ghi SP gần giống ghi PC dùng để quản lí nhớ ngăn xếp muốn lưu trữ tạm thời liệu vào ngăn xếp Trong hầu hết vi xử lí, SP giảm (để đến ô nhớ ngăn xếp) sau thực xong lệnh cất liệu vào ngăn xếp Do thiết lập giá trị cho ghi SP địa cuối ô nhớ Stack pointer phải đến ô nhớ người lập trình thiết lập, trình gọi khởi tạo trỏ ngăn xếp Nếu không khởi tạo, trỏ ngăn xếp đến ô nhớ ngẫu nhiên Khi lệnh cất liệu vào ngăn xếp ghi đè lên liệu quan trọng khác làm chương trình xử lí sai SP đến vùng nhớ vùng nhớ RAM làm chương trình thực không Tổ chức ngăn xếp vào sau trước (Last in, first out) Thanh ghi địa nhớ: Mỗi vi xử lí truy xuất nhớ ghi địa phải tạo địa mà vi xử lí muốn Ngõ ghi địa phải đặt lên Bus địa 16 bit Bus địa dùng để lựa chọn ô nhớ hay lựa chọn port In/Out Nội dung ghi địa ô nhớ nội dung ghi PC giống vi xử lí truy xuất nhớ để đón lệnh, lệnh giải mã PC tăng để đón lệnh tiếp theo, nội dung ghi địa nhớ không tăng suốt chu lệnh, nội dung ghi địa phụ thuộc vào lệnh thực Nếu lệnh yêu cầu vi xử lí truy xuất nhớ ghi địa nhớ dùng lần thứ hai thực lệnh Trong tất vi xử lí, ghi địa nhớ ghi PC Thanh ghi lệnh (Instruction Register): Thanh ghi lệnh dùng để chứa lệnh vi xử lí thực Một chu kì lệnh bao gồm đón lệnh từ nhớ thực lệnh Đầu tiên lệnh đón từ nhớ, sau đóù PC đến lệnh kế nhớ Khi lệnh đón có nghóa liệu ô nhớ chép vào vi xử lí thông qua Bus liệu đến ghi lệnh Tiếp theo lệnh đượïc thực hiện, thực lệnh, giải mã lệnh đọc nội dung ghi lệnh Bộ giải mã giải mã lệnh để báo cho vi xử lí thực xác công việc mà lệnh yêu cầu Chiều dài từ liệu ghi lệnh tùy thuộc vào vi xử lí Thanh ghi lệnh vi xử lí sử dụng, người lập trình không sử dụng ghi Thanh ghi chứa liệu tạm thời (Temporary data Register): Thanh ghi lưu trữ liệu tạm thời dùng để ALU thực phép toán xử lí liệu Do ALU chức xử lí liệu nên liệu đến ngõ vào ALU xuất ngõ Dữ liệu xuất ngõ ALU định lệnh chương trình yêu cầu ALU thực ALU lấy liệu từ Bus liệu bên vi xử lí để xử lí liệu, sau đặt liệu vừa xử lí xong trở lại Thanh ghi Accumulator, cần phải có ghi lưu trữ liệu tạm thời để ALU thực Người lập trình không phép sử dụng ghi Số lượng ghi tùy thuộc vào vi xử lí Khối điều khiển logic (Control logic) khối giải mã (Instruction decode): Chức khối giải mã lệnh nhận lệnh từ ghi lệnh sau giải mã để gởi tín hiệu điều khiển đến cho khối điều khiển logic Chức khối điều khiển logic nhận lệnh hay tín hiệu điều khiển từ giải mã lệnh, sau thực yêu cầu lệnh Khối điều khiển logic xem vi xử lí nhỏ vi xử lí Các tín hiệu điều khiển khối điều khiển logic tín hiệu điều khiển nhớ, điều khiển thiết bị ngoại vi, đường tín hiệu đọc ghi tín hiệu điều khiển vi xử lí từ thiết bị Các đường tín hiệu trình bày cụ thể sơ đồ vi xử lí cụ thể Ngõ tín hiệu vào quan trọng khối điều khiển logic tín hiệu clock cần thiết cho khối điều khiển logic hoạt động Nếu tín hiệu clock vi xử lí không làm việc Mạch tạo xung clock mạch dao động, tín hiệu đưa đến ngõ vào clock vi xử lí Có nhiều vi xử lí tích hợp mạch tạo dao động bên trong, cần thêm thạch anh bên Bus liệu bên vi xử lí (Internal data bus): Bus liệu dùng để kết nối ghi bên ALU với nhau, tất liệu điều khiển chuyển vi xử lí thông qua Bus liệu Các ghi bên nhận liệu từ Bus hay đặt liệu lên Bus nên Bus Bus hai chiều Bus liệu bên kết nối Bus bên vi xử lí cần truy xuất liệu từ nhớ bên hay thiết bị vào/ra Bus liệu bên Bus liệu hai chiều vi xử lí nhận liệu từ bên hay gởi liệu Để biết trình tự làm việc Bus liệu bên vi xử lí hoạt động nào, cho vi xử lí thực lệnh cộng hai số nhị phân chứa hai ghi: Thanh ghi Accumulator (gọi tắt A) = 1101 11102 ghi D = 1101 10102 Trình tự cộng sau: Trước thực lệnh cộng, nội dung hai ghi phải chứa hai liệu hai ghi kết nối với thiết bị khác Để thực lệnh cộng nội dung hai ghi A D ghi lệnh phải mang mã lệnh phép cộng giả sử lệnh ADD Dữ liệu ghi A đặt lên Bus liệu bên vi xử lí, hai ghi lưu trữ liệu tạm thời kết nối với bus liệu Thanh ghi tạm thời chép liệu chứa ghi A ghi tạm thời kết nối với Bus thời điểm Dữ liệu ghi D kết nối với Bus liệu ghi tạm thời lại phép kết nối với Bus liệu Thanh ghi tạm thời chép nội dung ghi D Chỉ có ghi D ghi tạm thời kết nối với Bus thời điểm ALU cộng trực tiếp hai liệu hai ngõ vào Ngõ ALU kết nối với ghi A, kết phép cộng chứa ghi A Sau đặt kết ghi A cập nhật thay đổi bit ghi trạng thái kết nối A ALU chấm dứt Các ghi tạm thời trở lại trạng thái sẵn sàng chờ lệnh ... trữ liệu tạm thời kết nối với bus liệu Thanh ghi tạm thời chép liệu chứa ghi A ghi tạm thời kết nối với Bus thời điểm Dữ liệu ghi D kết nối với Bus liệu ghi tạm thời lại phép kết nối với Bus liệu. .. liệu tạm thời dùng để ALU thực phép toán xử lí liệu Do ALU chức xử lí liệu nên liệu đến ngõ vào ALU xuất ngõ Dữ liệu xuất ngõ ALU định lệnh chương trình yêu cầu ALU thực ALU lấy liệu từ Bus liệu. .. Bus liệu bên kết nối Bus bên vi xử lí cần truy xuất liệu từ nhớ bên hay thiết bị vào/ra Bus liệu bên Bus liệu hai chiều vi xử lí nhận liệu từ bên hay gởi liệu Để biết trình tự làm việc Bus liệu