CHƯƠNG 2 : NGHIÊN CỨU PHƯƠNG PHÁP THIẾT KẾ VI XỬ LÝ
2.4.1. Tổng quan về thiết kế CPU
Một bộ vi xử lý đa năng thường được gọi là đơn vị xử lý trung tâm (CPU). CPU là chỉ đơn giản là một vi xử lý chuyên dụng chỉ thực hiện theo các lệnh phần mềm. Trong việc thiết kế một CPU, chúng ta đầu tiên phải xác định tập lệnh của nó và làm thế nào các lệnh được mã hóa và thực hiện. Chúng ta cần phải trả lời các câu hỏi như :[2]
Thiết kế vi xử lý 16 bit trên nền tảng công nghệ FPGA
- Chúng ta muốn vi xử lý có bao nhiêu lệnh? - Các lệnh đó là những lệnh nào?
- Mã hoạt động (opcode) tương ứng cho mỗi lệnh là gì? - Chúng ta sẽ dùng bao nhiêu bit để mã hóa một lệnh?
Một khi chúng ta đã quyết định được tập lệnh, chúng ta có thể tiến hành thiết kế một datapath có thể thực hiện tất cả các lệnh trong tập lệnh. Trong bước này, chúng ta đang tạo ra một datapath tùy chỉnh, do đó, chúng ta cần phải trả lời câu hỏi như:
- Những đơn vị chức năng nào chúng ta cần có trong thiết kế? - Số lượng thanh ghi cần có là bao nhiêu?
- Chúng ta sẽ sử dụng một tập thanh ghi duy nhất hay các thanh ghi riêng biệt? - Làm thế nào để kết nối các đơn vị khác nhau để tạo thành một datapath hoàn
chỉnh ?
Cuối cùng, chúng ta có thể thiết kế control unit. Giống như bộ vi xử lý chuyên dụng, control unit sẽ xác nhận các tín hiệu điều khiển datapath. Các FSM thường thơng qua ba bước chính trong các chu kỳ là:
1) Đọc lệnh từ bộ nhớ 2) Giải mã lệnh 3) Thực hiện lệnh.
Các đơn vị điều khiển thực hiện các bước này bằng cách gửi tín hiệu điều khiển thích hợp tới datapath hoặc thiết bị bên ngồi.
Các lệnh của chương trình thường được lưu trữ trong các bộ nhớ bên ngoài, do ở ngoài CPU nên bộ nhớ bên ngồi được kết nối với CPU thơng qua bus địa chỉ và bus dữ liệu. Nên trong bước 1 (đọc lệnh từ bộ nhớ) thường liên quan đến đơn vị điều khiển thiết lập một địa chỉ bộ nhớ trên bus địa chỉ và báo cho bộ nhớ ngoài biết đưa ra đầu ra các lệnh ở địa chỉ bộ nhớ đó lên bus dữ liệu. Các đơn vị điều khiển sau đó đọc các lệnh từ bus dữ liệu. Để giữ cho thiết kế của chúng ta đơn giản, thay vì có bộ nhớ ngồi, chúng ta sẽ đặt bộ nhớ trực tiếp bên trong CPU và thực hiện đơn
Thiết kế vi xử lý 16 bit trên nền tảng công nghệ FPGA
giản là một mảng 64 byte. Trong thực tế, cũng có một số cpu có bộ nhớ nội bộ chương trình.
Bước 2 (giải mã các lệnh) đơn vị điều khiển xuất các bit opcode từ các lệnh và xác định những việc gì cần phải thực hiện trong lệnh hiện tại, bằng cách nhảy sang trạng thái đã được chỉ định để thực hiện lệnh đó. Dựa vào trạng thái cụ thể đó, máy hữu hạn trạng thái thực hiện bước 3 bằng cách chỉ đơn giản là xác định tín hiệu điều khiển thích hợp cho việc kiểm sốt datapath để thực hiện lệnh đó.