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

Kiến trúc máy tính

39 4 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

Tiêu đề Kiến Trúc Máy Tính
Tác giả Lê Hoàng An, Vũ Nguyễn, Mai Nguyễn Đức Thọ
Trường học Trường Đại Học Công Nghệ Thông Tin (Học viện Công nghệ Thông tin)
Chuyên ngành Kỹ thuật Máy Tính
Thể loại Giáo trình
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 39
Dung lượng 8,68 MB

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

Nội dung

Thực hiện phép toán trên số dương, do đó, thương và các toán hạng của phép chia có giá trị là 32 bit, bỏ qua các số có dấu.. Chương này chỉ xem xét 8 lệnh trong 3 nhóm chính của tập lệnh

Trang 1

KIẾN TRÚC

MÁY TÍNH

Ban Học tập Công nghệ

Thông tin

Trang 2

02

Trang 3

PHÉP CHIA

Phép chia 2 số ở dạng nhị phân sẽ được thực

thi như thế nào trong máy tinh?

Trang 4

➢Khả năng xử lý: đa dụng cho các ứng dụng văn phòng, học tập, giải trí.

Ví dụ: Máy tnh để bàn, Máy tnh xách tayEW

Trang 5

➢ Khả năng xử lý: đa dụng cho các ứng dụng văn phòng, học tập, giải trí.

Ví dụ: Máy tnh để bàn, Máy tnh xách tayEW

1 Phép chia với 3 thanh ghi

2 Phép chia với 2 thanh ghi( đọc thêm)

PHÉP CHIA

Trang 6

PHÉP CHIA VỚI 3

THANH GHI

Trang 7

Chú ý: Hai số chia và bị chia là số dương, do đó kết quả thương và số dư là không âm Thực hiện phép toán trên số dương, do đó, thương và các toán hạng của phép chia có giá trị là 32 bit, bỏ qua các số có dấu.

Sơ đồ các khối hiện thực phép chia ở mức phần cứng

SỐ CHIA

SỐ BỊ CHIA

Trang 8

Lưu đồ giải thuật của phép chia

Trang 9

Step Action Quotient Divisor Remainder

Trang 10

BỘ XỬ LÝ

PROCESSOR

Xây dựng datapath đơn giảnHiện thực datapath đơn chu kỳ

Trang 11

Chương này chỉ xem xét 8 lệnh trong 3 nhóm chính của tập lệnh MIPS:

Nhóm lệnh tham khảo bộ nhớ (lw và sw)

Nhóm lệnh liên quan đến logic và số học (add, sub, AND, OR, và slt)

Nhóm lệnh nhảy (Lệnh nhảy với điều kiện bằng beq)

Trang 12

XÂY DỰNG DATAPATH ĐƠN

GIẢN

Quy trinh thực thi lệnh của MIPS (5 công

đoạn)

Trang 14

Quy trình thực thi lệnh của MIPS (5 công đoạn)

add $3, $1 , $2 lw $3, 20 ( $1 ) beq $1 , $2 , label

Fetch lệnh lưu trong thanh ghi Đọc lệnh (địa chỉ của

PC)

Đọc lệnh (địa chỉ của lệnh lưu trong thanh ghi PC) Đọc lệnh (địa chỉ của lệnh lưu trong thanh ghi PC)

Decode &

Operand

Fetch

o Đọc thanh ghi $1, xem

như toán hạng opr1

o Đọc thanh ghi $2, xem

như toán hạng opr2

o Đọc thanh ghi $1, xem

như toán hạng opr1

o Sử dụng 20 như toán

hạng opr2

o Đọc thanh ghi $1, xem

như toán hạng opr1

o Đọc thanh ghi $2, xem

như toán hạng opr2

ALU Result = opr1 + opr2 MemAddr = opr1 + opr2 Taken = (opr1 == opr2 )? Target = PC + Label*

Memory

Access Sử dụng MemAddr để đọc dữ liệu từ bộ nhớ

Result

Write Result được lưu trữ vào $3

Dữ liệu của từ nhớ có địa chỉ MemAddr được được

lưu trữ vào $3

if (Taken)

PC = Target

Trang 15

Giai đoạn tìm nạp lệnh (Instruction Fetch)

thanh ghi PC lên 4 đơn

vị để lấy địa chỉ của lệnh tiếp theo

Trang 16

Giai đoạn giải mã (Decode)

 Giai đoạn decode:

Lấy nội dung dữ liệu trong

các trường của lệnh:

1 Đọc opcode để xác

định kiểu lệnh và chiều dài của từng trường trong mã máy

Read data 1

Read data 2

Data

Register Number

Register File

5 5 5

Trang 17

Read data 1

Read data 2

RegWrite

Register File

5 5 5

Nội dung của thanh ghi rs

Nội dung của thanh ghi rt

Kết quả/giá trị cần lưu vào thanh ghi (sẽ được sinh ra ở giai đoạn sau)

Trang 18

Read data 1

Read data 2

RegWrite

Register File

5 5 5

Nội dung của

Trang 19

Read data 1

Read data 2

5 5 5

RegDst

Inst [15:0]

M U X

lw rt, immediate(rs)

Trang 20

Read data 1

Read data 2

5 5 5

Inst [25:21]

Inst [20:1 6]

Inst [15:11]

M U X

RegDst

Inst [15:0]

M U X

Trang 21

Công đoạn ALU

 Công đoạn ALU:

Số học (ví dụ: add, sub), Logic (ví dụ: and, or): ALU tnh ra

beq): ALU thực hiện so sánh

các giá trị trên thanh ghi và tnh toán địa chỉ đích sẽ nhảy tới

ALU result

Trang 22

Công đoạn ALU: các lệnh non-branch

Read register 1 Read register 2 Write register Write data

Read data 1

Read data 2

Register File

5 5 5

Inst [25:21]

Inst [20:1 6]

Inst [15:11]

M U X

RegDst

Inst [15:0]

M U X

ALUSrc RegWrite

Sign Extend

ALU result

Trang 23

Công đoạn ALU: các lệnh branch

Trang 24

Giai đoạn truy xuất vùng nhớ (Memory stage)

 Giai đoạn truy xuất vùng nhớ:

Chỉ có lệnh Load và Store cần thực hiện các thao tác trong giai

đoạn này:

 Sử dụng địa chỉ vùng nhớ được tính toán ở giai đoạn ALU

 Đọc dữ liệu ra hoặc ghi dữ liệu vào vùng nhớ dữ liệu

 Tất cả các lệnh khác sẽ rảnh trong giai đoạn này

Addres s

Read Data Write

Data

MemRea d

MemWrite

Trang 25

Inst [15:0]

M U X

ALUSrc

RR1 RR2 WR

RegWrite

Sign Extend

ALU result

MemRead

MemWrite

Data Memory

Read Data

lw rt ,imediate( rs )

Trang 26

Inst [15:0]

M U X

RR1 RR2 WR

RegWrite

Sign Extend

ALU result

MemRead

MemWrite

Data Memory

Read Data

sw rt ,imediate( rs )

Trang 27

Inst [25:21]

Inst [20:1 6]

Inst [15:11]

M U X

RegDst

Inst [15:0]

M U X

RR1 RR2 WR

RegWrite

Sign Extend

ALU result

ALU

ALUcontrol

4

Data Memory

Address

Read Data Write

MemToReg

MemRead

Trang 28

Giai đoạn lưu trữ kết quả (Result Write)

Công đoạn Result Write:

 Những lệnh ghi kết quả của các

phép toán vào thanh ghi:

 Ví dụ: số học, logic, shifts, load, set-less-than

 Cần chỉ số thanh ghi đích và kết quả tính toán

 Những lệnh không ghi kết quả

như: store, branch, jump:

 Không có ghi kết quả

Những lệnh này sẽ rảnh trong giai đoạn này

Read data 1

Read data 2

Registers

5 5 5

Write data

Trang 29

Inst [25:21]

Inst [20:1 6]

Inst [15:11]

M U X

Inst [15:0]

M U X

RR1 RR2 WR

RegWrite

Sign Extend

ALU result

ALU

ALUcontrol

4

Data Memory

Address

Read Data Write

MemRead

Trang 30

HIỆN THỰC DATAPATH ĐƠN

CHU KỲ

Xây dựng Control unit

Trang 32

Các vấn đề trong thực thi câu

lệnh có dụng pipelineXung đột khi áp dụng pipeline

Trang 33

Các vấn đề trong việc

thực thi câu lệnh áp

dụng Pipeline

Trang 35

Công thức tính thời gian đối với

các bài tập về Pipeline

Có Pipeline Không Pipeline, đơn chu kỳ Không Pipeline, đa chu kỳ

Chu kỳ xung

clock (T) Bằng với công đoạn dài nhất Tổng các công đoạn Bằng với công đoạn dài nhất

Thời gian thực thi

Thời gian thực thi

Tổng (% lệnh * số công đoạn)*n*T

Lưu ý: Số chu kỳ trong đoạn lệnh sử dụng Pipeline: (5 + n – 1)

Trang 36

Giải quyết xung

đột

Chủ yếu là xung đột dữ liệu

Trang 37

Cách giải quyết xung đột

Cách giải quyết xung đột khi có xung đột: câu lệnh sau

sử dụng thanh ghi mà thanh ghi đó là kết quả của câu

+ ALU-ALU: thêm 2 lệnh nop ở giữa 2 câu lệnh.

+ MEM-ALU: thêm 1 lệnh nop ở giữa 2 câu lệnh.

- Câu lệnh trước thuộc các lệnh còn lại thì không cần thêm lệnh nop.

LƯU Ý: Lệnh sw dùng để lưu giá trị của thanh ghi vào địa chỉ mảng, không làm thay đổi giá trị của thanh ghi nên không cần phải thêm lệnh nop sau lệnh sw

Trang 39

Bit.ly/KTMT_CK1_BHTCNTT

Ngày đăng: 11/08/2022, 11:08

TỪ KHÓA LIÊN QUAN

w