1. Trang chủ
  2. » Công Nghệ Thông Tin

Slide Bài giảng Kiến trúc máy tính (Tạ Kim Huệ)

314 73 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 314
Dung lượng 22,89 MB

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

Nội dung

Qu an tr ọn g đ ối v ới 1 ng ườ i sử dụ ng Thời gian đáp ứng thời gian thực thi – là khoảng thời gian giữa thời điểm bắt đầu thực hiên và thời điểm hoàn thành một nhiệm vụ Thời gian đ

Trang 1

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

To improve is to change; to be perfect is to change often.

Winston Churchill

Trang 2

Nội dung môn học

Trang 3

Tài liệu tham khảo

Trang 4

1500 rơle

30 tấn

140 kw

ENIAC (1946) 18.000 bóng đèn

Kiến trúc đặc trưng, có khả năng cấu hình lại, di động, tiêu thụ ít

năng lượng, xử lý song song

Lịch sử phát triển của máy tính

Trang 5

Máy tính hiện đại

5

Personal Mobile

Devices

Trang 6

6

Trang 7

7

Trang 8

PDP-11, VAX, Motorola 68k, x86 intel.

Cấu tạo

Quan niệm truyền thống về cấu trúc máy tính

Phần cứng

Phần mềm

hệ thống

Phần mềm

hệ thống Phần mềm ứng

dụng Phần mềm ứng dụng

Trang 9

Quan niệm truyền thống về cấu trúc máy tính

9

I/O system Processor

Compiler

Operating System (Mac OSX) Application (ex: browser)

Digital Design Circuit Design

Instruction Set Architecture

Datapath & Control

transistors

Memory

Hardware

Trang 10

ApplicationLibrariesOperating SystemProgramming LanguageAssembler LanguageGraphical Interface

Logic DesignDatapath and Control

Circuit DesignSemiconductorsMaterials

Firmware

Circuits and devices Fabrication

Digital Design Computer Design

Application Programming

System Programming

Microprogramming Instruction Set Architecture - “Machine Language”

Cấu trúc máy tính

Trang 12

Bắt đầu từ : Nguyên lý thiết kế và cấu trúc máy tính truyền thống

Hiểu nguyên lý thiết kế

Thiết kế máy tính theo yêu cầu

Cấu trúc bộ xử lý MIPS – 32 MIPS = Microprocessor without Interlocked Pipeline Stages

Trang 13

To change

Trang 14

Gordon Moore Intel Cofounder B.S Cal 1950!

Trang 15

Định luật Moore

15

Định luật Moore là một bước ngoặt lớn trong ngành công nghệ

điện tử, giải thích tại sao nhà sản xuất có thể giảm giá thành

trong khi vẫn tiếp tục nâng cao hiệu suất của phần cứng.

Hiện nay, thời gian để tăng đôi số transistor/inch vuông đã dài

hơn vì kích thước transistor không thể giảm nhỏ kích thước

phân tử <14nm (Hạn chế về thiết kế vật lý).

Trang 16

Đánh giá khả năng lưu trữ trên bộ nhớ tương tự của Jim Gray

How Far Away is the Data?

Registers

On Chip Cache

On Board Cache Memory

2 Years

1 min

Sao diêm vương

2,000 Years Chòm tiên nữ

(ns)

Jim Gray Turing Award B.S Cal 1966 Ph.D Cal 1969!

Trang 17

Nguyên lý về định vị và phân cấp bộ nhớ

Trang 18

Xử lý song song

18

Trang 19

Quan niệm mới

>1 instruction @ one time

e.g., 5 pipelined instructions

• Parallel Data

>1 data item @ one time

e.g., Add of 4 pairs of words

• Hardware descriptions

All gates functioning in parallel at same time

19

SmartPhone

Warehouse-Scale Computer

Software Hardware

Harness Parallelism &

Achieve High Performance

Logic Gates

Memory (Cache)Input/Output

A3+B3 A2+B2

A1+B1 A0+B0

Trang 20

10/31/21 20

Luật Amdahl: Amdahl’s Law

Gene Amdahl Computer Pioneer

Trang 21

Tiến trình tìm hiểu về kiến trúc máy tính

µProc 60%/yr (2X/1.5yr)

DRAM 9%/yr (2X/10 yrs)

1 10 100 1000

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2

DRAM CPU

Processor-Memory Performance Gap:

Datapaths

IFetch Dcd Exec Mem WB

IFetch Dcd Exec Mem WB

IFetch Dcd Exec Mem WB

IFetch Dcd Exec Mem WB

H I r e g is t e r

2

0 1

3 4

Trang 22

Cấu tạo của máy tính

Trang 23

Cấu tạo bộ xử lý

Trang 24

Bộ xử lý cơ bản: Bộ nhớ, Khối điều khiển,

Khối tính toán

Trang 25

Các cấp độ diễn tả trừu tượng

Assembly Language Program (e.g., MIPS)

Machine Language Program (MIPS)

Hardware Architecture Description (e.g., block diagrams)

Trang 26

Các khối xử lý cơ bản

Trang 27

Bộ xử lý cơ bản: Bộ nhớ, Khối điều khiển, Khối

tính toán

Trang 29

1: Tải giá trị r0 (i) từ bộ nhớ (location 7)

Trang 30

2: Trừ 2 từ r0(i)

Trang 31

3: Kiểm tra nếu r1 bằng 0, nhảy khi điều

kiện đúng

Trang 32

4: Tăng r0 (i)

Trang 33

5: Tiếp tục vòng lặp

Trang 34

6: Trừ 2 từ r0(i)

Trang 35

7: Kiểm tra nếu r1 bằng 0, nhảy khi điều kiện đúng

Trang 36

8: Tăng r0 (i)

Trang 37

9: Tiếp tục vòng lặp

Trang 38

10: Trừ 2 từ r0(i)

Trang 39

11: Kiểm tra r1 bằng 0, nhảy khi điều kiện đúng.

Trang 40

12: Dừng chương trình vì lệnh 5 không hợp lệ!

Trang 41

Hiểu chi tiết về bộ xử lý MIPS

Trang 42

Qu an tr ọn

g đ

ối v

ới 1 ng

ườ

i sử

dụ ng

Thời gian đáp ứng (thời gian thực

thi) – là khoảng thời gian giữa thời

điểm bắt đầu thực hiên và thời điểm

hoàn thành một nhiệm vụ

Thời gian đáp ứng (thời gian thực

thi) – là khoảng thời gian giữa thời

điểm bắt đầu thực hiên và thời điểm

hoàn thành một nhiệm vụ

Qu an tr ọn

g đ

ối v

ới n gư

ời đ iều

hà nh tr un

g t âm d

ữ liệ u

Thông lượng (dải thông) – là tổng số

nhiệm vụ có thể được hoàn thành

trong 1 khoảng thời gian

Thông lượng (dải thông) – là tổng số

nhiệm vụ có thể được hoàn thành

trong 1 khoảng thời gian

Đánh giá hiệu năng

Trang 43

Cải thiện hiệu năng

Để tối đa hóa hiệu năng, cần tối thiểu hóa thời gian thực hiện

Để tối đa hóa hiệu năng, cần tối thiểu hóa thời gian thực hiện

Giảm thời gian đáp ứng thường

sẽ tăng thông lượng

Giảm thời gian đáp ứng thường

sẽ tăng thông lượng

Hiệu năng và thời gian thực thi có quan hệ nghịch đảo

Hiệu năng và thời gian thực thi có quan hệ nghịch đảo

x

ime ExecutionT

ime ExecutionT e

Performanc

e Performanc

Trang 44

Thời gian dùng để tính hiệu

Thời gian CPU người dùng

Thời gian CPU thực hiện

mã lệnh của chương trình

Thời gian CPU hệ thống

Thời gian CPU dành cho hệ điều hành thực hiện các nhiệm vụ cần thiết cho CT của người dùng

Cách tính hiệu năng

c cpu

c

Trang 45

Đơn vị đo hiệu năng theo các phân mức

Compiler

Programming

LanguageApplication

Seconds per program

Useful Operations per second

Trang 46

.

Combination Logic

Cycle

Hầu hết các máy tính hiện đại không đổi và lặp đi lặp lại chu kỳ

Trang 47

Số xung đồng hồ

HUST-FET, 10/31/21

• Số xung đồng hồ thực hiện 1 chương trình:

I là số chỉ thị máy cần thực hiện trong chương trình

CPI (eng Clock cycles per Instruction) là số xung đồng hồ trung bình cần để thực thi 1 chỉ thị máy,

• CPI có thể dùng để so sánh các máy tính khác nhau cùng triển khai 1 kiến trúc tập lệnh

• Ví dụ: có 3 loại lệnh A, B, C khác nhau trong 1 kiến trúc tập lệnh Mỗi lệnh trong từng loại có CPI tương ứng:

CPI for this instruction class

CPI I

Trang 48

CPI hiệu dụng (trung bình)

• CPI hiệu dụng được tính bằng cách xét tất cả các lớp chỉ thị có trong chương trình và lấy trung bình với trọng số là tỉ

lệ xuất hiện của lớp chỉ thị trong chương trình

Trang 49

So sánh dựa trên CPI

• Khi 2 máy tính A, B cùng thực hiện 1 chương trình, chúng cùng thực hiện I chỉ thị

• Do đó:

• Máy A nhanh hơn máy B:

Máy tính A và B cùng triển khai 1 kiến trúc tập lệnh Máy A có chu kỳ đồng hồ là 250ps, và CPI hiệu dụng cho 1 chương trình P là 2,0 Máy B có chu kỳ đồng hồ là 500ps, và CPI hiệu dụng cho cùng 1 chương trình P là 1,2 Máy tính nào nhanh hơn và nhanh hơn bao nhiêu?

I ps

I T

CPI I

T

I ps

I T

CPI I

T

B c B

B cpu

A c A A

2 , 1

500 250

0 , 2

, ,

, ,

Performance B = T cpu,B

T cpu,A = 600 × I

500 × I = 1, 2

Trang 50

Ví dụ

• Công thức để tính thời gian CPU, khi máy tính A thực hiện chương trình:

• Số chu kỳ máy tính A dùng để thực hiện chương trình:

• Số chu kỳ máy tính B dùng để thực hiện chương trình:

• Tốc độ đồng hồ của máy tính B:

• Hiệu năng có thể cải thiện bằng cách giảm số chu kỳ 1 xung đồng hồ hoặc giảm số chu kỳ cần thiết để thực hiện chương trình

Máy tính A với xung đồng hồ 2GHz thực hiện 1 chương trình hết 10 giây Để thực hiện chương trình đó trong 6 giây bằng máy tính B, ta cần tăng tốc độ xung đồng hồ của máy B Tuy nhiên, tăng tốc độ xung đồng hồ cũng làm tăng số chu kỳ cần thiết lên 1,2 lần Xác định tốc độ xung đồng hồ máy tính B

A c

A A

cpu

f

C T

, , =

cycles 10

20 10

C f

B cpu

B B

6

10 20

2 ,

,

Trang 51

So sánh đoạn mã chương trình

• Người thiết kế một máy tính triển khai kiến trúc tập lệnh gồm 3 loại chỉ thị A, B, C được CPI như sau:

• Với 1 câu lệnh ở ngôn ngữ bậc cao, người viết trình biên dịch có thể lựa chọn 2 đoạn chỉ thị máy gồm có tần suất các loại chỉ thị như sau:

• Đoạn mã nào gồm nhiều chỉ thị hơn? Đoạn mã nào nhanh hơn? Tính CPI của từng đoạn mã.

Trang 52

So sánh đoạn mã chương trình

• Đoạn mã 1 dùng 5 chỉ thị, đoạn mã 2 dùng 6 chỉ thị

• Số xung đồng hồ để thực hiện mỗi đoạn mã được tính như sau:

Trong đó I1,i, I2,i là số lượng chỉ thị loại i trong đoạn mã 1 và 2 tương ứng

• Như vậy đoạn mã 1 chậm hơn đoạn mã 2, mặc dù dùng ít chỉ thị hơn

10 )

2 3 1 2 2 1 ( ) (

,23

12

,13

11

=

× +

× +

× +

i

i i

i

I CPI C

I CPI C

Trang 53

Các yếu tố ảnh hưởng đến hiệu năng

Trang 54

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

Computer architecture

To improve is to change; to be perfect is to change often.

Winston Churchill

Trang 55

Chương 2: Kiến trúc tập lệnh

Trang 56

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

MIPS,MDMX, MIPS-32, MIPS-64

instruction set

software

hardware

Trang 57

Chu kỳ thực thi lệnh cơ bản

Obtain instruction from program storage

Determine required actions and instruction size

Locate and obtain operand data

Compute result value or status

Deposit results in register or storage for later use

Determine successor instruction

Trang 59

Thực thi lệnh

Today we’re going to learn the details!

Trang 60

Kiến trúc Princeton (Von Neumann)

- Data and Instructions mixed in same

Trang 61

Các kiểu toán hạng cơ bản

Declining cost of registers

Trang 62

So sánh số lượng toán hạng

Thực thi phép toán (C = A + B) với các kiểu toán hạng khác nhau

Stack Accumulator

Register (load-store)

Register (register-memory)

Load R1,AAdd R1,B

Cycle

Seconds n

Instructio

Cycles ns

Instructio e

Performanc ime

Trang 63

So sánh số lượng các chỉ thị

Trang 64

Kích thước toán hạng (Operand)

Frequency of reference by size

Trang 65

Tập thanh ghi trong MIPS

32 Thanh ghi đa dụng.

– R0…R31 or $0…$31

– Các biến phải lưu trên thanh ghi

Một số trường hợp đặc biệt.

– R0 luôn có giá trị zero (0)

– R29 là thanh ghi con trỏ ngăn xếp

– R31 được sử dụng cho thủ tục quay lại địa chỉ

Một số thanh ghi đặc biệt.

– PC (Program Counter): Thanh ghi lệnh hiện tại

– HI & LO kết quả của phép nhân

– Thanh ghi dấu phẩy động

– Một số thanh ghi điều khiển (kiểm soát lỗi hoặc trạng thái)

Câu hỏi: Tại sao giá trị thanh

Trang 66

Bộ nhớ là một mảng 1 chiều lưu trữ dữ liệu

• Mỗi ô nhớ có kích thước 1 byte (8 bits)

• Địa chỉ ô nhớ được xác định theo địa chỉ byte

Địa chỉ bộ nhớ được đánh chỉ số trên mảng

Trang 67

Các kiểu dữ liệu trong MIPS được định nghĩa là 1-byte hoặc 1-word

– Một từ gồm 32 bits = 4 bytes

– 232 bytes = 230 words: addresses 0, 4, 8, …

Câu hỏi: địa chỉ của một từ được xác định như thế nào ?

Tổ chức bộ nhớ

Địa chỉ Alignment : Tạo trên 4 byte (word) ở đường biên (e.g., 0, 4, 8, 12…)

– Dữ liệu được lưu trữ ở địa chỉ byte chia hết cho kích thước

Trang 68

Ánh xạ địa chỉ theo byte: Endianess

Little Endian: address of least significant byte = word address (xx00 = Little End of word)

Intel 80x86, DEC Vax, DEC Alpha (Windows NT)

Big Endian

Little Endian

Big Endian: address of most significant byte = word address (xx00 = Big End of word)

IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA

Trang 69

Ánh xạ địa chỉ theo tuyến : Alignment

Alignment: require that objects fall on address that is multiple of their size.

0 1 2 3

Aligned

Not Aligned

Trang 70

Dạng chỉ thị MIPS và các chế độ đánh địa chỉ

immed

registerRegister (direct)

Trang 71

Thống kê các kiểu địa chỉ

Trang 72

Ví dụ: Tập lệnh MIPS

Định dạng trường lệnh 3 toán hạng :

Complex operation many instructions with temporary values.

Complex operation many instructions with temporary values.

Trang 73

– Move (register to register)

– Load (memory to register)

– Store (register to memory)

Điều khiển dữ liệu

– Branch (có điều kiện, e.g., <, >, ==) – Jump (không điều kiện, e.g., goto)

Trang 74

Bảng tham khảo định dạng lệnh

Trang 75

Các lệnh thực thi

Phép toán (Data operations)

– Số học (add, multiply, subtract, divide, …)

– Logic (and, or, not, xor, …)

Dịch chuyển dữ liệu (Data transfer)

– Move (register to register)

– Load (memory to register)

– Store (register to memory)

Rẽ nhánh (Sequencing)

– Branch (conditional, e.g., <, >, ==)

– Jump (unconditional, e.g., goto)

Trang 76

Các phép toán

1. Program Counter (PC) lưu trữ địa chỉ lệnh.

2. Các lệnh được nạp từ bộ nhớ vào thanh ghi lệnh.

3. Bộ điều khiển giải mã lệnh và báo cho ALU và tệp thanh

Trang 77

Ví dụ về lệnh: Add/sub (1 of 2)

Trang 78

Ví dụ về lệnh: Add/sub (2 of 2)

Bộ đếm chương trình (PC) nạp

lệnh từ thanh ghi lệnh

Control báo cho ALU và tệp thanh

ghi (Register File) phải làm gì

ALU ghi kết quả vào Register File.

Bộ đếm chương trình (PC) nạp

lệnh từ thanh ghi lệnh

Control báo cho ALU và tệp thanh

ghi (Register File) phải làm gì

ALU ghi kết quả vào Register File.

Trang 80

Dịch chuyển dữ liệu

1 ALU tính toán ra địa chỉ

2 Địa chỉ gửi tới thanh ghi địa chỉ (Memory

Address Register)

3 Kết quả xác định hướng dịch chuyển đi/ đến

được lưu trữ trên thanh ghi dữ liệu bộ nhớ

(Memory Data Register)

4 Dữ liệu từ bộ nhớ có thể được ghi lại trên

tệp thanh ghi (Register File) hoặc ghi vào bộ

nhớ.

Trang 81

Lệnh tải từ: Load word (1 of 2)

Trang 82

Lệnh tải từ: Load word (2 of 2)

Sử dụng địa chỉ từ tệp

thanh ghi để tải dữ liệu từ

bộ nhớ

Trang 83

Lệnh tải từ với độ lệch địa chỉ.

Độ lệch được thêm vào địa chỉ như là

một phần của các câu lệnh lw/sw

Trang 84

Lệnh lưu từ: Store word

Để thực hiện lưu trữ cần thông tin:

Địa chỉ (từ ALU), dữ liệu (từ thanh

ghi)

Trang 85

Địa chỉ của A vào R5

Lưu giá trị mới của A vào R6

Store : Mem[R5]←R6

Trang 86

Các lệnh điều khiển rẽ nhánh

Lệnh điều khiển rẽ nhánh

– Câu lệnh nào được thực thi tiếp theo?

– Thay đổi luồng điều khiển chương trình “control flow”

Câu lệnh điều kiện trong MIPS

– bne R0, R1, Label branch if not equal to label

– beq R3, R4, Label branch if equal to label

Example:

Trang 87

Lệnh nhảy không điều kiện

Lệnh nhảy không điều kiện: jump

– j Label jump to label

Example:

Trang 88

Các chỉ thị rẽ nhánh

Thay đổi đường dữ liệu chương trình → Thay đổi bộ đếm chương trình PC

– j jump Nhảy tới nhãn không điều kiện

– bne branch not equal Nhảy tới nhãn nếu giá trị các thanh ghi không bằng nhau

Ví dụ: if (a==b) c=1; else c=2;

Trang 89

Xác định địa chỉ rẽ nhánh có điều kiện

HUST-FET, 10/31/21 89

?

Add 4

32

Trang 90

Lệnh nhảy không điều kiện

HUST-FET, 10/31/21 90

 Lệnh nhảy không điều kiện:

Trang 91

Vòng lặp

Trang 92

Địa chỉ trong lệnh rẽ nhánh và lệnh nhảy

Question:

Sử dụng lệnh nhảy bne/beq với

khoảng cách bao nhiêu?

Địa chỉ là 32 bits! Điều khiển bằng cách nào?

– Xem xét bne/beq như là độ lệch tương đối (relative offsets) (cộng với giá trị PC hiện thời) – Xem xét j như là một giá trị tuyệt đối (absolute value) (thay thế 26 bits của PC)

Trang 93

Ví dụ nhảy địa chỉ: loops

Trang 94

Biên dịch thành mã máy

Mã hóa và các định dạng

Trang 95

Định dạng lệnh (mã máy)

Ngôn ngữ máy

– Máy tính không hiểu được chuỗi ký tự sau “add R8, R17, R18”

– Các lệnh phải được chuyển đổi thành ngôn ngữ máy(1s and 0s)

Ví dụ:

add R8, R17, R18 → 000000 10001 10010 01000 00000 100000

Các trường lệnh MIPS

• opcode mã lệnh xác định phép toán (e.g., “add” “lw”)

• rs chỉ số thanh ghi chứa toán hạng nguồn 1 trong tệp thanh ghi

• rt chỉ số thanh ghi chưa toán hạng nguồn 2 trong tệp thanh ghi

• rd chỉ số thanh ghi lưu kết quả

• shamt Số lượng dịch(cho chỉ thị dịch)

• funct mã chức năng thêm cho phần mã lệnh (add = 32, sub =34)

Trang 96

Định dạng lệnh MIPS

• MIPS có 3 dạng chỉ thị :

– R: operation 3 registers no immediate – I: operation 2 registers short immediate – J: jump 0 registers long immediate

Câu hỏi: Lệnh cộng tức thời (addi) cần bao

nhiêu bit để lưu giá trị hằng số?

Trả lời:

I-format: 5+5+6 bits = 16 bits

Giá trị nằm trong khoảng

Từ -32,768 đến +32,767

Trang 97

Tổng kết các lệnh MIPS

HUST-FET, 10/31/21 97

Arithmetic

(R & I format)

shift left logical 0 & 00 sll $s1, $s2, 4 $s1 = $s2 << 4shift right logical 0 & 02 srl $s1, $s2, 4 $s1 = $s2 >> 4 (fill with zeros)shift right arithmetic 0 & 03 sra $s1, $s2, 4 $s1 = $s2 >> 4 (fill with sign bit)

and immediate c and $s1, $s2, ff00 $s1 = $s2 & 0xff00

load upper immediate f lui $s1, 0xffff $s1 = 0xffff0000

Trang 98

Tổng kết các lệnh MIPS

HUST-FET, 10/31/21 98

Data

transfer

(I format)

Cond branch

(I & R format)

set on less than immediate

a slti $s1, $s2, 100 if ($s2<100) $s1=1; else $s1=0

set on less than 0 & 2a slt $s1, $s2, $s3 if ($s2<$s3) $s1=1; else $s1=0

Ngày đăng: 30/10/2021, 11:33

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm