1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế CPU RISC đa chu kỳ 32 bit

74 21 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 74
Dung lượng 3,51 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Reset tích cực mức thấp 3.3 Tập thanh ghi: Hình 3.3 Tập thanh ghi của CPU ™ Các toán hạng của lệnh số học cần xuất phát từ một số giới hạn những vị trí đặc biệt được chứa trong tập thanh

Trang 1

Đại Học Quốc Gia Tp.Hồ Chí Minh

TRƯỜNG ĐẠI HỌC BÁCH KHOA

-

TRƯƠNG VIỆT PHƯƠNG

THIẾT KẾ CPU RISC ĐA CHU KỲ

Trang 2

Tp HCM, ngày 03 tháng 07 năm 2008

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ và tên học viên: TRƯƠNG VIỆT PHƯƠNG Phái: Nam

Ngày, tháng, năm sinh: 23/05/1981 Nơi sinh: Quãng Ngãi Chuyên ngành: Kỹ thuật điện tử MSHV: 01406323 I- TÊN ĐỀ TÀI:

THIẾT KẾ CPU RISC ĐA CHU KỲ 32 BIT II- NHIỆM VỤ VÀ NỘI DUNG:

- Thiết kế bộ vi xử lý RISC đa chu kỳ 32 bit

- Cài đặt bộ vi xử lý RISC 32 bit trên FPGA

III- NGÀY GIAO NHIỆM VỤ: 21/01/2008

IV- NGÀY HOÀN THÀNH NHIỆM VỤ: 03/07/2008

Trang 3

LỜI CẢM ƠN

Tôi trân trọng gửi đến Tiến sĩ Đinh Đức Anh Vũ và Thạc sĩ Tống Văn On lời cảm ơn chân thành và lòng biết ơn sâu sắc nhất vì những động viên và đóng góp ý kiến trong suốt thời gian qua

Xin chân thành cảm ơn các thầy cô trong khoa Điện-Điện Tử, đặc biệt là các thầy cô trong bộ môn Điện Tử và Viễn Thông, Trường Đại Học Bách Khoa TP.HCM

đã tận tình giảng dạy, hướng dẫn và giúp đỡ tôi trong quá trình học tập và hoàn thành luận văn này

Sau cùng tôi xin được bày tỏ tình cảm đến các bạn cùng khóa đã trao đổi nhiều tài liệu và giúp đỡ tôi trong suốt thời gian học

TP Hoà Chí Minh, tháng 07 năm 2008 TRƯƠNG VIỆT PHƯƠNG

Trang 4

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH Cán bộ hướng dẫn khoa học: Ths Tống Văn On

Cán bộ chấm nhận xét 1:

Cán bộ chấm nhận xét 2:

Luận văn thạc sĩ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ TRƯỜNG ĐẠI HỌC BÁCH KHOA,

Ngày 28 tháng 07 năm 2008

Trang 6

In the age of today, together with the development of powerful information technology and telecommunications, technical innovation and upgrade is one of the most important factors that can’t be missed The normal processor can solve this problem but it can not ensure that fast processing speed and lower consumption The appearance of RISC processor not only responds demands of technical innovation and upgrade but also ensures processing speed and power consumption

In these recent years, RISC processor are applied widely for a lot of devices including cars, phone, digital cameras, printers,…Specially, they are the key for realization of portable electronic devices

In this thesis, I will present the design and implementation of 32 bit multicycle RISC on FPGA

Trang 7

Tóm tắt

Abstract

Chương 0: Giới thiệu 1

0.1 Giới thiệu 1 0.2 Tổ chức luận văn 1

Chương 1: Giới thiệu về kiến trúc RISC 3

1.5 Các hệ thống phổ biến của RISC 7

Chương 2: Tập lệnh 8

2.1 Tóm tắt tập lệnh 8 2.2 Định dạng lệnh 9 2.3 Các chế độ định địa chỉ 10

Chương 4: Thiết kế đường dữ liệu 21

4.1 Tổng quan về đường dữ liệu 21

4.2 Đường dữ liệu đơn chu kỳ 21

4.2.1 Đường dữ liệu cho quá trình tìm nạp lệnh 21

4.2.2 Đường dữ liệu cho quá trình giải mã 22

4.2.3 Đường dữ liệu cho quá trình thực thi lệnh dạng R 23

4.2.4 Đường dữ liệu cho quá trình thực thi lệnh load và store 24

4.2.5 Đường dữ liệu cho quá trình thực thi lệnh nhảy 24

Trang 8

4.2.8 Đường dữ liệu đơn chu kỳ hoàn chỉnh 28

4.3 Đơn vị điều khiển 28

4.4 Ưu và khuyết điểm của đơn chu kỳ 31

4.5 Đường dữ liệu đa chu kỳ 31

4.5.1 Tổng quan về thực hiện đa chu kỳ 31

4.5.2 Xây dựng đường dữ liệu đa chu kỳ 34

4.5.3 Xây dựng các giá trị tín hiệu điều khiển cho mỗi lệnh 40

Chương 5: Điều khiển đa chu kỳ 45

5.1 Điều khiển đa chu kỳ 45 5.2 Máy trạng thái của đường dữ liệu đa chu kỳ 46

5.2.1 Điều khiển FSM cho quá trình nhận và giải mã lệnh 47

5.2.2 Điều khiển FSM cho quá trình tham chiếu bộ nhớ 47

5.2.3 Điều khiển FSM cho dạng lệnh R 48

5.2.4 Điều khiển FSM cho dạng lệnh rẽ nhánh 48

5.2.5 Điều khiển FSM cho lệnh nhảy 48

5.3 Bảng giá trị các tín hiệu điều khiển 49

Chương 6: Kết luận và hướng phát triển đề tài 50

Trang 9

IBM 801, Stanford MIPS và Berkeley 1 và 2, tất cả được thiết kế với mô hình tương tự nhau và được biết như RISC ngày nay

Hiện nay thiết kế và chế tạo vi mạch là một lĩnh vực đang phát triển nhanh

chóng Có rất nhiều công ty đang nghiên cứu và phát triển trên lĩnh vực này Đây là

một lĩnh vực thuộc công nghệ cao và sẽ là lĩnh vực mũi nhọn trong tương lai, trong khi

đó nước ta chưa có gì, vì vậy vấn đề đặt ra là cần phải đào tạo nguồn nhân lực về lĩnh

vực thiết kế vi mạch

0.2 Tổ chức của luận văn:

Chương 0: giới thiệu

Chương1: giới thiệu về kiến trúc RISC

Chương 2:tập lệnh

Chương 3: tổ chức của bộ vi xử lý

Chương 4:thiết kế đường dữ liệu

Chương 5:điều khiển đa chu kỳ

Chương 6: kết luận và hướng phát triển đề tài

Phụ lục 1: mã verilog của thiết kế CPU

Phụ lục 2: các kết quả mô phỏng

Trang 10

0.3 Các công việc có liên quan:

Mục tiêu chính của luận văn là tìm hiểu nguyên tắc hoạt động, xây dựng tập

lệnh và thiêt kế cấu trúc của bộ vi xử lý RISC đa chu kỳ

Ngoài ra để thiết kế trên FPGA, tác giả phải hiểu rõ về FPGA và ngôn ngữ mô

tả phần cứng Verilog để lập trình cho thiết bị Công cụ chính để thực hiện đề tài là :

¾ Phần mềm ISE version 8.2i của Xilinx

¾ Phần cứng board Spartan III

Trang 11

dụng Vì thế họ mới đề xuất ra một máy tính có số lệnh ít hơn và cấu trúc đơn giản

hơn Kiểu máy tính như thế người ta gọi là máy tính có tập lệnh rút gọn hay còn gọi là RISC ( Reduced Instruction Set Computer )

Đặc điểm đầu tiên của RISC là mỗi lệnh được thực hiện trong một chu kỳ Nạp lệnh trong một chu kỳ có thể thực hiện được bằng cách giữ cho các lệnh ở một kích

thước chuẩn Kích thước lệnh chuẩn bằng với số đường dữ liệu trong bus hệ thống Ở mỗi chu kỳ nạp lệnh , một lệnh đơn hoàn chỉnh sẽ được chuyển đến CPU Ví dụ kích

thước word cơ bản là 32 bit và port dữ liệu của bus hệ thống là 32 đường thì chiều dài lệnh chuẩn là 32 bit

Một số lệnh có liên quan đến các phép toán logic trên thanh ghi thì có thể được thực hiện trong một chu kỳ mà không có vấn đề gì Những lệnh liên quan đến quá

trình truy xuất bộ nhớ thì không thể thực hiện trong một chu kỳ đơn

Tóm lại thì những lệnh nào được chọn vào trong danh sách tập lệnh rút gọn ?

Câu trả lời chính xác đó là các lệnh hay sử dụng nhất, trong số các lệnh đó tập trung

chủ yếu là các lệnh di chuyển dữ liệu, lệnh liên quan đến các phép toán logic và các

lênh liên quan đến các phép toán số học

Để thuận tiện cho các phép toán xảy ra trên các toán hạng thanh ghi thì tập các

thanh ghi phải đủ lớn Với tập thanh ghi đủ lớn thì cho phép lưu trữ tạm thời các kết

quả trung gian của những phép toán mà không cần sử dụng bộ nhớ Điều này sẽ làm

giảm đi bớt các hoạt động truy xuất bộ nhớ tương ứng với việc giảm đi bớt các lệnh

lấy và lưu dữ liệu vào trong bộ nhớ Với RISC 32 bit thì tập thanh ghi tối thiểu là 32

thanh ghi

Trang 12

1.2 Ý tưởng thiết kế RISC:

Ý tưởng bắt đầu khi người ta nhận thấy rất nhiều tính năng trong các bộ vi xử lý vốn được thiết kế nhằm giúp công việc lập trình trở nên dễ dàng hơn lại thường bị các phần mềm bỏ sót Những tính năng này thông thường cần vài chu kỳ máy để thực thi

Cộng thêm sự cách biệt về hiệu suất giữa các CPU và bộ nhớ chính đã dẫn đến nhiều

kỹ thuật nhằm tổ chức lại quá trình thực thi trong bộ xử lý và làm giảm bớt số lần truy xuất bộ nhớ

Những năm cuối của thập niên 1970, các nhà nghiên cứu của IBM đã chứng

minh rằng phần lớn các phương pháp đánh địa chỉ trực giao thường bị các chương

trình bỏ qua Đây chính là kết quả không mong đợi do sử dụng các trình biên dịch cấp cao thay vì sử dụng hợp ngữ Các trình dịch tại thời điểm đó không đủ khả năng để

tận dụng hết tính năng của các bộ vi xử lý CISC, chủ yếu là do sự khó khăn trong thiết

kế trình dịch Trình biên dịch càng trở nên phổ biến thì các tính năng này lại càng bị

bỏ quên

Cũng trong thời gian này, CPU bắt đầu hoạt động nhanh hơn bộ nhớ Thậm chí trong thập niên 1970, người ta cho rằng điều này sẽ còn tiếp tục không dưới một thập

niên nữa , và đến lúc đó CPU sẽ nhanh hơn bộ nhớ từ hàng chục đến hàng trăm lần Có

lẽ đã đến lúc CPU cần thêm nhiều thanh ghi để có thể hoạt động ở tốc độ cao Những

thanh ghi và bộ nhớ đệm mới sẽ cần khoảng trống trên bo mạch hoặc trên chip được

tạo ra nếu giảm sự phức tạp của CPU

Đến lúc này , một phần đóng góp cho kiến trúc RISC đến từ thực tế đo đạc

những chương trình trong thế giới thực Andrew Tanenbaum từ tổng kết rất nhiều đo

đạc này đã chỉ ra rằng hầu hết những CPU lúc bấy giờ đều được thiết kế quá thừa Ví

dụ , ông cho rằng 98% các hằng hoàn toàn có thể biểu diễn bằng 13 bit, trong khi đó

các CPU đều được thiết kế theo bội số của 8 thường là 8, 16, 32 Do đó nếu CPU cho

phép các hằng được lưu trong những bit dư của mã lệnh sẽ làm giảm đi rất nhiều lần

truy xuất bộ nhớ Thay vì phải đọc từ bộ nhớ hay từ thanh ghi, các hằng đã ở ngay đó

khi CPU cần, vì thế quá trình thực thi sẽ nhanh hơn Tất nhiên điều này yêu cầu mã

lệnh phải thật nhỏ để những lệnh 32 bit có thể chứa được những hằng tương đối lớn

Những chương trình trong thực tế thường tốn phần lớn thời gian để thực hiện

một số tác vụ đơn giản, do đó một số nhà nghiên cứu hướng đến việc tối ưu hóa

Trang 13

những tác vụ này Do xung nhịp của CPU bị giới hạn bởi thời gian thực hiện lệnh

chậm nhất, nên nếu tối ưu lệnh này sẽ khiến cho toàn bộ tập lệnh được thực thi nhanh

hơn nhiều Mục tiêu của RISC chính là đơn giản hóa các lệnh, để mỗi lệnh có thể được thực thi trong một chu kỳ máy Việc tập trung đơn giản hóa các lệnh đã cho ra đời các loại máy “ máy tính có tập lệnh được đơn giản hóa” hay còn gọi là RISC

1.3 Các đặc điểm của RISC:

¾ Mỗi lệnh chỉ thực hiện trong một chu kỳ

¾ Định dạng lệnh đơn giản, dễ giải mã và kích thước lệnh phải cố định

¾ Ít lệnh

¾ Ít chế độ định địa chỉ

¾ Truy xuất bộ nhớ bị giới hạn, chỉ có lệnh load và store

¾ Tất cả các phép toán được thực hiện bên trong thanh ghi

¾ Tập thanh ghi phải nhiều

Với bộ vi xử lý RISC thì nó cũng có những hoạt động như bộ vi điều khiển

nhưng nó không có nhiều lệnh, vì tốc độ xử lý của nó nhanh hơn, đồng thời có thể dễ

dàng nâng cấp và cải tiến kỹ thuật khi có nhu cầu cần thiết

Ngày nay bộ vi xử lý RISC được sử dụng rộng rãi trong nhiều ứng dụng như

trong xe ô tô, máy điện thoại, máy ảnh số , máy in, và cũng như trong nhiều thiết bị

khác Lý do của việc sử dụng rộng rãi các bộ vi xử lý RISC là công suất của nó thấp và kích thước của nó nhỏ, do đó nó không chiếm nhiều diện tích và cũng như chi phí cho việc chế tạo

1.4 Cải tiến RISC:

Trong khi những khái niệm về RISC đang dần được hoàn thiện thì những ý

tưởng nhằm cải tiến hiệu suất cho các CPU cũng bắt đầu ra đời

Ý tưởng đầu tiên có lẽ là kỹ thuật đường ống (pipeline): Đây là một kỹ thuật

nhằm chia nhỏ quá trình thực thi một lệnh thành nhiều bước, và các bước khác nhau

của các lệnh khác nhau có thể đồng thời được thực thi Một bộ xử lý thông thường đọc một lệnh, giãi mã , đọc những vùng nhớ lệnh nó cần, thực thi lệnh, trả kết quả trở về

Trang 14

Với kỹ thuật đường ống, bộ xử lý có thể đọc một lệnh ngay sau khi nó đọc xong lệnh

trước đó, tức nó vừa giải mã một lệnh vừa đọc một lệnh kế tiếp, tới chu kỳ tiếp theo bộ

xử lý sẽ làm việc với ba lệnh cùng một lúc, và cứ thế tiếp tục Dù thực tế không có

lệnh nào được thực thi nhanh hơn, nhưng do lệnh theo sau sẽ hoàn thành ngay sau khi lệnh trước hoàn tất nên đây là một giải pháp rất hiệu quả nhằm tận dụng tối đa tài

nguyên của các vi xử lý

Một phương án khác là dùng nhiều đơn vị xử lý song song trong cùng một bộ

xử lý Thay vì thực thi một lệnh bộ xử lý sẽ tìm cách thực thi đồng thời lệnh kế tiếp

trong một đơn vị xử lý khác Tuy nhiên đây là một phương án khó vì nhiều lệnh đôi

khi lại phụ thuộc vào kết quả của lệnh trước nó

Cả hai phương pháp trên hướng tới việc cải tiến bằng cách tăng độ phức tạp của CPU Vì không gian trên chip là có giới hạn do đó để thêm những tính năng mới này

người ta cần bỏ đi những tính năng khác Vì thế RISC là kẻ được hưởng lợi trước tiên

do về cấu trúc nó đơn giản hơn CISC nhiều Những thiết kế RISC đầu tiên nhanh

chóng được thêm những tính năng mới giúp chúng vượt qua những chip CISC tương

ứng

Dù ở bất kỳ cấp độ nào , đơn vị logic của một chip RISC bao giờ cũng cần ít

transitor hơn so với một chip CISC Điều này giúp người thiết kế có rất nhiều sự linh

hoạt như:

¾ Tăng số lượng thanh ghi

¾ Sử dụng các phương pháp tối ưu để tăng mức độ xử lý song song bên trong CPU

¾ Tăng kích thước cable

¾ Thêm các tính năng như I/O, timer…

¾ Tận dụng các dây chuyền công nghệ cũ , trong khi các chip CISC điều này rất

khó khăn

Ngày nay , một số kiến trúc RISC được xây dựng dựa trên kiến trúc Harvard,

trong đó bus dữ liệu và bus chương trình tách rời nhau Điều này giúp cho quá trình

đọc dữ liệu và giải mã lệnh có thể xảy ra đồng thời do đó có khả năng nâng cao hiệu

suất của vi xử lý

Trang 15

1.5 Các hệ thống và các RISC phổ biến:

™ Họ MIPS, trong các máy tinh SGI, Playstation và Nintendo 64 game consoles

™ Họ POWER trong các SuperComputer/mainframe của IBM

™ Freescale và IBM’s PowerPC trong Nintendo Gamecube, Microsoft Xbox 360,

Nintendo Wii and Sony Playstation 3 game consoles, và cho tới gần đây là Apple Macintosh

™ SPARC và UltraSPARC trong tất cả các hệ thống của Sun

Trang 16

CHƯƠNG 2

TẬP LỆNH

2.1 Tóm tắt tập lệnh:

Hoạt động của CPU được xác định bởi tập lệnh mà nó thực thi Tập hợp các

lệnh khác nhau để CPU có thể thực thi được gọi là tập lệnh của CPU Từ tập lệnh ta

mới có thể xác định đường dữ liệu và mọi thứ khác trong vi xử lý

Bảng tóm tắt các lệnh cơ bản của RISC như sau:

Mả gợi nhớ Khuôn dạng Trường Opcode Trường chức

Trang 17

2.2 Định dạng lệnh:

Tập lệnh của RISC có chiều dài cố định 32-bit và 32 thanh ghi đa năng 32 bit

Thanh ghi 0 luôn chứa giá trị 0 Một từ nhớ rộng 32-bit

RISC có ba khuôn dạng lệnh (instruction format) Chỉ có các khuôn dạng I như LOAD và STORE mới tham chiếu các toán hạng bộ nhớ Các lệnh khuôn dạng R, như ADD, AND hoặc OR chỉ thực hiện các thao tác trên dữ liệu trong các thanh ghi

Chúng yêu cầu hai toán hạng thanh ghi Rs và Rt Kết quả của thao tác được lưu trong

thanh ghi thứ ba Rd Các trường chức năng (function) và dịch (shift) của khuôn dạng R được sử dụng làm trường opcode (mã thao tác) mở rộng Các lệnh khuôn dạng J bao

Funct : mã chức năng tương ứng với mã lệnh đó

Rs : địa chỉ thanh ghi nguồn thứ nhất

Rt : địa chỉ thanh ghi nguồn thứ hai

Rd : địa chỉ thanh ghi đích

Shamt : dùng cho các lệnh dịch bit, các lệnh khác có shamt=0

6 bits 5 bits 5 bits 5 bits 5 bits 6 bits

sham

Trang 18

2.2.2 Các lệnh chuyển dữ liệu (định dạng I):

Với:

Op : mã lệnh

Rs : địa chỉ thanh ghi nguồn thứ nhất

Rt : địa chỉ thanh ghi nguồn thứ hai

Offset : giá tri 16 bit

Trang 19

™ Định địa chỉ nền: operand ở vị trí nhớ có địa chỉ là tổng của thanh ghi và hằng 16 bit chứa trong lệnh

™ Định địa chỉ trực tiếp (hay tức thời): operand là hằng 16 bit chứa trong lệnh

™ Định địa chỉ tương đối PC: địa chỉ của lệnh là tổng của PC và hằng 16 bit chứa

trong lệnh

™ Định địa chỉ giả trực tiếp: địa chỉ của lệnh là hằng 26 bit chứa trong lệnh nối với

4 bit cao của PC

Trang 20

2.4 Tập lệnh chi tiết:

Lệnh add:

Cú pháp: add rd , rs , rt

Chức năng: cộng giá trị trong thanh ghi rs với giá trị trong thanh ghi rt và đặt kết quả

vào trong thanh ghi rd

Lệnh sub:

Cú pháp : sub rd , rs , rt

Chức năng : trừ giá trị trong thanh ghi rs với giá trị trong thanh ghi rt và đặt kết quả

vào trong thanh ghi rd

Lệnh and:

Cú pháp: and rd , rs , rt

Chức năng: and giá trị trong thanh ghi rs với giá trị trong thanh ghi rt và đặt kết quả

vào trong thanh ghi rd

Lệnh or:

Cú pháp: or rd , rs , rt

Chức năng: or giá trị trong thanh ghi rs với giá trị trong thanh ghi rt và đặt kết quả vào

trong thanh ghi rd

Trang 21

Lệnh sll:

Cú pháp: sll rd , rt , shamt

Chức năng: dịch trái thanh ghi rt đi một khoảng là shamt bit và đặt kết quả vào trong

thanh ghi rd , và điền các bit bị dịch đi là bit 0

Lệnh srl

Cú pháp: srl rd , rt , shamt

Chức năng: dịch phải thanh ghi rt đi một khoảng là shamt bit và đặt kết quả vào thanh

ghi rd, điền các bit bị dịch đi là bit 0

Lệnh slt:

Cú pháp : slt rd , rs , rt

Chức năng: so sánh giá trị trong thanh ghi rs và giá trị trong thanh ghi rt, nếu giá trị

trong thanh ghi rs nhỏ hơn trong rt thì đặt giá trị 1 vào rd và ngược lại thì đặt giá trị 0

Trang 22

Cú pháp: addi rd , rs , imm

Chức năng: cộng giá trị trong thanh ghi nguồn với giá trị trực tiếp imm 16 bit từ mã

lệnh, giá trị trực tiếp này được qua khối mở rộng bit dấu thành dữ liệu 32 bit rồi mới

thực hiện phép cộng, kết quả đặt vào trong thanh ghi rd

Chức năng: nhảy đi một khoảng là offset word tính từ địa chỉ hiện thời của lệnh beq

nếu giá trị trong thanh ghi nguồn rs= bằng giá trị trong thanh ghi đích rt, offset có âm

hoặc dương Giá tri địa chỉ nhảy đến được tính bởi PC+4+offset*4

Trang 23

Lệnh bne:

Cú pháp: bne rs , rt , offset

Chức năng: nhảy đi một khoảng là offset word tính từ địa chỉ hiện thời của lệnh bne

nếu giá trị trong thanh ghi nguồn rs khác giá trị trong thanh ghi đích rt, offset có thể

âm hoặc dương Giá trị địa chỉ nhảy đến được tính bởi PC+4+offset*4

Trang 24

CHƯƠNG 3

TỔ CHỨC CỦA BỘ VI XỬ LÝ

3.1 Tổng quan về kiến trúc bộ vi xử lý RISC:

Control Unit

control bus signals

address bus data bus

Hình 3.1 Tổng quan về kiến trúc bộ vi xử lý

Hình 3.1 trình bày sơ đồ khối của bộ vi xử lý RISC Có ba modules trong khối

này gồm:

¾ Module control unit (mođun đơn vị điều khiển ): điều khiển gửi (nhận) tín hiệu

điều khiển (dữ liệu) trong liên kết với dãi thanh ghi

¾ Module ALU : thực hiện I/O trên dữ liệu chứa trong dải thanh ghi

¾ Module register

Sơ đồ khối chi tiết của bộ xử lý :

Trang 25

¾ CPU : là thành phần tích cực của máy tính , nó làm tất cả công việc như thao tác

dữ liệu và ra quyết định

¾ Đường dữ liệu : là phần cứng để thực thi tất cả những thao tác yêu cầu, ví dụ như

là ALU , dải thanh ghi và bus nội

¾ Đơn vị điều khiển : là phần cứng để thông báo với đường dữ liệu cần phải làm

cái gì như chuyển chu kỳ , di chuyển dữ liệu giữa ALU và các thành phần

khác,…

3.2 Sơ đồ chân:

Hình 3.2 Cấu hình chân của CPU

Trang 26

Hình 3.2 trình bày cấu hình chân của CPU CPU có hai chân vào (clock và reset ) , hai chân ra điều khiển đọc ghi bộ nhớ (mem read và mem write ) và 3 port gồm hai port ngõ ra (write data và write/read data ) và một port ngõ vào (read data ) mỗi port

có 32 chân dùng để truy xuất bộ nhớ Tín hiệu clock sẽ điều khiển toàn bộ CPU Reset tích cực mức thấp

3.3 Tập thanh ghi:

Hình 3.3 Tập thanh ghi của CPU

™ Các toán hạng của lệnh số học cần xuất phát từ một số giới hạn những vị trí đặc

biệt được chứa trong tập thanh ghi của đường dữ liệu Các thanh ghi sẽ:

¾ Nhanh

¾ Dễ dàng được sử dụng bởi trình biên dịch

¾ Cải thiện được mật độ mã

™ Tập thanh ghi (register file) là thiết bị phần cứng có 2 port đọc và một port ghi

Các toán hạng của lệnh số học cần xuất phát từ một số giới hạn những vị trí đặc

biệt được chứa trong tập thanh ghi của đường dữ liệu Tập thanh ghi bao gồm 32 thanh ghi 32 bit có thể được đọc hay ghi bằng cách cung cấp một con số thanh

ghi để truy xuất

™ Địa chỉ của thanh ghi được chỉ ra bằng $

Trang 27

Danh sách tên và cách sử dụng tập thanh ghi:

$v0-$v1 2-3 values for results and expression evaluation

$k0-$k1 26-27 reserved for Operating System kernel

Trang 28

Các toán hạng của lệnh số học phải ở trong những thanh ghi Nhưng bộ vi xử lý chỉ có

32 thanh ghi được cung cấp , do đó đối với các chương trình nhiều biến thì các biến đó phải được lưu trong bộ nhớ Vì vậy, phải có khả năng di chuyển các biến đến/từ bộ

nhớ và tập thanh ghi một cách dễ dàng

¾ Bộ nhớ là dải một chiều , lớn

¾ Địa chỉ đóng vai trò chỉ số bên trong bộ nhớ

¾ Địa chỉ byte được định địa chỉ theo kiểu big Endian trong khi các bit được định

địa chỉ theo kiểu little Endian

Trang 29

CHƯƠNG 4

THIẾT KẾ ĐƯỜNG DỮ LIỆU

4.1 Tổng quan về đường dữ liệu :

Đường dữ liệu là một phần “cơ bắp” của vi xử lý , nó thi hành chu kỳ tìm nạp – giải mã – thực thi Nguyên tắc chung cho thiết kế đường dữ liệu là:

¾ Phân tích tập lệnh

¾ Chọn các thành phần đường dữ liệu và thiết lập các phương pháp tạo clock

¾ Ghép nối các đường dữ liệu theo yêu cầu

¾ Xác định các giá trị tín hiệu điều khiển cho mỗi lệnh

¾ Ghép nối các mạch logic điều khiển để tạo ra các tín hiệu điều khiển

Những thành phần của đường dữ liệu đơn giản gồm có:

¾ Bộ nhớ (lưu trữ lệnh hiện tại)

¾ PC hay bộ đếm chương trình (lưu trữ địa chỉ của lệnh hiện tại)

¾ ALU thực thi lệnh hiện tại

4.2 Đường dữ liệu đơn chu kỳ :

Kiến trúc RISC gồm có 5 module chính:

¾ Module tìm nạp lệnh (IFETCH): chứa bộ nhớ chương trình ,bộ đếm chương trình

PC và phần cứng tăng bộ đếm chương trình để tính địa chỉ của lệnh kế

¾ Module giải mã (IDECODE): chứa các thanh ghi 32 bit

¾ Module thực thi (EXECUTE): chứa địa chỉ và dữ liệu rẽ nhánh của ALU, và

mạch cộng địa chỉ rẽ nhánh dùng cho các lệnh rẽ nhánh tương đối theo PC

¾ Module bộ nhớ (DMEMORY): chứa bộ nhớ dữ liệu

4.2.1 Đường dữ liệu cho quá trình tìm nạp lệnh:

Trang 30

Quá trình tìm nạp lệnh :

¾ Đọc lệnh từ bộ nhớ lệnh: bộ nhớ lệnh chứa các lệnh mà bộ vi xử lý sẽ thực hiện

Ngõ vào của bộ nhớ lệnh là địa chỉ 32 bit từ bộ đếm chương trình, ngõ ra các

lệnh với độ dài là 32 bit

¾ Cập nhật giá trị của PC bằng địa chỉ của lệnh kế tiếp :PC chứa địa chỉ của lệnh sẽ

được nạp từ bộ nhớ lệnh trong thời gian của chu kỳ kế tiếp PC sẽ tăng lên 4

trong mỗi chu kỳ xung clock

4.2.2 Đường dữ liệu cho quá trình giải mã lệnh:

Quá trình giải mã lệnh:

¾ Truyền opcode của lệnh đã tìm nạp và các bit của trường chức năng(funct) đến

đơn vị điều khiển

¾ Đọc hai giá trị từ tập thanh ghi , các địa chỉ của tập thanh ghi được chứa trong

lệnh

¾ Cả hai thanh port đọc của tập thanh ghi đều tích cực đối với tất cả lệnh trong thời

gian giải mã sử dụng các địa chỉ của trường rs và rt của lệnh

Trang 31

4.2.3 Đường dữ liệu cho quá trình thực thi dạng lệnh R:

Các lệnh dạng R (add, sub, slt, and, or):

¾ Thực hiện thao tác (op và funct) trên các giá trị trong rs và rt

¾ Lưu kết quả trở lại tập thanh ghi trong vị trí rd

¾ Tập thanh ghi không được ghi mỗi chu kỳ do đó ta cần tín hiệu điều khiển ghi

cho tập thanh ghi

Trang 32

4.2.4 Đường dữ liệu cho quá trình thực thi lệnh load và store:

Các lệnh load/store cần phải:

¾ Tính địa chỉ bộ nhớ bằng cách cộng thanh ghi nền (trong rs) với trường offset 16

bit có dấu trong lệnh

¾ Thanh ghi nền được đọc từ tập thanh ghi trong thời gian giải mã

¾ Giá trị offset trong 16 bit thấp của lệnh phải được mở rộng dấu để tạo ra giá trị

32 bit có dấu

¾ Load : giá trị đọc từ tập thanh ghi trong thời gian giải mã phải được ghi đến bộ

nhớ dữ liệu

¾ Store: giá trị đọc từ bộ nhớ dữ liệu phải được lưu trong tập thanh ghi

4.2.5 Đường dữ liệu cho quá trình thực thi lệnh nhảy:

RD

Instructio n Memory

Zero

RD WD

Trang 33

Quá trình thực thi các lệnh nhảy: thay thế 28 bit thấp của PC bằng 26 bit thấp

của lệnh đã tìm nạp được dịch trái 2 bit

4.2.6 Đường dữ liệu cho quá trình thực thi lệnh rẽ nhánh:

Các lệnh rẽ nhánh cần phải:

¾ So sánh “bằng” các toán hạng đọc từ tập thanh ghi trong thời gian giải mã( các

giá trị trong rs và rt)

¾ Tính địa chỉ đích rẽ nhánh bằng cách cộng PC đã cập nhật với trường offset 16

bit có dấu được mở rộng dấu trong lệnh

¾ Thanh ghi nền là PC đã được cập nhật

¾ Giá trị offset trong 16 bit thấp của lệnh phải được mở rộng dấu để tạo ra giá trị

32 bit có dấu và kế đến được dịch trái 2 bit để trở thành địa chỉ từ

4.2.7 Tạo đường dẫn dữ liệu từ các thành phần:

¾ Lắp ghép các thành phần đường dữ liệu , thêm vào các đường điều khiển cần

thiết và thiết kế đơn vị điều khiển

¾ Tìm nạp , giải mã , và thực thi từng lệnh trong một chu kỳ clock

¾ Thời gian chu kỳ được xác định bởi chiều dài của lệnh dài nhất

Trang 34

™ Tổng hợp đường dữ liệu của dạng lệnh R và load/store:

™ Tổng hợp đường dữ liệu lệnh R, lệnh load/store và lệnh rẽ nhánh:

5 5 16

MemRead

Data Memory

5

ADDR

MemWrite

M U X

Operation

ALU

3

E X T N

Zero

RD WD

MemRead

Data Memory ADDR MemWrite

5

Instruction

32

M U

ALUSrc

MemtoReg

ADD

<<2 RD

Instruction Memory

ADDR PC

Trang 35

™ Hoàn thành đường dữ liệu:

Operation

ALU

3

E X T N

Zero

RD WD

MemRead

Data Memory ADDR MemWrite

5

Instruction I

32

M U

ALUSrc

MemtoReg

ADD

<<2 RD

Instruction Memory

ADDR PC

4

AD

AD M U

M U

RegWrite Register

Operati on

ALU

3

E X T N D

Zero

RD WD

MemRead

Data Memory

M U

1 1

0

Trang 36

4.2.8 Đường dữ liệu đơn chu kỳ hoàn chỉnh:

4.3 Đơn vị điều khiển:

4.3.1 Điều khiển ALU:

Thao tác của ALU dựa trên loại lệnh và mã chức năng:

Việc điều khiển ALU sử dụng nhiều mức giải mã :

¾ Đơn vị điều khiển chính tạo ra tạo ra các bit ALUOp

¾ Đơn vị điều khiển ALU tạo ra các bit ALUcontrol

RegWrite Register

Operati on

ALU

3

E X T N D

16 32

Zer

RD WD

MemRead

Data Memory

M X U

0

1 0

ALU Control Control

0 1

Trang 37

PC+4[31-Bảng giá trị 6 ngõ vào:

4.3.2 Đơn vị điều khiển chính:

Đơn vị điều khiển chính với ngõ vào 6 bit opcode từ 32 bit của một chỉ thị lệnh ,

tạo ra 8 tín hiệu điều khiển để điều khiển các tầng khác nhau của bộ vi xử lý Đơn vị

này điều khiển tất cả hoạt động của bộ vi xử lý Module này tạo ra tất cả các tín hiệu

để điều khiển hoạt động đọc ghi của tập thanh ghi và bộ nhớ dữ liệu , tín hiệu điều

khiển đơn vị quyết định rẽ nhánh

Operation Desired Action

and

or set on less than

X 0 0 1 1 0

Ngày đăng: 09/03/2021, 01:01

TỪ KHÓA LIÊN QUAN

w