Hình3- 3: Mô hình ựiều khiển datapath

Một phần của tài liệu thiết kế trên kít FPGA DE2 của Altera (Trang 31)

cũng như những ựường ựiều khiển chắnh cho những khối chức năng cơ bản. Khối ựiều khiển sẽ lấy lệnh hiện thời làm ựầu vào ựể xác ựịnh làm thế nào ựể thiết lập các giá trị trên ựường ựiều khiển cho những khối chức năng (Register file, ALU) và các bộ hợp kênh.

Các ựơn vị chức năng trong RISC bao gồm 2 thành phần logic: thành phần xử lý giá trị dữ liệu và thành phần chứa trạng thái. Thành phần mà xử lý trên các giá trị dữ liệu là tổ hợp (combinational), có nghĩa là các giá trị thu ựược chỉ phụ thuộc vào các giá trị ựầu vào. đối với các tắn hiệu vào giống nhau thì kết quả ra là giống nhau. Thành phần còn lại trong thiết kế không phải là tổ hợp nhưng chứa trạng thái (state). Một thành phần có khả năng ghi nhận trạng thái thì có khả năng lưu trữ bên trong. Chúng ta gọi chúng là các thành phần trạng thái. Nếu chúng ta ghi và khôi phục lại các thành phần trạng thái thì chúng hoạt ựộng giống như khi chưa mất ựiện. Vì vậy các thành phần trạng thái mô tả

Data Register s Address Instruction instruction memory ALU PC 1 Register 1 Register 2 M U X M U X Control

hoàn toàn hoạt ựộng của máy. Trong hình dưới ựây, bộ nhớ chương trình, bộ nhớ dữ liệu cũng như tất cả các thanh ghi là những vắ dụ cơ bản về thành phần trạng thái.

3.2.2. Thiết kế cụ thể datapath cho vi ựiều khiển.

Một cách hợp lý ựể thiết kế một datapath là tìm kiếm các thành phần quan trọng cần thiết ựể thực hiện các lớp lệnh của vi xử lý, phân tắch hoạt ựộng của từng thành phần này. Chúng ta hãy bắt ựầu bằng việc tìm kiếm các phần tử cơ bản của datapath dùng cho cho các lệnh và xây dựng datapath từ những phần tử ựó.

Phần tử ựầu tiên là bộ nhớ ựể lưu trữ các lệnh của chương trình (Program Memory). Mỗi một từ nhớ trong bộ nhớ chương trình là một phần tử trạng thái ựược dùng ựể lưu trữ và cung cấp các lệnh tại một ựịa chỉ cho trước. Như ựã ựược trình bày trong kiến trúc về tập lệnh của vi ựiều khiển, mỗi một lệnh của vi ựiều khiển có ựộ dài là 12 bắt bao gồm Opcode và Operand, do ựó mỗi một từ nhớ trong bộ nhớ chương trình sẽ có ựộ dài là 12 bắt. địa chỉ của lệnh phải ựược lưu trong một phần tử trạng thái ựược gọi là bộ ựếm chương trình (PC Ờ Program counter). Như vậy ta cần phải có một thanh ghi ựể lưu trữ ựịa chỉ của lệnh tiếp theo, thanh ghi PC. Tiếp theo chúng ta cần một bộ cộng ựể tăng gia trị của PC ựến ựịa chỉ của lệnh tiếp theo trong chương trình. Bộ cộng này là tổ hợp, ựược xây dựng từ ALU, bộ cộng này có chức năng tăng giá trị của thanh ghi PC lên một ựơn vị ựể vi xử lý có thể tự ựộng nạp ựược lệnh tiếp theo sau mỗi chu kì xung nhịp.

để thực hiện lệnh chúng ta phải bắt ựầu bằng việc tìm kiếm lệnh trong bộ nhớ chương trình. để chuẩn bị thực hiện lệnh tiếp theo, chúng ta phải tăng bộ ựếm chương trình ựể nó chỉ vào lệnh tiếp theo, ựây là yêu cầu cần thiết ựể thực thi ựược kiến trúc ựường ống.

Các thanh ghi của vi ựiều khiển ựược lưu trong một cấu trúc gọi là tệp thanh ghi (register file). Tệp thanh ghi là tập hợp các thanh ghi mà bất kỳ thanh ghi nào cũng có thể ựọc, ghi bằng số của thanh ghi (register number) trong tệp. Tệp thanh ghi lưu trạng thái của máy, lưu trữ các giá trị tắnh toán, các giá trị của các cổng vào ra, giá trị của các thanh ghi chức năng ựặc biệt. Thêm vào ựó, chúng ta cần có một bộ xử lý toán học (ALU) ựể thực hiện các phép toán trên các giá trị ựọc ựược từ các thanh ghi.

Do các lệnh loại hướng byte có 2 toán tử là thanh ghi, chúng ta phải ựọc hai toán hạng dữ liệu từ tệp thanh ghi và ghi một từ dữ liệu vào tệp thanh ghi. đối với mỗi từ dữ liệu ựược ựọc từ tệp thanh ghi chúng ta phải chỉ ra số của thanh ghi ựược ựọc. để ghi một từ nhớ vào tệp thanh ghi chúng ta cần phải có hai tắn hiệu vào, một tắn hiệu chỉ ra số của thanh ghi ựược ghi dữ liệu (ựịa chỉ của thanh ghi) và tắn hiệu còn lại cung cấp dữ liệu cần ghi. Các tắn hiệu cần ựọc luôn sẵn sàng khi các số của thanh ghi ựược ựặt vào. Tuy nhiên, các lệnh ghi thì ựược ựiều khiển bởi một tắn hiệu ựiều khiển ghi, ựược ựặt ở mức cao mỗi

khi ghi tại một sườn clock. Vì vậy chúng ta phải cần 4 giá trị ựầu vào (3 cho số của các thanh ghi và 1 cho dữ liệu) và 2 giá trị ra (cả hai ựều cho dữ liệu).

Hình 3- 4: Bộ nhớ chương trình, PC và module tắnh PC+1 ựược kết nối với nhau tạo thành datapath ựơn giản

Hình 3- 5: Tệp thanh ghi (register file)

Một phần của tài liệu thiết kế trên kít FPGA DE2 của Altera (Trang 31)

Tải bản đầy đủ (PDF)

(102 trang)