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

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

1/8/19 SET - HUST 1

Nội dung môn học

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

• Chương 2: Kiến trúc tập lệnh MIPS – 32 bits

• Chương 3: Bộ xử lý MIPS – 32 bits

• Chương 4: Xử lý đường ống

• Chương 5: Bộ nhớ máy tính

• Chương 6: Tổ chức Vào/ra

1/8/19 SET - HUST 2

Tài liệu tham khảo

• http://www-inst.eecs.berkeley.edu/~cs61c/fa16

/ và

• http://inst.eecs.berkeley.edu/~cs61c/sp15/

• Computer Organization and Design, 5th

Edition : The Hardware/Software Interface

1/8/19 SET - HUST 3

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

1/8/19 SET - HUST 4

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

Personal Mobile Devices

5

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

6

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

7

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

Phần mềm hệ thống

Phần mềm ứng dụng

Phần cứng

1/8/19 SET - HUST 8

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

Application (ex: browser)

Compiler

Operating System (Mac OSX)

Software

Assembler

Instruction Set Architecture

Hardware

Processor Memory I/O system

Datapath & Control

Digital Design

Circuit Design transistors

9

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

Graphical Interface

Application Application Programming

Libraries

Operating System

System Programming Programming Language

Assembler Language

Instruction Set Architecture - “Machine Language”

Processor IO System

Microprogramming Firmware

Datapath and Control Computer Design Digital Design

Logic Design

Circuit Design Circuits and devices

Semiconductors Fabrication

Materials

1/8/19 SET - HUST 10

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

• Application

Computer Architecture = Instruction Set Architecture +  Machine Organization

Programming

software

• System

instruction set

hardware

Programming

• Processor Architecture • Computer Organization

1/8/19 SET - HUST 11

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

1/8/19 SET - HUST 12

To change

1/8/19 SET - HUST 13

)

C

Định luật Moore: Moore’s Law

I ( t i u c r i

Predicts: 2X Transistors / chip every 2 years

c d e t a r g e t n

i

n a n o s r o t s

i

Gordon Moore Intel Cofounder B.S. Cal 1950!

s n a r t f o #

Year

14

Định luật Moore

Đị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.

Moore’s Law 1965­2020?

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ý).

15

Đá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?

Dung lượng

9

Chòm tiên nữ

2,000 Years

1 0

Tape /Optical Robot

6

Disk

2 Years

Thời gian lưu trữ /truy cập

Sao diêm vương

1 0

1.5 hr

Hà Nội

Memory

10 0

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

ạ ọ

1 0

TC-406

My Head

2 1

10 min 1 min (ns)

On Board Cache On Chip Cache Register s

Đ i h c BK  HN

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

1/8/19 17

Xử lý song song

18

Quan niệm mới (phức tạp hơn một chút!)

Software Hardware

• Parallel Requests

Smart Phone Assigned to computer Warehous e-Scale Computer

• Parallel Threads

e.g., Search “Katz”

Harness Parallelism & Achieve High Performance

Computer

Assigned to core … Core Core

• Parallel Instructions

e.g., Lookup, Ads Memory (Cache)

Input/Output

>1 instruction @ one time Instruction Unit(s)

e.g., 5 pipelined instructions

A2+B 2

A1+B 1

A0+B 0

• Parallel Data

Cor e Functional Unit(s) A3+B 3

Main Memory

>1 data item @ one time Logic Gates

• Hardware

descriptions

19 e.g., Add of 4 pairs of words

All gates functioning in parallel

at same time

Luật Amdahl: Amdahl’s Law

Gene Amdahl Computer Pioneer

1/8/19 20

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

1000

CPU

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

“Moore’s Law”

I n p u t M u l t ip l i e r

I n p u t M u l t ip l i c a n d

3 2

100

L o a d M p

M u l t i p l ic a n d R e g i s t e r

Processor-Memory Performance Gap: (grows 50% / year)

3 2 = > 3 4 s i g n E x

3 2

3 4

< < 1 3 4

10

1

0 3 4 x 2 M U X

3 2 = > 3 4 s i g n E x

Arithmetic

M u l t i x 2 / x 1

3 4

3 4

e c n a m r o f r e P

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

DRAM

S u b / A d d

3 4 - b i t A L U

C o n t r o l L o g i c

1

3 4

3 2

S h i f t A l l

3 2

2

Single/multicycle Datapaths

1 9 8 01 9 8 11 9 8 31 9 8 41 9 8 51 9 8 61 9 8 71 9 8 81 9 8 91 9 9 01 9 9 11 9 9 21 9 9 31 9 9 41 9 9 51 9 9 61 9 9 71 9 9 81 9 9 92 0 0 0

1 9 8 2

E N C [ 2 ]

[

2

L O 1

]

2

2

E N C [ 1 ]

b

t

P r e v

E x t r a

i t s

B o o h

H I r e g is t e r ( 1 6 x 2 b i t s )

L O r e g i s t e r ( 1 6 x 2 b it s )

E n c o d e r E N C [ 0 ]

2

I

I

L O [ 1 : 0 ]

l

Time

H d a o L

H r a e C

O L d a o L

3 2

3 2

R e s u l t [ H I ]

R e s u lt [ L O ]

IFetchDcd

Exec Mem WB

IFetchDcd

Exec Mem WB

IFetchDcd

Exec Mem WB

IFetchDcd

Exec Mem WB

Pipelining

I/O

Memory Systems

1/8/19 SET - HUST 21

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

Processor

Input

Control

Memory

Datapath

Output

1/8/19 SET - HUST 22

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

1/8/19 SET - HUST 23

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

1/8/19 SET - HUST 24

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

High Level Language Program (e.g., C) temp = v[k]; v[k] = v[k+1]; v[k+1] = temp;

lw

$t0, 0($2)

lw

$t1, 4($2)

Compiler

Anything can be represented as a number, i.e., data or instructions

Assembly Language Program (e.g., MIPS)

$t1, 0($2)

$t0, 4($2)

Assembler

sw 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 sw 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111

Machine Language Program (MIPS)

Machine Interpretation

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

Architecture Implementation

Logic Circuit Description (Circuit Schematic Diagrams) 25

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

1/8/19 SET - HUST 26

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

1/8/19 SET - HUST 27

Bộ xử lý hoạt động thế nào?

Bộ xử lý làm gì?

– 1. Tải lệnh

– 2. Tìm ra toán tử nào phải thực thi

– 3. Tìm ra dữ liệu nào sử dụng

– 4. Thực hiện tính toán

– 5. Tìm ra lệnh tiếp theo

Lặp đi lặp lại quá trình

1/8/19 SET - HUST 28

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

1/8/19 SET - HUST 29

2: Trừ 2 từ r0(i)

1/8/19 SET - HUST 30

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

1/8/19 SET - HUST 31

4: Tăng r0 (i)

1/8/19 SET - HUST 32

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

1/8/19 SET - HUST 33

6: Trừ 2 từ r0(i)

1/8/19 SET - HUST 34

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

1/8/19 SET - HUST 35

8: Tăng r0 (i)

1/8/19 SET - HUST 36

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

1/8/19 SET - HUST 37

10: Trừ 2 từ r0(i)

1/8/19 SET - HUST 38

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

1/8/19 SET - HUST 39

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

1/8/19 SET - HUST 40

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

1/8/19 SET - HUST 41

Đánh giá hiệu năng

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

=

Performancex

1 Execution Timex

ExecutionT

ime

y

x

n(cid:0)

Performanc Performanc

e e

ExecutionT

ime

y

x

(cid:0)

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

T

T   or

fC /

cpu

TC c

cpu

c

(cid:0) (cid:0) (cid:0)

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

Seconds per program

Application

Useful Operations per second

Programming  Language

Compiler

(millions) of Instructions per second – MIPS (millions) of (F.P.) operations per second – MFLOP/s ISA

Datapath Megabytes per second Control

Function Units

Cycles per second (clock rate) Transistors Wires Pins

Clock

Chu kỳ xung nhịp

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  ỳ ạ i chu k   l

Số xung đồng hồ

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

IC

CPI

Trong đó:

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:

(cid:0) (cid:0)

CPI for this instruction class

A B C

1 2 3 CPI

HUST-FET, 1/8/19

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

n

CPI

IC

CPI (

)

i

i

i

1

– ICi là tỉ lệ (%) số chỉ thị thuộc loại i được thực thi

– CPIi là số chu kỳ (trung bình) cần để thực hiện 1 chỉ thị thuộc

thuộc loại i

– n là số loại chỉ thị

• CPI hiệu dụng phụ thuộc vào tỉ lệ chỉ thị trong một chương trình (tần

suất động của các chỉ thị trong 1 hoặc nhiều chương trình)

(cid:0) (cid:0) (cid:0) (cid:0)

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ị.

T

I

CPI

T

I

ps

I

0,2

250

500

cpu

A

A

,

Ac ,

• Do đó:

(cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0)

T

I

CPI

T

I

ps

I

2,1

500

600

cpu

B

B

,

Bc ,

= 1, 2

I I

= 600 · 500 ·

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

= Tcpu,B Tcpu,A

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?

(cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0)

Ví dụ

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

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

A

T

cpu

A

,

C f

Ac ,

9

9

(cid:0)

f

C

T

10

2

10

20

10

cycles

cpu

A

A

,

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

(cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0)

C

C

2,1

B

A

9

(cid:0) (cid:0)

10

B

f

GHz 4

Bc ,

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

C T

20 6

cpu

B

,

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

(cid:0) (cid:0) (cid:0) (cid:0) (cid:0)

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:

A B C

CPI 1 2 3

Đoạn mã A B

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 C chọn 2 đoạn chỉ thị máy gồm có tần suất các loại chỉ thị như sau: 2

1 1 2

2 4 1 1

Đ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ã.

HUST-FET, 1/8/19 51

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

A

B

C

Đoạn mã

A

B

C

1

2

3

CPI

1

2

1

2

2

4

1

1

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

3

I

)231221(

10

CPI (

)

i

i

,1

C 1

i

1

3

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

C

I

CPI (

)

9)131241(

i

i

2

,2

i

1

(cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0)

• 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

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

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