Vi xử lý các thành phần của vi xử lý

Vi xử lý các thành phần của vi xử lý

1. Hoạt động của vi xử lý

Read Cycle – chu kì đọc

Các bước thực thi trong một chu kì đọc gồm có:

- CPU đặt địa chỉ lên bus địa chỉ

- Tín hiệu điều khiển memory-address trên addressbus ở trạng thái khả dụng

- Dựa theo giá trị địa chỉ bên trên sẽ xác định được một vị trị nào đó. Chip nhớ lấy dữ liệu dựa theo vị trí này và đặt dữ liệu đó vào data bus

- Tiến hiệu điều khiển CPU-data trên data bus ở trạng thái khả dụng

- CPU lấy dữ liệu từ data bus

Write Cycle – chu kì ghi

Chu kì này gồm các bước:

- CPU đặt địa chỉ lên bus địa chỉ

- Tín hiệu điều khiển memory-address trên address bus ở trạng thái khả dụng

- CPU đặt dữ liệu lên data bus

- Tín hiệu điều khiển memory-data trên data bus khả dụng

- Chip nhớ lấy dữ liệu trên data bus rồi đặt nó vào vị trí xác định dựa trên giá trị của địa chỉ được CPU đặt lên từ bước 1.

2. Cấu tạo vi xử lý

Bộ xử lý trung tâm CPU được coi như bộ não của bất kì hệ thống nào.

Bộ nhớ, các cổng I/O được kết nối tới bộ xử lý thông qua bus dữ liệu – data bus, bus địa chỉ – address bus, bus điều khiển – control bus.

 

3 thành phần cơ bản của bộ vi xử lý

Một vi xử lý có 3 thành phần chính:

- ALU: bộ xử lý số học – logic. Bộ phận này xử lý các phép toán số học và logic. Nó nhận dữ liệu từ Register Array và chịu sự điều khiển của CU

- Register Array là một tập các thanh ghi được dùng để lưu trữ dữ liệu. Các thanh ghi này có tốc độ truy xuất dữ liệu rất nhanh

- CU là khối điều khiển, các tín hiệu định thời và điều khiển đều xuất phát từ CU. Việc thực hiện tuần tự các lệnh cũng do CU chỉ huy.

Sự khác biệt giữa vi xử lí và vi điều khiển….

Các thành phần như bộ nhớ, cổng I/O không được tích hợp trên vi xử lý. Nhưng chúng lại được tích hợp trên vi điều khiển.

3. ROM – RAM

Bộ nhớ chương trình và bộ nhớ dữ liệu

Có nhiều loại bộ nhớ khác nhau được sử dụng trong các hệ thống nhúng. Chúng liên tục được phát triển và cải tiến. Tuy nhiên, ta có thể tóm gọn lại và chia chúng thành 2 loại chính: RAM và ROM.

RAM = random access memory. RAM có 2 đặc tính nổi bật:

- Dữ liêu có thể được đọc và ghi trên RAM

- RAM bị mất dữ liệu nếu mất điện

Random access – truy xuất ngẫu nhiên, tức là dữ liệu ở bất kỳ nơi nào trên RAM đều truy cập được.

Thực tế cho thấy chọn cái tên RAM theo tính chất của nó là một lựa chọn tồi. Cái tên này dễ làm bạn nhầm tưởng là chỉ có duy nhất một loại bộ nhớ có khả năng truy xuất ngẫu nhiên.

ROM = Read only Memory. ROM cũng có khả năng truy xuất ngẫu nhiên những nó khác với RAM ở 2 điểm sau:

- Không thể ghi dữ liệu lên ROM. Tất nhiên có cách để ghi dữ liệu lên đó, nhưng sửa đổi hoặc xóa dữ liệu đó đi không phải là chuyện dễ dàng

- ROM không mất dữ liệu khi mất điện

Có nhiều loại ROM: PROM, EPROM,EEPROM, Flash…

Chọn RAM hay ROM?

RAM vừa đọc vừa ghi được. ROM thì không mất dữ liệu khi mất điện.

Vậy, một hệ thống nhúng cần RAM hay ROM??

Câu trả lời là cả 2. RAM và ROM sẽ đảm nhận những nhiệm vụ khác nhau.

- RAM sẽ lưu trữ dữ liệu được sử dụng bởi hệ thống. Ví dụm nếu bạn muốn hâm nóng thức ăn bằng lò vi sóng trong 2 phút. Dữ liệu đó (2 phút) sẽ được lưu trong RAM, hệ thống sẽ dùng nó để đếm ngược. Sau khi đếm xong, dữ liệu này không có giá trị nữa nên có mất đi cũng chả sao.

- ROM sẽ lưu trữ chương trình của hệ thống (system program). Chương trình này là tập hợp các lệnh tuần tự. Hệ thống vận hành theo trình tự các lệnh đó.Quay trở lại chiếc lò vi sóng, system program sẽ “ra lệnh” cho lò vi sóng cần làm gì khi bạn quay núm thời gian lên 2 phút, 5 phút, hoặc 10 phút. Nếu system program bị mất đi khi bạn cắt nguôn thiết bị thì ở lần hoạt động kế tiếp, lò vi sóng sẽ là cục sắt vô dụng.

Hãy ghi nhớ: RAM dành cho dữ liệu, ROM dành cho chương trình.

Tạm biệt chiếc lò vi sóng, hãy để ý tới công-tơ-mét của chiếc xe hơi. Bạn thấy, cho dù tắt khóa điện, ở lần khởi động tiếp theo, nó vẫn lưu số km mà xe bạn đã đi.

Bạn sẽ thắc mắc làm thế nào để lưu những dữ liệu cần thay đổi thường xuyên nhưng không thể bị mất đi mỗi lần cắt điện ?

Bộ nhớ FLASH sinh ra để giải quyết điều này. FLASH vừa đọc vừa ghi được, và dữ liệu trên đó không bị mất khi cắt nguồn.

Bút nhớ USB là một ví dụ điển hình cho bộ nhớ FLASH.

4. CPU

Ở phần trước ta đã làm quen với sơ đồ căn bản của một bộ xử lý trung tâm:

 

Sơ đồ này có thể được chi tiết hóa như sau

 

Bạn thấy có 2 thanh ghi đặc biệt được tách riêng ra, đó là thanh Program Counter và Instruction Register. Trong quá trình vận hành của vi xử lý, 2 thanh ghi này sẽ phối hợp nhịp nhàng với bộ Instruction Decoder:

- Thanh Program Counter lưu vị trí của lệnh tiếp theo

- Instruction Register lưu lệnh hiện thời

- Instruction Decoder sẽ “giải mã” các lệnh (giải mã ở đây có thể hiểu như Instruction Decoder sẽ nhận đầu vào là các lệnh và cho biết thao tác tương ứng với lệnh đầu vào đó)

Chu kỳ thực thi – execution cycle

Execution ở đây là quá trình CPU perform một operation nào đó. Operation này tương ứng với câu lệnh đi vào CPU.

Khi hệ thống nhúng được khởi động. Địa chỉ nhớ của lệnh đầu tiên trong ROM được nạp vào thanh ghi Program Counter – PC. Tiếp đó CPU lôi lệnh này ra dựa vào địa chỉ của nó trên thanh PC, sau khi lôi ra, lệnh này được ghi vào thanh IR. Bộ Instruction Decoder “giải mã” lệnh để bộ CU thực thi các operation tương ứng. Sau khi hoàn tất operation đó, thanh PC tiếp tục tăng lên 1 đơn vị, nó trỏ tới lệnh tiếp theo trong ROM và quá trình xử lý cứ thế tiếp diễn.

Lệnh 2-byte – Two-byte instruction

Một chu kỳ thực thi được mô tả như trên chỉ đúng với lệnh 1-byte (8bit).

Bộ Instruction Decoder còn có nhiệm vụ xác định kích thước của lệnh. Nếu lệnh chỉ dài 1-byte, nó sẽ được thực thi và thanh ghi PC tăng thêm một. Nếu lệnh dài 2-byte, nó cần 2 ô nhớ. Vì thế, bộ CU lấy lệnh trong ô nhớ thứ 3 bằng  cách tăng thanh PC lên một để địa chỉ trỏ tới ô nhớ lưu lệnh thứ 2 rồi đọc và thực thi nó từ đó.

Khi lệnh 2-byte được thực thi hoàn chỉnh, thanh PC tăng tiếp thêm một. Như vậy, tính từ lúc bắt đầu thực thi lệnh 2-byte, thanh PC đã tăng giá trị 2 lần.

Lệnh 3-byte

Với lệnh 3-byte, mọi thứ cũng tương tự như vậy.

Tóm lại, ta nhận thấy mỗi khi thực hiện một lệnh, thanh ghi PC không chỉ tăng lên một. Ở các phần tiếp theo, ta sẽ hiểu tại sao bộ Instruction Decoder lại nắm được kích thước của lệnh.

Sau đây là 6 bước tóm tắt của một chu kỳ thực thi

- Dữ liệu trong thanh PC được đặt lên bus địa chỉ

- Read cycle được thực thi, opcode được ghi lên thanh IR

- Opcode được “giải mã”

- Nếu lệnh là lệnh 2-byte: thanh PC tăng lên, phép read được kích hoạt để đọc phần tiếp theo

- Nếu lệnh là 3-byte, PC tăng lên và phép read được kích hoạt, quá trình này lặp lại 2 lần

- Operation của lệnh hiện thời được hoàn tất, thanh PC tiếp tục tăng lên để trỏ tới lệnh kế.

Nguồn: embeddedsperm.wordpress

Bạn Có Đam Mê Với Vi Mạch hay Nhúng      -     Bạn Muốn Trau Dồi Thêm Kĩ Năng

Mong Muốn Có Thêm Cơ Hội Trong Công Việc    Và Trở Thành Một Người Có Giá Trị Hơn

Bạn Chưa Biết Phương Thức Nào Nhanh Chóng Để Đạt Được Chúng

Hãy Để Chúng Tôi Hỗ Trợ Cho Bạn. SEMICON  

Vi xử lý các thành phần của vi xử lý
 

Hotline: 0972.800.931 - 0938.838.404 (Mr Long)