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

Thiết kế Vi xử lý MIPS pipelines

44 459 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 44
Dung lượng 1,72 MB

Nội dung

Yêu cầu lúc này cần phải tăng tốc xử lý, loại bỏ tất cả các khóa đồng bộ trong để cho các lệnh trong tập lệnh cơ bản phải được thực hiện trong thời gian bằng nhau một chu kỳ xung nhịp..

Trang 1

MỤC LỤC

MỤC LỤC 3

DANH MỤC HÌNH ẢNH 6

DANH MỤC BẢNG BIỂU 7

LỜI NÓI ĐẦU 8

Chương 1: Giới thiệu ý tưởng và xác định chỉ tiêu kỹ thuật của bộ xử lý MIPS Pipelines 9

1.1 Nhu cầu cho của bộ xử lý MIPS Pipline 9

1.1.1 Nhu cầu cho sự ra đời của MIPS pipelines 9

1.1.2 Nguyên tắc thiết kế tập lệnh của MIPS 10

1.2 Các sản phẩm đã có trên thị trường 10

1.2.1 R2000 11

1.2.2 R6000 11

1.2.3 R4000 11

1.2.4 R10000 12

1.2.5 M5150 12

1.3 Ý tưởng đề tài và các yêu cầu kỹ thuật 13

1.3.1 Ý tưởng của đề tài 13

1.3.2 Chỉ tiêu kỹ thuật 13

1.3.2.1 Tín hiệu đầu vào và đầu ra 13

1.3.2.2 Tập lệnh cơ bản 15

1.3.3 Yêu cầu chức năng 15

1.3.4 Yêu cầu phi chức năng 15

Chương 2: Phân tích chức năng và lập kế hoạch 16

2.1 Phân chia chức năng 16

Trang 2

2.1.1 Bộ nhớ lệnh (Instruction Memory) 16

2.1.2 Bộ nhớ dữ liệu (Data Memory) 17

2.1.3 Vi xử lý (MIPS) 17

2.1.3.1 Đường dữ liệu (Datapath) 17

2.1.3.2 Bộ điêu khiển (Control Unit) 17

2.1.3.3 Bộ xử lý xung đột (Hazard Unit) 18

2.2 Phân chia công việc 18

Chương 3: Phân tích chi tiết từng khối 20

3.1 Khối Bộ nhớ lệnh 20

3.2 Khối Bộ nhớ dữ liệu 20

3.3 Khối Vi xử lý 22

3.3.1 Đường dữ liệu 22

3.3.1.1 Khâu IF 23

3.3.1.2 Khâu ID 23

3.3.1.3 Khâu EX 24

3.3.1.4 Khâu MEM 25

3.3.1.5 Khâu WB 25

3.3.2 Khối điều khiển 25

3.3.3 Khối xử lý xung đột 28

Chương 4: Thiết kế hệ thống: 32

Chương 5: Triển khai 33

5.1 Sơ đồ khối hệ thống 33

5.2 Code các modulle: 34

5.2.1 Module top.v 34

5.2.2 Module mips.v 35

Trang 3

5.2.3 Module imem.v 37

5.2.4 Module dmem.v 38

Chương 6: Thực nghiệm 39

6.1 Môi trường thực nghiệm 39

6.2 Kế hoạch kiểm tra: 39

6.3 Mô hình RTL Viewer trên Quartus 40

6.3.1 Chạy chương trình thực hiện tất cả các phép toán theo yêu cầu 41

6.3.2 Chạy thực nghiệm tính tổng dãy số trên MIPS 42

6.3.3 Chạy thực nghiệm tính giai thừa trên MIPS 43

6.3.4 Chạy thực nghiệm tính toán số hạng của dãy Fibonaci: 44

TÀI LIỆU THAM KHẢO 46

Trang 4

DANH MỤC HÌNH ẢNH

Hình 1.1 Thế hệ MIPS I R2000 11

Hình 1.2 Thế hệ MIPS III R4000 11

Hình 1.3 Thế hệ MIPS IV R10000 12

Hình 1.4 Sơ đồ khối bộ vi xử lý MIPS 14

Hình 2.1 Sơ đồ khối Hệ thống MIPS 16

Hình 2.2 Sơ đồ khối điều khiển 18

Hình 3.1 Khối Bộ nhớ lệnh 20

Hình 3.2 Khối Bộ nhớ dữ liệu 21

Hình 3.3 Sơ đồ đường dữ liệu (Datapath) 22

Hình 3.4 Sơ đồ khối bên trong khối Control Unit 26

Hình 3.5 Quá trình thực hiện lệnh bị xung đột RAW 29

Hình 3.6 Quá trình xử lý xung đột RAW 29

Hình 3.7 Quá trình thực hiện lệnh lw bị xung đột 30

Hình 3.8 Quá trình giải quyết xung đột cho lệnh lw 30

Hình 3.9 Quá trình lệnh rẽ nhánh bị xung đột 31

Hình 3.10 Quá trình giải quyết xung đột khi thực hiện dự đoán rẽ nhánh sớm 31

Hình 4.1 Sơ đồ khối chi tiết một Hệ thống MIPS Pipelines 32

Hình 6.1 Kết quả tổng hợp 40

Hình 6.2 Mô hình Top Level 41

Hình 6.3 Mô hình MIPS Unit 41

Hình 6.4 Kết quả Coverage Report 42

Hình 6.5 Kết quả trên QuestaSim tính tổng từ 1 đến 5 43

Hình 6.6 Kết quả trên QuestaSim tính 6! 44

Hình 6.7 Kết quả trên QuestaSim tính số Fibonaci thứ 5 45

Trang 5

DANH MỤC BẢNG BIỂU

Bảng 1.1 Mô tả đầu vào, đầu ra của bộ Vi xử lý 14

Bảng 3.1 Bảng chức năng đầu vào, đầu ra của khối Bộ nhớ lệnh 20

Bảng 3.2 Mô tả đầu vào, đầu ra của bộ nhớ dữ liệu 21

Bảng 3.3 Mô tả đầu vào, đầu ra của đường dữ liệu 22

Bảng 3.4 Mô tả đầu vào, đầu ra của khối điều khiển 26

Bảng 3.5 Bảng chân lý của khối ALU Decoder 27

Bảng 3.6 Bảng chân lý của khối Main decoder 28

Trang 6

LỜI NÓI ĐẦU

Trong quá trình phát triển của công nghệ máy tính, con người dã chế tạo ra hàng ngàn loại máy tính khác nhau Công nghệ phát triển từng ngày, dân dần cácmáy tính thế hệ trước càng trở nên lỗi thời, chỉ có một số ít trong chúng có thể tồn tại được tới ngày nay Đó là những thế hệ máy tính chứa công nghệ tiên tiến nhất, hay những thế hệ máy tính đi trước mà nền tảng của nó vẫn được áp dụng hiện nay Chính vì vậy, việc tìm hiểu về kiến trúc máy tính cơ bản này giúp chúng ta có kiến thức, từ đó ta có thể tìm hiểu, phát triển những thế hệ máy tình tối ưu hơn, nhanh hơn, hiệu năng cao hơn trong tương lai Một kiến truc không thể không thể không kể đến là cấu trúc MIPS Kiến trúc máy tính MIPS được sử dụng rộng rãi trong các dòng máy tính đồ họa silicon, các hệ thống nhúng và cácthiết bị điện tử

Trong học kỹ này, em được hoc môn “Thiết kế IC số và hệ thống số” Nhờ sựhướng dẫn nhiệt tình và chu đáo của thầy Nguyễn Đức Minh, nhóm chúng em

đã áp dụng được những kiến thức của môn học này để hoàn thành đề tài thiết kế MIPS 32bit với các chức năng, thực hiện phép toán cơ bản Do kiến thức còn hạn hẹp nên bài tập lớn này chắc chắn vẫn còn nhiều sai sót Nhóm chúng em mong thầy góp ý để nhóm có thể hoàn thành, sửa chữa báo cáo tốt hơn

Nhóm chúng emcũng xin gửi lời cảm ơn sâu sắc đến PGS.TS Nguyễn Đức Minh đã hướng dẫn, giúp đỡ chúng em để chúng em có thể hoàn thành được bài tập này

Trang 7

Chương 1: Giới thiệu ý tưởng và xác định chỉ tiêu kỹ

thuật của bộ xử lý MIPS Pipelines

1.1 Nhu cầu cho của bộ xử lý MIPS Pipline

1.1.1 Nhu cầu cho sự ra đời của MIPS pipelines

MIPS là viết tắt của Microprocessor withour Interlocked Pipelines Stage, dòng vi xử lý được phát triển bởi MIPS Technology bắt đầu từ năm 1981 Bộ vi

xử lý này được thiết kế dựa theo kiến trúc RICS, đã từng chiếm tỉ lệ lớn trong sốcác bộ vi xử lý RICS được sản xuất bởi nhiều ưu điểm của nó thời đó

Kỹ thuật pipeliness (đường ống) đã ra đời từ trước nhưng vẫn chưa được phát triển để hoạt động tối ưu nhất Trước thời điểm MIPS được thiết kế, các bộ

vi xử lý theo cấu trúc đường ống khi thực hiện các lệnh tốn nhiều thời gian để thực hiện như nhân, chia Các giai đoạn sẽ phải tạm dừng hoạt động để chờ cho tới khi thực hiện xong hoàn toàn lệnh mới tiếp tục cho phép các lệnh tiếp theo được thực hiện Cách thực hiện điều này là sử dụng các khóa đồng bộ (interlock)

để cho các giai đoạn biểu thị rằng đang bận thực hiện lệnh và ngừng nạp lệnh mới Điều này làm ảnh hưởng nghiêm trọng đến hiệu năng của bộ vi xử lý vì khi

đó chu kỳ xung nhịp phải theo lệnh có thời gian thực hiện chậm nhất Yêu cầu lúc này cần phải tăng tốc xử lý, loại bỏ tất cả các khóa đồng bộ trong để cho các lệnh trong tập lệnh cơ bản phải được thực hiện trong thời gian bằng nhau (một chu kỳ xung nhịp)

Để thực hiện điều này, trước hết phải loại bỏ những câu lệnh tốn quá nhiều chu kỳ xung nhịp ra khỏi tập lệnh cơ bản được hỗ trợ như nhân, chia… và chỉ hỗtrợ những lệnh đơn giản, có thời gian thực hiện ngắn và có thể dùng để tính các lệnh phức tạp từ chúng Để thực hiện điều này, các lệnh đã loại bỏ được biên dịch thành tập các lệnh cơ bản Cách này không làm giảm số chu kỳ hay thời gian thực hiện các lệnh dài so với thông thường, nhưng sẽ làm cho bộ vi xử lý hoạt động được với chu kỳ xung nhịp cao hơn rất nhiều lần, các lệnh nhỏ chắc chắn được xử lý nhanh hơn, từ đó tăng đáng kể hiệu năng của hệ thống

Trang 8

Nhược điểm của phương pháp này là gây ra xung đột trong quá trình thực hiện lệnh, cụ thể là xung đột về điều khiển, xung đột đọc ghi giá trị thanh ghi, xung đột về đọc ghi bộ nhớ… Các xung đột này sẽ được nhắc đến cụ thể và các

xử lý ở phần sau của báo cáo

1.1.2 Nguyên tắc thiết kế tập lệnh của MIPS

Để đạt được những yêu cầu phía trên, việc thiết kế tập lệnh cũng như đường

dữ liệu cho MIPS phải tuân theo các nguyên tắc thiết kế nhất định Ba nguyên tắc cơ bản để thiết kế tập lệnh MIPS

- Thứ nhất là tính đơn giản quan trọng hơn tính quy tắc Điều này được thể hiện ở việc MIPS có rất ít định dạng lệnh (3 loại R, J, I), độ dài lệnh là bằng nhau với tất cả lệnh theo đó là độ dài của mã lệnh (Opcode) có chiều dài cố định ở tất cả các lệnh Điều này làm cho cách mã hóa lệnh đơn giản, nhược điểm của điều này làm tăng kích thước bộ nhớ lệnh

- Thứ hai là nhỏ hơn thì nhanh hơn, điều này có nghĩa là tập lệnh của MIPS

có số lệnh cơ bản không nhiều, số lượng thanh ghi cũng không lớn và số chế độ địa chỉ của MIPS cũng giới hạn (3 chế độ, so với 7 của Intel 8088)

- Thứ ba, thiết kế cần sự thỏa hiệp giữa tập lệnh và phần cứng

Các nguyên tắc thiết kế này làm cho việc thiết kế và dịch các lệnh của MIPS trở nên dễ dàng hơn rất nhiều, nhưng sự giới hạn về số lượng lệnh gây khó khăn

về lập trình

1.2 Các sản phẩm đã có trên thị trường

Được phát triển lần đầu tiên bởi MIPS (sau đổi tên thành MIPS

Technologies) vào năm 1981 và sản phẩm đầu tiên được đưa ra thị trường vào năm 1985, MIPS Technology vẫn cho ra các sản phẩm khác đều đặn kể cả đến năm 2012 sau khi được mua lại bởi Imagination Technologies Tuy vậy, cũng có những hãng khác thiết kế vi xử lý MIPS và đưa ra cho mình những thiết kế riêngnhư Sony, NEC, Broadcom…

Sau đây sẽ là tóm tắt một số sản phẩm tiêu biểu của hai giai đoạn thiết kể bởiMIPS Technologies và Imagination Technologies

Trang 9

1.2.3 R4000

Hình 1.2 Thế hệ MIPS III R4000

Trang 10

R4000 là sản phẩm đầu tiên của dòng MIPS III cũng là một trong những bộ

xử lý 64 bit đầu tiên, sản xuất năm 1991 Bộ đệm của R4000 chỉ 8KB nhưng tốc

độ xung nhịp lại lên tới 100 MHz nhờ sử dụng kỹ thuật deep pipelines R4000 cũng có đơn vị tính toán dấu phẩy động (FPU) có thể hoạt động được ở cả hai chế độ 32 và 64 bit

1.2.4 R10000

Hình 1.3 Thế hệ MIPS IV R10000

R1000 là sản phẩm tiêu biểu cho MIPS IV Ra mắt năm 1996, R10000 có thể hoạt động với tốc độ xung nhịp rất cao so với thời đó là 1500-250 MHz Bộ nhớ đệm sử dụng lúc này là hai mức, mức 1 là 32KB, tích hợp sẵn, mức 2 từ 512KBđến 16MB dùng bộ nhớ ngoài

1.2.5 M5150

M5150 là sản phẩm được phát triểu sau khi Imagination Technologies mua lại MIPS Technologies, được cho ra đời năm 2014 Tốc độ xung nhịp 372-576 MHz, bộ nhớ đệm tối đa 64KB và chỉ dùng một mức đệm

Ngoài các sản phẩm tiêu biểu trên, còn có nhiều sản phẩm khác trên thị trường hiện vẫn đang được sử dụng cho nhiều ứng dụng trong các hệ thống thông tin, điều khiển, các thiết bị lưu trữ…Một số hình ảnh về các bộ vi xử lý MIPS

Trang 11

1.3 Ý tưởng đề tài và các yêu cầu kỹ thuật

1.3.1 Ý tưởng của đề tài

Các sản phẩm MIPS đã được phát triển với mức độ hoàn thiện cao, tốc độ xử

lý rất nhanh và xuất hiện trong nhiều sản phẩm thương mại với hiệu quả cao về

cả diện tích và công suất tiêu thụ

Vì vậy, trong học phần Thiết kế IC số & Hệ thống số, sau khi được học về ngôn ngữ mô tả phần cứng Verilog HDL, chúng em nhận được đề tài bài tập lớn

“Thiết kế bộ vi xử lý MIPS pipelines” Mục tiêu của việc thực hiện đề tài này nhằm hiểu rõ những điều cơ bản về cấu tạo và hoạt động của MIPS, củng cố kiến thức về lập trình phần cứng trên ngôn ngữ Verilog HDL Tuy vậy, sản phẩmthu được sau khi thực hiện đề tài là một bộ xử lý MIPS 32 bit ở mức cơ bản nhất

cả về tập lệnh và cấu tạo, không nhằm mục đích cải tiến và thương mại

Ngôn ngữ Verilog HDL là một ngôn ngữ mô tả phần cứng dễ học, mềm dẻo được hỗ trợ tốt bởi nhiều phần mềm nên sẽ có nhiều thuận lợi cho việc triển khaithực hiện đề tài

1.3.2 Chỉ tiêu kỹ thuật

Trong quy trình thiết kế một sản phẩm thuộc lĩnh vực điện tử, sau khi đã xác định đề tài, tiến hành tìm hiểu và khảo sát các sản phẩm, phương án sẵn có trên thị trường sẽ là bước xác định các yêu cầu chức năng và phi chức năng cho sản phẩm Chỉ tiêu kỹ thuật chính là yêu cầu chức năng của sản phẩm

1.3.2.1 Tín hiệu đầu vào và đầu ra

Đầu vào đầu ra của một bộ vi xử lý MIPS đều khá giống nhau Chúng được biểu diễn trong hình sau:

Trang 12

Hình 1.4 Sơ đồ khối bộ vi xử lý MIPS

Trên hình đã chỉ rõ hai khối tổng quát nhất của một bộ vi xử lý MIPS, sản phẩm cũng sẽ dùng đầu vào, đầu ra như trên Đầu vào, đầu ra được nêu rõ như bảng dưới

Bảng 1.1 Mô tả đầu vào, đầu ra của bộ Vi xử lý

Đầu

vào

CLK Xung đồng hồ cho các thanh ghi và bộ

nhớReset Tín hiệu reset các thanh ghiInstr Mã lệnh để MIPS thực hiệnReadData Dữ liệu đọc vào từ bộ nhớ

Đầu ra

PC Địa chỉ của lệnh tiếp theoWriteData Dữ liệu muốn ghi vào bộ nhớALUOut Địa chỉ bộ nhớ muốn đọc hoặc ghiMemWrite Tín hiệu cho phép ghi bộ nhớ

1.3.2.2 Tập lệnh cơ bản

Tập lệnh cơ bản đầy đủ của MIPS với cấu tạo phức của bộ xử lý MIPS 32 bit

có tổng cộng hơn 90 lệnh Trong phạm vi giới hạn của bài tập lớn cũng như mục

Trang 13

đích của đề tài sẽ triển khai một số câu lệnh cơ bản, dễ triển khai nhất trong tập lệnh Cụ thể lệnh và chức năng:

- Lệnh loại R: add, sub, and, or, slt, xor, nor, sll, srl, sra

- Lệnh loại I: addi, beq, lw, sw, andi, ori

- Lệnh loại J: j

Với những lệnh này, có thể thực hiện gần như tất cả các câu lệnh phức tạp khác, bằng cách phân tác cách lệnh đó thành chuỗi các lệnh cơ bản phía trên

1.3.3 Yêu cầu chức năng

- MIPS 32 bit thực hiện được tối thiểu 10 lệnh cơ bản trong tập lệnh của MIPS

- Thực hiện mô tả phần cứng bằng ngôn ngữ Verilog HDL

- Viết chương trình thực hiện tính tổng dãy số, tính giai thừa, dãy Fibonaci trên MIPS 32 bit

- Kiểm tra được Coverage của code cũng như chương trình đã viết bằng

QuestaSim

1.3.4 Yêu cầu phi chức năng

Trong phạm vi bài tập lớn, sản phẩm chỉ triển khai đến mức chức năng, để cóthể mô phỏng và được nắm được hoạt động của bộ vi xử lý, do đó những chỉ tiêu vật lý như: diện tích thiết kế, năng lượng tiêu thụ… sẽ không được nhắc đến Các yêu cầu phi chức năng sẽ chỉ liên quan đến chức năng của vi xử lý:

- Hoạt động ổn định, chạy tốt các lệnh ở phía trên

- Dễ dàng sửa lỗi khi cần thiết

- Thuận lợi cho mô phỏng

- Tổng hợp được trên Quartus II

- Tốc độ xung đồng hồ tối đa lớn hơn 150MHz

Sau khi đã xác định rõ ràng ý tưởng, mục tiêu thực hiện, các yêu cầu chức năng, phi chức năng của sản phẩm trong đề tài, tiếp theo sẽ phân tích các chức năng và tiến hành lập kế hoạch để thực hiện đề tài

Trang 14

Chương 2: Phân tích chức năng và lập kế hoạch

Mọi vi xử lý đều có ba thành phần chính là: CPU, bộ nhớ, bộ điều khiển vào

ra Trong phạm vi bài tập lớn, vi xử lý MIPS chỉ bao gồm hai phần chính là: CPU và bộ nhớ Phần này sẽ phân tích các thành phần của hệ thống máy tính MIPS, nêu rõ các chức năng của các thành phần, giúp cho phân chia kế hoạch cụthể, thiết kế và triển khai đúng tiến độ

2.1 Phân chia chức năng

Như đã nêu ở đầu, hệ thống máy tính MIPS có hai thành phần chính là: CPU

và bộ nhớ Do máy tính MIPS được thiết kế theo kiến trúc Havard nên bộ nhớ lệnh và bộ nhớ dữ liệu được tách riêng Máy tính MIPS được chia ra các thành phần như sơ đồ dưới đây

Hình 2.5 Sơ đồ khối Hệ thống MIPS

2.1.1 Bộ nhớ lệnh (Instruction Memory)

Bộ nhớ lệnh có chức năng lưu trữ mà nguồn của chương trình assembly Mã nguồn được lưu dưới dạng số nhị phân Dữ liệu được nạp vào bộ nhớ trước khi máy tính hoạt động Trong khi hoạt động, máy tính sẽ đọc lần lượt các lệnh trong bộ nhớ

Trang 15

2.1.2 Bộ nhớ dữ liệu (Data Memory)

Bộ nhớ dữ liệu có chức năng lưu trữ các dữ liệu phục vụ cho vi xử lý, bộ vi

xử lý sẽ ghi kết quả vào bộ nhớ hoặc đọc dữ liệu ra từ bộ nhớ

2.1.3 Vi xử lý (MIPS)

Vi xử lý MIPS thường được chia ra làm hai phần: đường dữ liệu và bộ điều khiển, tuy nhiên trong cấu trúc pipelines có xảy ra xung đột, do đo cần có thêm một phần nữa để xử lý xung đột Vì vậy vi xử lý MIPS với cấu trúc pipelines sẽ được chia thành ba phần: Đường dữ liệu, bộ điều khiển, bộ xử lý xung đột Dướiđây sẽ đi vào chi tiết từng phần của vi xử lý

2.1.3.1 Đường dữ liệu (Datapath)

Đường dữ liệu là khối mà dữ liệu đi qua trong quá trình xử lý được mô tả như hình 1.2 Các khối cơ bản trong đường dữ liệu bao gồm: các bộ multiplexer, tệp các thanh ghi, khối ALU, bộ cộng, các thanh ghi tầng Đường dữ liệu của máy tính MIPS pipelines được chia ra làm năm khâu: IF, ID, EX, MEM, WB

- Khâu IF: có chức năng lấy lệnh

- Khâu ID: có chức năng giải mã lệnh

- Khâu EX: có chức năng thực hiện tính toán các toán hạng trong lệnh

- Khâu MEM có chức năng đọc/ghi các dữ liệu vào bộ nhớ dữ liệu

- Khâu WB: có chức năng ghi kết quả vào tệp thanh ghi

Các tín hiệu điều khiển cho các khối ở đường dữ liệu được lấy từ khối điều khiển, các tín hiệu điều khiển cũng đi qua các thanh ghi tầng để đến từng khâu

Cụ thể sẽ được trình bày ở phần tiếp theo

2.1.3.2 Bộ điêu khiển (Control Unit)

Khối điều khiển có chức năng cung cấp các tín hiệu điều khiển cho các khối

ở đường dữ liệu, cụ thể: các bộ multiplexer, tín hiệu cho phép ghi vào bộ nhớ, tín hiệu điều khiển khối ALU, tín hiệu điều khiển các thanh ghi tầng

Sơ đồ mô tả khối điều khiển được cho như dưới đây:

Trang 16

Hình 2.6 Sơ đồ khối điều khiển

2.1.3.3 Bộ xử lý xung đột (Hazard Unit)

Trong kiến trúc pipelines, do các khối có thể được dùng chung trong quá trình hoạt đột nên sẽ xảy ra xung đột Khối xử lý xung đột có chức năng phát hiện các xung đột đó trong quá trình hoạt động, từ đó xuất ra các tín hiệu xử lý xung đột cho đường dữ liệu Các loại xung đột mà khối xung đột phải giải quyết bao gồm:

- Xung đột cấu trúc: sử dụng cùng một tài nguyên cho hai lệnh khác nhau tại cùng một thời điểm

- Xung đột dữ liệu: yêu cầu sử dụng dữ liệu trước khi nó sẵn sàng

- Xung đột điều khiển: yêu cầu quyết định điều khiển dòng chương trình trước khi điều kiện rẽ nhánh và giá trị PC mới được tính toán

2.2 Phân chia công việc

Phần này lên kế hoạch thực hiện Đề tài và phân công nhiệm vụ cho từng thành viên trong nhóm

1 Tìm hiểu MIPS

pipelines

Tìm hiểu các dòng MIPS và các hướng triển khai đã có trên thị

trường

Đinh Khắc Tuyến Nguyễn Tuấn Linh Trần Quý Hiển

2 Mô tả tập lệnh Đề ra các lệnh mà vi xử lý MIPS

sẽ thực hiện Đinh Khắc Tuyến

3 Mô tả sơ đồ khối cho hệ

Trang 17

6 Testbench toàn hệ thống Kiểm thử xem hệ thống đã hoạt

động đúng chương trình mẫu Nguyễn Tuấn Linh

7 Chạy chương trình

assembly và đánh giá

Chạy nhiều chương trình và đánh

giá hệ thống Đinh Khắc Tuyến

Trang 18

Chương 3: Phân tích chi tiết từng khối

Dựa vào các yêu cầu chức năng và phi chức năng đã nêu ở các phần trước, trong phần này sẽ đi sâu vào hoạt động của các khối, các phương án thiết kế cho các khối đó

3.1 Khối Bộ nhớ lệnh

Bộ nhớ lệnh lưu trữ mã máy, không thay đổi trong quá trình hoạt động của máy tính MIPS, do đó loại bộ nhớ ROM sẽ được sử dụng cho bộ nhớ này Sơ đồ khối của bộ nhớ lệnh được mô tả như dưới đây:

Hình 3.7 Khối Bộ nhớ lệnh

Bộ nhớ lệnh có đầu vào đầu ra được nêu rõ trong bảng dưới đây:

Bảng 3.2 Bảng chức năng đầu vào, đầu ra của khối Bộ nhớ lệnh

Tên chi

Đầu

Địa chỉ của ô nhớ chứa lệnh, địa chỉ này phải chia hết cho 4,

hay có 2 bit cuối bằng 0Đầu ra RD Dữ liệu ra của bộ nhớ, mã lệnh của chương trình

3.2 Khối Bộ nhớ dữ liệu

Bộ nhớ dữ liệu được ghi/đọc trong quá trình thực hiện xử lý, nên dữ liệu trong bộ nhớ dữ liệu có thể thay đổi, do đó, loại bộ nhớ RAM sẽ được sử dụng cho bộ nhớ này Sơ đồ khối của bộ nhớ dữ liệu được mô tả như dưới đây:

Trang 19

Hình 3.8 Khối Bộ nhớ dữ liệu

Bộ nhớ dữ liệu có đầu vào đầu ra được nêu rõ trong bảng dưới đây:

Bảng 3.3 Mô tả đầu vào, đầu ra của bộ nhớ dữ liệu

Tên chi tiết Chức năngĐầu

vào

A Địa chỉ bộ nhớ muốn đọc hoặc ghi

WD Dữ liệu muốn ghi vào bộ nhớ

WE Tín hiệu cho phép ghi bộ nhớCLK Xung đồng hồ cho bộ nhớ Đầu ra RD Dữ liệu đọc vào từ bộ nhớ

Để thực hiện việc đọc giá trị từ ô nhớ ra, bộ nhớ phải thực hiện các quá trình sau:

- Truyền địa chỉ ô nhớ muốn đọc

- Đặt tín hiệu WE = 0

- Dữ liệu sẽ được đọc tại đầu ra RD

Để thực hiện việc ghi dữ liệu từ ô nhớ ra, bộ nhớ phải thực hiện các quá trình sau:

- Truyền địa chỉ ô nhớ muốn ghi

- Đặt tín hiệu WE = 1

- Truyền dữ liệu muốn ghi vào đầu vào WD

- Dữ liệu sẽ được ghi vào tại sườn lên của clock

Trang 20

3.3 Khối Vi xử lý

3.3.1 Đường dữ liệu

Như đã nêu ở phần 2.1.3.1, đường dữ liệu được chia thành 5 khâu, mỗi khâu

sẽ có các khối phục vụ cho chức năng của từng khâu, được mô tả như hình dưới đây:

Hình 3.9 Sơ đồ đường dữ liệu (Datapath)

Đầu vào đầu ra của đường dữ liệu được mô tả trong bảng dưới đây, do có nhiều tín hiệu đầu vào, nên các tin hiệu chung kiểu sẽ được gộp lại và không nêuchi tiết vào từng tín hiệu

Bảng 3.4 Mô tả đầu vào, đầu ra của đường dữ liệu

Tên chi tiết Chức năng

Đầu

vào

CLK Xung đồng hồ cho các thanh ghi và bộ

nhớ Reset Tín hiệu reset các thanh ghi

Instr Mã lệnh để MIPS thực hiện

ReadData Dữ liệu đọc vào từ bộ nhớ

WriteData Dữ liệu muốn ghi vào bộ nhớ

ALUOut Địa chỉ bộ nhớ muốn đọc hoặc ghi

MemWrite Tín hiệu cho phép ghi bộ nhớ

Opcode/Funct Các trường trong mã lệnh assembly cho

Trang 21

vào khối điều khiển để giải mãCác tín hiệu xuất ra

Ba đầu vào được lựa chọn như sau:

- Đầu vào PCPlus4F: giá trị địa chỉ của lệnh kế tiếp trong chương trình

- Đầu vào PCBranchD: địa chỉ của nhãn muốn nhảy đến trong lệnh nhảy có điều kiện

- Đầu vào PCJump: địa chỉ của nhãn muốn nhảy đến trong lệnh nhảy không điều kiện

3.3.1.2 Khâu ID

Khâu này sẽ giải mã mã lệnh được đọc vào từ bộ nhớ lệnh Các trường trong

mã lệnh sẽ lần lượt tách ra và đi vào các khối

Một lệnh MIPS sẽ có các trường như sau:

Với lệnh loại R, các trường sẽ được truyền đến các khối như sau:

- Opcode: truyền đến khối điều khiển

- Rs: truyền đến địa chỉ A1 của tệp thanh ghi

- Rt: truyền đến địa chỉ A2 của tệp thanh ghi

- Rd: truyền đến thanh ghi tầng cho khâu tiếp theo xử lý

- Shamt: truyền đến thanh ghi tầng cho khâu tiếp theo xử lý

- Funct: truyền đến khối điều khiển

Với lệnh loại I, các trường sẽ được truyền đến các khối như sau:

- Opcode: truyền đến khối điều khiển

Trang 22

- Rs: truyền đến địa chỉ A1 của tệp thanh ghi

- Rt: truyền đến địa chỉ A2 của tệp thanh ghi

- Rd, Shamt, Funct: gộp bit và truyền đến khối mở rộng bít Sign ExtendedVới lệnh loại J, các trường sẽ được truyền đến các khối như sau:

- Opcode: truyền đến khối điều khiển

- Rs, Rt, Rd, Shamt, Funct: gộp bit và truyền đến khối dịch trái 2 bit, ghép bit với 4 bit cao nhất của PCPlus4D để được địa chỉ PCJump

3.3.1.3 Khâu EX

Khâu nay sẽ tính toán các toán hạng được được lấy trong khâu giải mã lệnh.Với lệnh loại R:

- Đầu vào SrcAE, SrcBE của khối ALU là hai thanh ghi có địa chỉ được

mô tả ở trong trường Rs, Rt hoặc giá trị được forward tương ứng bằng

bộ xử lý xung đột

- Tín hiệu WriteRegE chính là trường Rd

- Đối với 3 lệnh: sll, srl, sra: tín hiệu từ trường shamt sẽ được sử dụng

và đi qua khối mở rộng Sign extended shamt, đầu vào ALU sẽ là đầu

ra của khối Sign extended shamt và một thanh ghi đọc từ tệp thanh ghi

Với lệnh loại I:

- Đầu vào SrcAE của khối ALU là thanh ghi có địa chỉ ở trong trường

Rs, đầu vào SrcBE chính là đầu ra của khối mở rộng bit ở khâu ID qua thanh ghi tầng Nếu xảy ra xung đột, hai đầu vào này cũng có thể forward từ các tầng khác

- Tín hiệu WriteRegE chính là trường Rt

Với lệnh loại J: Khâu EX sẽ không được sử dụng

Ngày đăng: 06/01/2019, 16:45

TỪ KHÓA LIÊN QUAN

w