Với mỗi thao tác đọc hoặc ghi, CPU xác định rõ vị trí của dữ liệu hoặc lệnh bằng cách đặt một địa chỉ lên bus địa chỉ, sau đó tích cực một tín hiệu trên bus điều khiển để chỉ ra thao tác
Trang 11
CHƯƠNG I: TỔNG QUAN
1 Lịch sử xuất hiện bộ vi điều khiển 8051:
Năm 1980 tập đoàn Intel giới thiệu chip 8051 bộ vi điều khiển đầu tiên của họ vi điều khiển MSC-51
Chip 8051 chứa trên 60000 transistor bao gồm 4K byte ROM, 128 byte RAM, 32 đường xuất nhập, 1 port nối tiếp và 2 bộ định thời 16 bit 8051 là bộ vi điều khiển 8 bit tức là CPU chỉ có thể làm việc với 8 bit dữ liệu Dữ liệu lớn hơn 8 bit được chia thành các dữ liệu 8 bit để xử lý
8051 đã trở nên phổ biến sau khi Intel cho phép các nhà sản xuất khác (Siemens, Atmel, Philips …) sản xuất và bán bất kỳ dạng biến thể nào của 8051 mà họ muốn với điều kiện họ phải để mã chương trình tương thích với 8051 Từ đó dẫn đến sự ra đời của nhiều phiên bản của 8051 với các tốc độ và dung lượng ROM trên chip khác nhau
Tuy nhiên, điều quan trọng là mặc dù có nhiều biến thể của 8051, như khác nhau về tốc
độ, dung lượng ROM nhưng tất cả các lệnh đều tương thích với 8051 ban đầu Điều này có nghĩa là nếu chương trình được viết cho một phiên bản 8051 nào đó thì cũng sẽ chạy được với mọi phiên bản khác không phụ thuộc vào hãng sản xuất
2 Sơ đồ khối một hệ máy tính và các khái niệm cơ bản :
Hình 1.1 Sơ đồ khối hệ máy tính
2.1 Bộ nhớ bán dẫn RAM và ROM:
Các bộ nhớ được truy xuất trực tiếp bởi CPU bao gồm các IC (integrated circuit) bán dẫn gọi là ROM và RAM, có hai đặc trưng dùng để phân biệt ROM và RAM:
RAM (Random access memory): bộ nhớ có thể đọc/ghi, không tiếp tục lưu trữ nội dung khi mất nguồn cấp điện
ROM (Read only memory): bộ nhớ chỉ đọc, vẫn tiếp tục lưu trữ nội dung khi mất nguồn cấp điện
2.2 Bus (Bus dữ liệu, Bus địa chỉ, Bus điều khiển):
Trang 22
Bus là một tập các dây mang thông tin có cùng một mục đích Việc truy xuất tới một mạch xung quanh CPU sử dụng ba loại bus: bus địa chỉ (Address bus), bus dữ liệu (Data bus)
và bus điều khiển (Control bus) Với mỗi thao tác đọc hoặc ghi, CPU xác định rõ vị trí của dữ liệu (hoặc lệnh) bằng cách đặt một địa chỉ lên bus địa chỉ, sau đó tích cực một tín hiệu trên bus điều khiển để chỉ ra thao tác đó là đọc hay ghi
- Bus dữ liệu mang thông tin giữa CPU và bộ nhớ cũng như giữa CPU và các thiết bị xuất nhập Bus dữ liệu là bus hai chiều
- Bus địa chỉ mang thông tin địa chỉ, luôn được cấp bởi CPU và là bus một chiều
- Bus điều khiển là một tập hợp các tín hiệu, mỗi tín hiệu mang một vai trò riêng trong việc điều khiển có trật tự hoạt động của hệ thống Các tín hiệu điều khiển là các tín hiệu định thời được cung cấp bởi CPU để đồng bộ hoá việc di chuyển thông tin trên các bus dữ liệu và địa chỉ Thông thường có ba tín hiệu như CLOCK, READ và WRITE đối với việc di chuyển
dữ liệu cơ bản giữa CPU và bộ nhớ
2.3 Đơn vị xử lý trung tâm (CPU):
Đơn vị xử lý trung tâm CPU
Instruction register (IR) : thanh ghi lệnh IR
Instruction decode and control unit : đơn vị giải mã lệnh và điều khiển
Program counter (PC) : bộ đếm chương trình
Registers : các thanh ghi
Arithmetic and logic unit : đơn vị số học logic
Hình 1.2 Sơ đồ khối bộ xử lý trung tâm
CPU quản lý tất cả các hoạt động và thực hiện các thao tác trên dữ liệu Hầu hết các CPU chỉ bao gồm một tập các mạch logic thực hiện liên tục hai thao tác: tìm nạp lệnh và
Trang 33
thực thi lệnh
CPU có khả năng hiểu và thực thi các lệnh dựa trên một tập các mã nhị phân, mỗi một
mã nhị phân biểu thi một thao tác cơ bản
Các lệnh này thường là các lệnh số học (như cộng, trừ, nhân, chia), các lệnh logic (như AND, OR, NOT, …) các lệnh di chuyển dữ liệu, các lệnh rẽ nhánh được biểu thị bởi một tập các mã nhị phân và được gọi là tập lệnh (instruction set)
Bên trong CPU bao gồm một tập các thanh ghi (Registers) có nhiệm vụ lưu trữ tạm thời các thông tin, một đơn vị số học logic ALU (Arithmetic logic unit ) có nhiệm vụ thực hiện các thao tác trên các thông tin này, một đơn vị giải mã lệnh và điều khiển (instruction decode and control unit) có nhiệm vụ xác định thao tác cần thực hiện và thiết lập các hoạt động cần thiết để thực hiện thao tác Thanh ghi IR (instruction register) lưu trữ mã nhị phân của lệnh Bộ đếm chương trình PC (Program counter) lưu trữ địa chỉ của lệnh kế tiếp trong bộ nhớ cần được thực thi
Thao tác tìm nạp lệnh của CPU được thực hiện theo các bước sau :
Nội dung của PC được đặt lên bus địa chỉ
Tín hiệu điều khiển READ được xác lập (chuyển sang trạng thái tích cực)
Dữ liệu (hoặc mã lệnh) được đọc từ RAM và đưa lên bus dữ liệu
Mã lệnh (opcode) được chốt vào thanh ghi lệnh bên trong CPU
PC được tăng lên để chuẩn bị tìm nạp lệnh kế từ bộ nhớ
Giai đoạn thực thi lệnh bao gồm việc giải mã lệnh và tạo ra các tín hiệu điều khiển, các tín hiệu này điều khiển việc xuất nhập giữa các thanh ghi nội với ALU và thông báo để ALU thực hiện thao tác đã được xác định
Hình 1.3 Minh họa luồng thông tin cho việc tìm nạp lệnh
3 Sự khác nhau giữa bộ vi xử lý và bộ vi điều khiển:
Trang 44
3.1 Cấu trúc phần cứng:
Là một CPU đơn chip Là một vi mạch đơn chứa bên trong một CPU,
ROM, RAM, bộ định thời, mạch giao tiếp …để tạo nên một hệ máy tính đầy đủ
3.2 Ứng dụng:
Làm các CPU trong các hệ
máy tính, thích hợp với các
ứng dụng xử lý thông tin
Thích hợp cho các thiết kế nhỏ với các thành phần thêm vào tối thiểu nhằm thực hiện các hoạt động hướng điều khiển
3.3 Đặc trưng của tập lệnh:
Các lệnh của bộ vi xử lý hoạt
động trên các lượng dữ liệu
lớn ½ byte, 1 byte, 2 byte, 4
Tập lệnh chủ yếu cung cấp các điều khiển xuất nhập chỉ sử dụng 1 bit