1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Thiết kế và demo MIPS trên t&d bench

25 575 4
Tài liệu đã được kiểm tra trùng lặp

Đ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 25
Dung lượng 911 KB

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

Nội dung

Thiết kế và demo MIPS trên t&d bench

Trang 1

MỤC LỤC

LỜI NÓI ĐẦU 4

1.Tổng quan về MIPS 1

1.1 Lịch sử phát triển 1

1.2 Kiến trúc tập lệnh MIPS 2

1.2.1.Các thanh ghi 2

1.2.2.Kiến trúc tập lệnh 3

1.3 Nguyên tắc thiết kế MIPS 4

2.Tổng quan về T&D Bench 5

2.1 Giới thiệu 5

2.2 Phương pháp thiết kế 6

2.3 Phạm vi ứng dụng của T&D Bench 7

2.3.1.Mô hình von Neumann 7

2.3.2.Mạch tổ hợp và mạch tuần tự 8

2.3.3.Giới thiệu về tập lệnh và cấu trúc của bộ vi xử lý Neander 9

3.Mô phỏng MIPS bằng T&D Bench 9

3.1 Khởi tạo chương trình 9

3.2 Mô hình Neander: 10

3.2.1.Sơ đồ khối: 10

3.2.2.Cấu trúc tập lệnh 12

3.2.3.Các bit trạng thái của ALU 12

3.2.4.Mô phỏng Neander bằng T&D Bench: 13

3.3 Pipelined MIPS 13

3.3.1.Sơ đồ khối 13

3.3.2.Tập lệnh 15

3.3.3.Mô phỏng Pipelined MIPS bằng T&D Bench 15

3.4 rISA (Reduced Bit-Width Instruction Set Architecture) 18

KẾT LUẬN 19

TÀI LIỆU THAM KHẢO 20

Trang 2

MỤC LỤC HÌNH VẼ

Hình 2.1: Sơ đồ khối tổng quát của 1 mạch tổng hợp 8

Hình 2.2: Sơ đồ của 1 mạch tuần tự được tạo nên từ phần tử mạch tổ hợp và các phần tử nhớ 9

Hình 3.1: Sơ đồ khối của bộ xử lý Neander 11

Hình 3.2: Mô phỏng Neander với T&D Bench 13

Hình 4.3: Năm pha của pipelined MIPS 14

Hình 3.4: Pipelined MIPS 16

Hình 3.5: Nonpipelined MIPS I – Đa xung nhịp 17

Hình 3.6: Mô phỏng rISA bằng T&D Bench 18

Trang 3

MỤC LỤC BẢNG BIỂU

Bảng 1.1: Các thanh ghi đa năng 2

Bảng 2.1: Ba lớp tài nguyên của T&D Bench 7

Bảng 3.1: Cấu trúc tập lệnh của Neander 12

Bảng 3.2: Tập lệnh trong pipelined MIPS 15

Trang 4

LỜI NÓI ĐẦU

Ngày nay với sự phát triển mạnh mẽ của khoa học kỹ thuật từ lý thuyết đến ứng dụng, con người càng quan tâm hơn đến việc nghiên cứu các cách thức để áp dụng thành công các công nghệ mới vào cuộc sống Công đoạn mô phỏng là một trong những bước quan trọng nhất trong quá trình tạo ra một sản phẩm hoàn thiện Đối với môn Kiến trúc máy tính, việc hiểu và nắm rõ cách thức hoạt động của các bộ xử lý như Neander hay LC-3,…

và về tập lệnh MIPS là điều rất quan trọng và cần thiết, và phần mềm T&D Bench sẽ là một công cụ hữu ích để giúp chúng em thực hiện điều đó

Nhóm sinh viên chúng em xin gửi lời cảm ơn chân thành tới thầy giáo Nguyễn Đức Minh

đã tận tình giúp đỡ nhóm em trong quá trình tìm hiểu phần mềm

Nhóm 02 – K53

Trang 6

1 Tổng quan về MIPS

1.1 Lịch sử phát triển

• MIPS (Microprocessor without Interlocked Pipeline Stage) l à m ộ t k i ến

t r ú c v i xử l ý đ ư ợc phát triển bởi hãng MIPS Technologies Cuối những năm 1990, 1/3 số lượng chip RISC(Reduced Instruction Set Computer ) được sản xuất dựa trên kiến trúc MIPS

• Năm 1981, một nhóm các nhà nghiên cứu thuộc Đại học Stanford do John

L Hennessy đứng đầu đã bắt đầu một công trình nghiên cứu về bộ xử lý

MIPS đầu tiên

• Năm 1984, Hennessy rời Đại học Stanford để thành lập công ty MIPS Computer System Họ đã cho ra đời thiết kế đầu tiên vào năm 1985

là R2000 sau đó phát triển tiếp R3000 vào năm 1998 Những CPU 32 bit này tồn tại trong suốt những năm 1980 và được sử dụng chủ yếu trong các dòng máy chủ SGI

• Năm 1991 MIPS cho ra đời bộ vi xử lý 64 bit đầu tiên R4000 Tuy nhiên MIPS gặp khó khăn trong tài chính trong khi tung sản phẩm này

ra thị trường Thiết kế này rất quan trọng đối với SGI – một trong những khách hàng của MIPS lúc bấy giờ, vì thế SGI đã mua lại công ty vào năm

1992 để bảo vệ thiết kế không bị mất đi Từ đó MIPS trở thành một công ty con của SGI và được biết đến bởi tên MIPS Technologies

• Thiết kể MIPS được sử dụng rất rộng rãi trong các dòng máy tính đồ họa silicon, các hệ t h ốn g n h ú n g n h ư T i V o t h ế h ệ cá c th i ế t b ị sử

dụ n g h ệ đ i ề u h à n h Windows CE, Ciscoroutes và các máy chơi game console như Nitendo 64, Sony Playstation, Play Station Portable…

• Kiến trúc MIPS b a n đ ầ u l à m ộ t h ệ th ố n g x ử l ý 3 2 b i t ( th a n h gh i

m ở r ộn g 3 2 b it và cá c đường dẫn) trong khi các phiên bản sau này là hệ thống 64 bit Đã có rất nhiều hiệu chỉnh trong các tập lệnh của MIPS, từ MIPS I, MIPS II, MIPS III, MIPS IV, MIPS V, MIPS 32 vàMIPS 64

Trang 7

Hiện nay tồn tại 2 phiên bản là MIPS 32 (cho các hệ thống 32 bit) và MIPS 64 (cho các hệ thống 64 bit).

$2 -> $3 $v0 » $v1 Giá trị trả về của hàm hoặc biểu thức

$8 -> $15 $t0 » $t7 Thanh ghi tạm (không giữ giá trị trong

Bảng 1.1: Các thanh ghi đa năng

• Thanh ghi dấu phẩy động: 32 thanh, có tên từ $f0 -> $f31

• Thanh ghi HI và LO: Thao tác nhân của MIPS có kết quả chứa trong 2 thanh ghi HI và LO Bit 0-31 thuộc LO và 32-63 thuộc HI

Trang 8

Đặc điểm

Đóng vai trò như các biến trong ngôn ngữ lập trình cấp cao Tuy nhiên, chúng khác với biến ở chỗ: trong khi biến chỉ lưu trữ đúng kiểu dữ được khai báo trước, còn thanh ghi thì không phân biệt kiểu dữ liệu (chúng đơn thuần chỉ là một dãy bit) – Đây là phần cứng nên số lượng của chúng là có hạn Tuy nhiên, tốc độ xử lí là rất cao

o opcode : Cho biết đây là thao tác gì.

o funct : Kết hợp với trường opcode để xác định cần làm gì.

Ví dụ: Khi trường opcode cho biết đây là lệnh dịch bit thì bộ xử lí sẽ nhìn vào trường funct để biết đây là dịch bíttrái hay dịch bit phải

o shamt: Trường này chỉ được sử dụng khi thực hiện lệnh dịch bit Nó

chứa số bit cần dịch

o rs (Source Register): Chứa địa chỉ thanh ghi nguồn thứ nhất

o rt (Target Register): Chứa địa chỉ thanh ghi nguồn thứ hai

o rd (Destination Register): Chứa địa chỉ thanh ghi đích.

Lưu ý: Mỗi trường rs, rt, rd có 5 bit, chứa vừa đủ số từ 0 » 31 biểu diễn được địa chỉ của 32 thanh ghi

b Cấu trúc I-Format

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

opcode rs rt imediate

Trang 9

Trong đó:

o opcode: Cho biết đây là thao tác gì

o rs và rt: Chứa địa chỉ các thanh ghi cần so sánh

o imediate: Tên của nhãn cần nhảy tới 2^16 => có thể nhảy được 0 ->

o opcode: Cho biết đây là thao tác gì

o target address: Chứa địa chỉ cần nhảy tới.

1.3 Nguyên tắc thiết kế MIPS

• Tính đơn giản quan trọng hơn tính quy tắc (Simplicity favors regularity)

Trang 10

• Tăng tốc các trường hợp thông dụng

• Các toán hạng số học lấy từ thanh ghi ( máy tính dựa trên cơ chế load- store)

• Các chỉ thị có thể chứa toán hạng trực tiếp

• Thiết kế tốt đòi hỏi sự thỏa hiệp

2.1 Giới thiệu

Trang 11

T&D Bench (Teach and Design WorkBench) là một công cụ do Sandro Neves

Soares thuộc phòng thí nghiệm WCAE, Universidade de Caxias do Sul, Brasil phát triển

• Mô hình xử lý pipeline của MIPS trong T&D Bench đã được mở rộng để hỗ trợ một kiến trúc phổ biến được gọi là rISA, như một phần trong khuôn khổ nghiên cứu của Universidade de Caxias do Sul (Brasil)

• T&D Bench là một công cụ nhanh và đơn giản để tạo ra các mô hình bộ xử lý, chuyển đổi giữa các mô hình cũng như cấu hình cho các bộ xử lý này

• Các mô hình xử lý được kết hợp một cách tự động nhưng có tùy chọn, giao diện

đồ họa người dùng thân thiện

• Dễ dàng thao tác trong việc cài đặt, thực thi các tiến trình xử lý hay mô phỏng các

mô hình hay framework

2.2 Phương pháp thiết kế

Nhân của T&D Bench là các thư viện mà ở đó các datapath của bộ xử lý tương

đồng với các mô tả hành vi trong VHDL của các thực thể (entities)

Ngôn ngữ mô tả: T&D Bench sử dụng Simplified Description Language (Ngôn

ngữ mô tả giản lược, T&D-SDL hay TDSDL) được sử dụng để lựa chọn, tham số hóa và liên kết các thành phần để từ đó xây dựng nên các vi cấu trúc của bộ xử lý

o TDSDL đồng thời được sử dụng để chỉ định các chuỗi thực thi thành phần (như bộ vi điều khiển) hợp thành từ các đơn vị thực thi nhỏ hơn

o Các đơn vị thực thi nhỏ còn đồng thời được tái sử dụng để mô tả hành vi cho các cấu trúc tập lệnh

• Việc định thời cho bộ xử lý cũng được thực hiện bởi TDSDL, nó phải được tiến hành một cách độc lập từ các tham số kỹ thuật trước đó và liên quan đến những tiến trình thực thi độc lập trong các đơn vị thực thi

o Việc mô phỏng của T&D Bench có thể sử dụng những thông số định thời với nhiều cách thức khác nhau để cấu trúc nên những mô hình vi xử lý đơn xung nhịp, đa xung nhịp hay pipeline

• Các thông số của TDSDL được chuyển thành các cấu trúc dữ liệu nội mà từ đó có

thể điều khiển bởi 1 tập các kỹ thuật đặc biệt, gọi là các macros Các macros được

Trang 12

cung cấp bởi môi trường phần mềm để mô hình hóa nên các cơ chế kiến trúc phức tạp và chuyên biệt khác nhau.

Thư viện thành phần, TDSDL và các macro tạo nên 3 lớp tài nguyên mô hình (layers

of modelling resources) trong phương pháp thiết kế T&D Bench:

MACROS

Datapath

macros related macrosInstructions

Execution stages related macros

Instruction queues macros Other utilitary macrosT&D-SDL DESCRIPTION LANGUAGE

Micro-architecture

specifications Instruction set specifications Timing specifications

COMPONENT LIBRARY

Bảng 2.1: Ba lớp tài nguyên của T&D Bench

2.3 Phạm vi ứng dụng của T&D Bench

Trong phạm vi giáo dục, T&D Bench được sử dụng để minh họa cho các chủ đề sau:

2.3.1 Mô hình von Neumann

1) Dùng để thiết kế vi xử lý

2) Không phân biệt vùng nhớ dữ liệu và chương trình

Trang 13

3) Quá trình tương tác với lệnh hay với dữ liệu đều dùng chung 1 bus và memory.

2.3.2 Mạch tổ hợp và mạch tuần tự

a Mạch tổ hợp (Combinational Circuit):

• Ngõ ra chỉ phụ thuộc vào các biến ở ngõ vào mà không phụ thuộc vào trạng thái trước đó của mạch

Hình 2.1: Sơ đồ khối tổng quát của 1 mạch tổng hợp

b Mạch tuần tự (Sequential Circuit):

• Trạng thái của ngõ ra không những phụ thuộc vào tổ hợp các ngõ vào

mà còn phụ thuộc vào trạng thái của ngõ ra trước đó, ta nói mạch tuần

tự có tính nhớ.

Trang 14

• Mạch tuần tựđược chia làm 2 loại: Đồng bộ (Synchronous) và Không đồng bộ (Asynchronous)

Hình 2.2: Sơ đồ của 1 mạch tuần tự được tạo nên từ phần tử mạch tổ hợp và các phần tử

nhớ

2.3.3 Giới thiệu về tập lệnh và cấu trúc của bộ vi xử lý Neander

• Neander được sử dụng cho mục đích sư phạm (ở các trường ĐH của Brasil) với 1-2 bytes lệnh và thanh ghi tổng

3.1 Khởi tạo chương trình

- T&D Bench được thiết kế để mô phỏng các mô hình bộ xử lý sau:

Trang 15

• FemtoJava: Máy ngăn xếp (Stack Machine)

• acesMIPS: Bộ xử lý loại VLIW

- Khởi tạo 1 chương trình trong T&D Bench:

1) Vào Command Prompt bằng lệnh cmd trong Run

2) Thay đường dẫn từ C:\ sang thư mục cài đặt T&D Bench

3) Chạy T&D Bench: gõ:

4) Vào File/Load Program

o MPXREM (Multiplexer for REM, Memory Address Register)

o REM (Memory Address Register)

o RDM (Memory Data Register)

o MEM (Memory)

o MPXRDM (Multiplexer for RDM, Memory Data Register)

o RI (Instruction Register)

Trang 16

Hình 3.1: Sơ đồ khối của bộ xử lý Neander

Trang 17

3.2.2 Cấu trúc tập lệnh

Bảng 3.1: Cấu trúc tập lệnh của Neander

3.2.3 Các bit trạng thái của ALU

ALU có chứa các bit trạng thái sau:

ADD X1, adds the values of variable

X1 to the content of the Accumulator ACC, the result is shown as ALU-output

SUB subtract -32 (0xE0)

SUB X2, subtracts value of variable X2 from the content of the Accumulator ACC, the result is shown as ALUoutput

STA store fromACC 16 (0x10) STA Y1, saves the content of the Accumulator in the variable Y1

LDA load into ACC 32 (0x20) LDA Y2, loads the value of variable Y2 into the Accumulator

OR assignmentbitwise or 64 (0x40)

OR Z1, bitwise or-assignment of value Z1 with the Accumulator, the result is shown as ALU-output

AND bitwise and

assignment 80 (0x50)

AND Z2, bitwise and-assignment of value Z2 with the Accumulator, the result is shown as ALU-output

NOT complementbitwise 96 (0x60) Accumulator, the result is shown as NOT, bitwise complement of the

JZ jump if ACC

zero

160(0xA0) JZ label, jump to label, if ACC = 0

JNZ

jump if ACCnot zero

176(0xB0) JNZ label, jump to label, if ACC != 0

Trang 18

1) neg: được set nếu ngõ ra của ALU nhỏ hơn 0 2) zero: : được set nếu ngõ ra của ALU bằng 0 3) ovf: không xóa (khác bit carry)

4) carry: không xóa

3.2.4 Mô phỏng Neander bằng T&D Bench:

- Từ cmd gõ simula vneander để T&D Bench chạy mô hình Neander

- Ở hình dưới chương trình được load là mult.asm

Hình 3.2: Mô phỏng Neander với T&D Bench

3.3 Pipelined MIPS

3.3.1 Sơ đồ khối

Pipelined MIPS gồm 5 pha (phase) như hình dưới đây:

Trang 19

Hình 4.3: Năm pha của pipelined MIPS

1) Pipeline Phase 1 (Nạp lệnh) Các phần tử tham gia vào pha 1:

• PC (Program Counter)

• add (tăng PC)

• imemory (bộ nhớ lệnh)

• muxpc (Bộ MUX với nhiệm vụ chọn đầu ra là PC hoặc ALU)

2) Pipeline Phase 2 (Giải mã) Các phần tử tham gia vào pha 2:

• nRI (không sử dụng)

• registers (tập thanh ghi của MIPS)

• se (sign extender: giải mã các lệnh loại I)

• 25to0 (chứa 26 bits cuối của lệnh nếu nó thuộc loại J; tương ứng với giá trị tức thời)

3) Pipeline Phase 3 (Thực thi).Các phần tử tham gia vào pha 3:

• comp (Comparator: so sánh 2 thanh ghi)

• muxa (Multiplexer for ALU-Input 1: chọn thanh ghi hoặc đầu ra của muxpc)

• muxb (Multiplexer for ALU-Input 2: chọn thanh ghi hoặc đầu ra của 25to0 hoặc se)

Trang 20

• ALU4) Pipeline Phase 4 (Bộ nhớ).Các phần tử tham gia vào pha 4:

• not (đảo giá trị đầu ra của bộ so sánh comp)

• dmemory (data memory: bộ nhớ dữ liệu)5) Pipeline Phase 5 (Ghi lại).Các phần tử tham gia vào pha 5:

• muxwb (Multiplexer for write-back: bộ MUX dùng để ghi lại)

Data Transport

sb, sw, swl, swr, lb, lwl, lwr, lwmove, hlt, nop, cm, remProgram Controljalr, jr, jbeq, bltz, bgtz, blez, bne

Bảng 3.2: Tập lệnh trong pipelined MIPS

3.3.3 Mô phỏng Pipelined MIPS bằng T&D Bench

Trang 21

Hình 3.4: Pipelined MIPS

Trang 22

Hình 3.5: Nonpipelined MIPS I – Đa xung nhịp

Trang 23

3.4 rISA (Reduced Bit-Width Instruction Set Architecture)

• Được sử dụng để giảm phần chiếm dụng tài nguyên bộ nhớ của chương trình

• Thời gian nạp lệnh (fetch) của một chương trình với tập lệnh rISA từ phía hệ thống con của bộ nhớ khi nó thực thi là ngắn, điều này đồng nghĩa với việc giảm thiểu mức tiêu hao năng lượng của phần cứng

• Mô phỏng rISA với T&D Bench:

Hình 3.6: Mô phỏng rISA bằng T&D Bench

Trang 24

KẾT LUẬN

Qua những mô phỏng và thiết kế MIPS với T&D Bench nêu trên, có thể thấy rằng đây là một phần mềm hữu ích trong việc giảng dạy và nghiên cứu, cũng như là công cụ tuyệt vời để sinh viên thực hành

Do đây là một phần mềm tương đối mới mẻ, hạn chế về tài liệu, nên chúng em chưa thể tiến xa hơn nữa trong việc ứng dụng T&D Bench vào nhiều nội dung khác của môn học Kiến trúc máy tính Kính mong thầy và các bạn đóng góp ý kiến thêm để đề tài của nhóm

em được hoàn chỉnh hơn Từ đó làm cơ sở để nhóm có thể củng cố và hoàn thiện những kiến thức thu được từ việc sử dụng phần mềm

Cuối cùng, nhóm em xin chân thành cảm ơn thầy Nguyễn Đức Minh và các bạn trong lớp một lần nữa vì đã góp ý kiến giúp đỡ nhóm em hoàn thành xong bài tập lớn này

Hà Nội ngày 16 tháng 4 năm 2012

Nhóm 02 – K53

Trang 25

TÀI LIỆU THAM KHẢO

[1] Nguyễn Đức Minh, Kiến Trúc Máy Tính, HUST Press, 2011

[2] Yale N Patt and Sanjay J Patel, Introduction to Computing Systems: Form Bits & Gates to C & BeyondI, 2nd ed., McGraw Hill, 2003

[3] Martin Hager, Computer Engineering: Guide for T&D Bench, HFU Press, 2010

[4] S N Soares and F R Wagner, “T&D-Bench: Teaching and Design Workbench from

Classroom to Research: Providing Different Services for Computer Architecture

Education”, Workshop on Computer Architecture Education, WCAE, 2007.

[5] S N Soares and F R Wagner, “T&D-Bench - Innovative Combined Support for

Education and Research in Computer Architecture and Embedded Systems”, IEEE

Transactions on Education, 2011

Ngày đăng: 11/05/2014, 15:20

HÌNH ẢNH LIÊN QUAN

Bảng 1.1: Các thanh ghi đa năng - Thiết kế và demo MIPS trên t&d bench
Bảng 1.1 Các thanh ghi đa năng (Trang 7)
Bảng 2.1: Ba lớp tài nguyên của T&D Bench - Thiết kế và demo MIPS trên t&d bench
Bảng 2.1 Ba lớp tài nguyên của T&D Bench (Trang 12)
Bảng 3.1: Cấu trúc tập lệnh của Neander - Thiết kế và demo MIPS trên t&d bench
Bảng 3.1 Cấu trúc tập lệnh của Neander (Trang 17)
Hình 3.2: Mô phỏng Neander với T&D Bench - Thiết kế và demo MIPS trên t&d bench
Hình 3.2 Mô phỏng Neander với T&D Bench (Trang 18)
Hình 4.3: Năm pha của pipelined MIPS - Thiết kế và demo MIPS trên t&d bench
Hình 4.3 Năm pha của pipelined MIPS (Trang 19)
Bảng 3.2: Tập lệnh trong pipelined MIPS - Thiết kế và demo MIPS trên t&d bench
Bảng 3.2 Tập lệnh trong pipelined MIPS (Trang 20)
Hình 3.5: Nonpipelined MIPS I – Đa xung nhịp - Thiết kế và demo MIPS trên t&d bench
Hình 3.5 Nonpipelined MIPS I – Đa xung nhịp (Trang 22)
Hình 3.6: Mô phỏng rISA bằng T&D Bench - Thiết kế và demo MIPS trên t&d bench
Hình 3.6 Mô phỏng rISA bằng T&D Bench (Trang 23)

TỪ KHÓA LIÊN QUAN

w