1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng Kiến trúc máy tính chương 4 Kiến trúc tập lệnh (ISA)

60 1K 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 60
Dung lượng 8,99 MB

Nội dung

• Các đơn vị đo ISA– Tính trực giao • Không có các thanh ghi đặc biệt, vài trường hợp đặc biệt, tất cả các chế độ toán hạng có thể sử dụng với dạng dữ liệu hoặc dạng lệnh bất kỳ... • Ít

Trang 1

KIẾN TRÚC MÁY TÍNH

Chương IV: Kiến trúc tập lệnh (ISA)

Giảng viên: TS Nguyễn Quý Sỹ

Email: synq@ptit.edu.vn

Trang 3

Các máy đa mức hiện đại

Đây là mức

ngôn ngữ

máy

Trang 4

Kiến trúc tập lệnh là cấu trúc của một máy tính mà người

lập trình ngôn ngữ máy phải hiểu để viết một chương trình chuẩn cho máy đó.

– Đây là phát biểu của IBM vào năm 1964 khi giới thiệu kiến trúc

IBM 360, kiến trúc này được rút ra từ 7 tập lệnh IBM khác nhau

chạy là ngôn ngữ máy của nó hoặc kiến trúc tập lệnh.

phần cứng cần phải hiểu để thiết kế ra được một sản

Trang 5

Kiến trúc tập lệnh dùng như là một giao diện giữa phần

cứng và phần mềm (Là một ngôn ngữ cả hai đều phải hiểu)

với phần cứng cái cần làm.

instruction set level

High level language code : C, C++, Java, Fortan, Assembly language code: architecture specific statements Machine language code: architecture specific bit patterns

software

compiler assembler

Trang 6

Một kiến trúc sư máy tính phải bàn bạc với cả hai:

người viết chương trình biên dịch

Mô tả chính xác gọi và truy cập bằng phần mềm như thế nào

chương trình đang có.

Trang 7

Một ISA tốt?

Khả năng thực thi

Một ISA tốt nên định nghĩa một tập các lệnh sao cho các các lệnh

có thể thực thi được hiệu quả hiện tại và tương lai, có kết quả bằng các thiết kế mang lại lợi nhuận qua nhiều thế hệ

Các thế hệ x86 (IA32): 8086, 286, 386, 486, Pentium, PentiumII,

PentiumIII, Pentium4,…

Khả năng lập trình một target (toolkit) rõ ràng cho mã được

biên dịch Dễ dàng biểu diễn các chương trình hiệu quả

Trang 8

Các đơn vị đo ISA

Tính trực giao

Không có các thanh ghi đặc biệt, vài trường hợp đặc biệt, tất cả

các chế độ toán hạng có thể sử dụng với dạng dữ liệu hoặc dạng lệnh bất kỳ

Trang 9

Các vấn đề khi thiết kế tập lệnh

Các toán hạng được lưu trữ ở đâu?

Các thanh ghi, bộ nhớ, ngăn xếp, tích luỹ

Có bao nhiêu toán hạng?

0, 1, 2 hay là 3

Vị trí toán hạng được xác định như thế nào?

Thanh ghi, trực tiếpgián tiếp,

Kiểu và kích cỡ toán hạng được hỗ trợ là gì?

Byte, Int, Float, Double, String, Vector

Những tác vụ nào được hỗ trợ?

Add, Sub, Mul, Move, Compare

Trang 10

Single Accumulator (EDSAC 1950)

Accumulator + Index Registers

(Manchester Mark I, IBM 700 series 1953)

Separation of Programming Model

Trang 11

Người viết bộ biên dịch phải biết mô hình bộ nhớ là gì, có

các thanh ghi nào, các dạng dữ liệu và các lệnh nào có thể

Trang 12

Các chế độ ISA: Ở mức ISA level, hầu hết các máy hoạt

động trên 2 chế độ:

Chế độ Kernel chạy hệ điều hành cho phép các tất cả các lệnh

được thực hiện.

Lập trình các hệ thống

Thao tác cache trực tiếp

Các lệnh thiết bị ngoại vi trực tiếp

Kiến tạo thư viện hệ thống

Chế độ người sử dụng chạy chế độ ứng dụng và không cho phép

thi hành các lệnh nhạy cảm nào đó

Lập trình ứng dụng

Thi hành các ứng dụng

Trang 14

2 địa chỉ add A, B mem[A] mem[A] + mem[B]

3 địa chỉ add A, B, C mem[A] mem[B] + mem[C]

Thanh ghi-Bộ nhớ (1970s đến nay):

2 địa chỉ add R1, A R1 R1 + mem[A]

load R1, A R1 mem[A]

Thanh ghi/Thanh ghi (Nạp/lưu trữ) (1960s tới nay):

Trang 15

Kiến trúc thanh ghi tích luỹ

add A, sub A, mult A, div A,

Trang 16

Kiến trúc thanh ghi tích luỹ

Yêu cầu phần cứng rất thấp

Dễ hiểu và dễ thiết kế

Nhược điểm

Thanh ghi tích luỹ trở thành nút cổ chai

Khả năng thấp đối với cơ chế sóng song và kỹ thuật đường ống

Lưu lượng bộ nhớ cao

Trang 18

Ít khả năng cho cơ chế song song và đường ống

Dữ liệu không luôn luôn ở đỉnh của ngăn xếp khi cần, vì vậy các

lệnh bổ sung như TOP và SWAP được cần tới

Khó viết một bộ biên dịch tối ưu cho các kiến trúc ngăn xếp

Trang 19

Kiến trúc bộ nhớ-bộ nhớ

Tập lệnh

(3 toán hạng) add A, B, C sub A, B, C mul A, B, C

(2 toàn hạng) add A, B sub A, B mul A, B

Trang 20

Kiến trúc bộ nhớ-bộ nhớ

Yêu cầu ít lệnh (đặc biệt nếu 3 toán hạng)

Dễ viết các bộ biên dịch (đặc biệt nếu 3 toán hạng)

Nhược điểm

Lưu lượng bộ nhớ rất cao (đặc biệt nếu 3 toán hạng)

Số lượng các xung CLK trên một lệnh thay đổi

Với 2 toán hạng, yêu cầu dịch chuyển dữ liệu nhiều hơn

Trang 21

Kiến trúc thanh ghi-bộ nhớ

sub R2, D /* AB - (A + C*B) */

Trang 22

Kiến trúc thanh ghi-bộ nhớ

Các toán hạng không tương đương (trực giao yếu)

Số lượng các CLK/1 lệnh thay đổi

Có thể giới hạn số lượng các thanh ghi

Trang 23

Kiến trúc nạp-lưu trữ

Tập lệnh:

add R1, R2, R3 sub R1, R2, R3 mul R1, R2, R3

load R1, &A store R1, &A move R1, R2

Trang 24

Kiến trúc nạp-lưu trữ

Mã hoá lệnh đơn giản, có độ dài cố định

Các lệnh thực hiện trong số lượng chu kỳ CLK giống nhau

Tương đối dễ dàng thực hiện kỹ thuật đường ống

Nhược điểm

Tổng số lệnh cao hơn

Không phải tất cả các lệnh cần 3 toán hạng

Phụ thuộc vào bộ biên dịch tốt

Trang 25

Kiến trúc các thanh ghi

Thuận lợi

Nhanh hơn bộ nhớ cache hoặc bộ nhớ chính (không có chế độ địa

chỉ hoặc nhãn)

Xác định (không miss)

Có thể tái tạo (nhiều cổng đọc)

Bộ nhận dạng ngắn (thông thường 3-8 bit)

Lưu lượng bộ nhớ giảm

Bất lợi

Cần lưu lại và khôi phục các gọi thủ tục và chuyển đổi ngữ cảnh

Không thể lấy địa chỉ của một thanh ghi (đối với con trỏ)

Kích thước cố định (không thể lưu trữ các chuỗi hoặc các cấu

trúc hiệu quả)

Bộ biên dịch phải quản lý

Số lượng thanh ghi hữu hạn

Trang 27

Mô hình bộ nhớ IS

Bytes 8 bits-là kích thước ô chung nhất

Các ô phần nhỏ nhất có thể truy cập của bộ nhớ

1 to 64 Bits

Words độ rộng của bus dữ liệu, độ rộng của bộ nhớ

Trước đây, 2-byte, thậm chí các từ 1-byte là phổ biến

Hiện nay, các từ 4-byte và 8-byte là phổ biến nhất

Các từ thường được sắp xếp với các biên tự nhiên của nó.

Đó là một từ 4-byte phải bắt đầu tại 0, 4, 8, etc và không ở

1, 2, 3, 5, 6, 7, etc

Đó là một từ 8-byte phải bắt đầu tại 0, 8, 16, etc.

Trang 28

Định địa chỉ Big Edian

số cao nhất (MSB) của từ 32 bit (IBM, Motorola, Sun, HP)

Trang 29

Định địa chỉ Little Edian

Địa chỉ byte nhị phân x x00 là ở vị trí có trọng số thấp nhất

(LSB) của từ 32 bit (Intel, DEC)

Người lập trình cần cẩn thận khi chuyển giao dữ liệu nhị

phân giữa các máy Big Edian và Little Edian

3 2 1 0

7 6 5 4

Trang 30

Chuẩn trực toán hạng

Truy cập tới một toán hạng có kích thước S byte ở địa chỉ

byte A được gọi là được chuẩn trực nếu A mod S = 0.

Trang 31

Chuẩn trực không giới hạn

Nếu kiến trúc không giới hạn

truy cập bộ nhớ để được trực chuẩn thì

Phần mềm đơn giản

Phần cứng phải phát hiện

không trực chuẩn và thực hiện hai truy cập bộ nhớ

Trang 32

Chuẩn trực bị giới hạn

Nếu kiến trúc giới hạn các truy nhập bộ nhớ để được trực chuẩn

thì

Phần mềm phải đảm bảo trực chuẩn

Phần cứng phát hiện các truy cập không trực chuẩn và các bẫy

Không sử dụng thời gian mở rộng khi dữ liệu được trực chuẩn

Bởi vì tôi muốn làm trường hợp chung nhanh, có trực chuẩn bị

giới hạn thường là một lựa chọn tốt hơn, nếu tương thích không phải là một trở ngại

Trang 34

Định địa chỉ cơ sở-chỉ số

Một số máy có một chế độ định địa chỉ trong đó địa chỉ bộ nhớ

được tính toán bằng cách cộng 2 thanh ghi cộng với (tuỳ chọn) một địa chỉ offset

Một trong các thanh ghi là cơ sở và thanh ghi khác là chỉ số

Để thực hiện các lệnh càng ngắn càng tốt

Khi sử dụng định địa chỉ ngăn xếp, chúng ta không cần bầt kỳ

địa chỉ nào

Trang 36

Mục đích của các thanh ghi

Điều khiển thi hành chương trình,

Chứa các kết quả tạm thời, tăng tốc độ thi hành

kiến trúc (tổ chức máy tính)

Phổ biến: PC, SP

Nhìn thấy đối với cả hai vi kiến trúc và ISA

Chỉ có vi kiến trúc: MAR, TOS

Trang 37

Hai dạng của các thanh ghi ISA

Đa năng: chứa các biến nội bộ chính và các kết quả tính toán

chung gian Chức năng chính của chúng là để cung cấp truy cập tới các dữ liệu sử dụng nhiều, tránh truy cập bộ nhớ

Chuyên dụng: các thanh ghi có chức năng riêng

Từ trạng thái chương trình (PSW N, Z, V, C, A, P)

PC, SP

Trang 38

Ngoài các thanh ghi ISA có thể nhìn thấy được đối với các

chương trình của người sử dụng, có một số lượng đáng kể các thanh ghi chuyên dụng có thể sử dụng chỉ ở chế độ kernel Chúng điều khiển cache, bộ nhớ, các thiết bị I/O,

và các thuộc tính phần cứng khác.

biên dịch và người sử dụng không cần kiến thức về chúng

Trang 39

Từ trạng thái chương trình (PSW)

Chứa các bit khác nhau cần cho CPU và được sử dụng trong cả

hai chế độ kernel và người sử dụng

Các bit điều kiện điển hình: các bit này thay đổi theo từng chu

kỳ ALU và phản ánh trạng thái cả tác vụ gần nhất

N: ALU result Negative

Z: ALU result Zero

V: ALU result Overflow

C: Carry out of leftmost bit of ALU result

A: Set when carry out of bit 3 of ALU

P: ALU result has even parity

Thường PSW có thể đọc được ở chế độ người sử dụng; chỉ có

thể ghi được ở chế độ Kernel

Trang 41

Bao nhiêu thanh ghi thì đủ?

Các thanh ghi nhanh hơn bộ nhớ, vậy càng nhiều thì càng tốt?

Trả lời-Không

Một lý do các thanh ghi nhanh hơn khi có ít thanh ghi hơn

Nhỏ thì nhanh (chân lý của phần cứng)

Lý do khác là chúng định địa chỉ trực tiếp (không tính toán địa

Trang 43

Thay đổi

Độ dài lệnh thay đổi dựa trên toán hạng và cách xác định địa chỉ

Các lệnh VAX thay đổi từ 1 đến 53 byte

Trong khi lệnh x86 thay đổi từ 1-17 byte

Mật độ mã tốt, nhưng khó khăn để giải mã và kỹ thuật đường

ống

Chỉ có 1 kích thước nhất đối với tất cả các lệnh

DLX, MIPS, Power PC, Sparc all có các lệnh 32 bit

Không có mật độ mã tốt nhưng dễ dàng giải mã và đường ống

Trang 44

Một lệnh chứa chỉ một toán tử hoặc một toán tử kèm theo

đằng sau một, hai, hoặc ba địa chỉ xác định chi tiết toán hạng.

hơn và thực hiện giải mã đơn giản hơn nhưng lãng phí vì tất cả các lệnh phải có độ dài bằng với một lệnh dài nhất.

Trang 45

Các khuôn dạng lệnh phổ biến

Trang 46

Các tiêu chí thiết kế khuôn dạng lệnh

Tốc độ bộ nhớ hiệu quả

Sử dụng hệ thống bộ nhớ phân cấp (các thanh ghi, cache, )

Dễ mã hoá

Tốc độ bộ xử lý (tốc độ mà các lệnh có thể thi hành)

Không gian địa chỉ

Kích thước truy cập (bao nhiêu byte một lần)

Độ phân giải truy nhập (từng byte, từng từ) (Độ phân giải càng tinh, địa chỉ càng dài hơn và các lệnh càng dài hơn)

Trang 47

Một khuôn dạng lệnh điển hình: với 4 bit toán tử và 3

trường địa chỉ 4 bit

Trang 48

Giả thuyết độ dài lệnh không

đổi, nhưng số lượng các toán

Toán tử 12-bit FF0-FFE

Lệnh 1 toán hạng

Toán hạng 2

Toán hạng 1

Toán tử 8-bit F0-FE

Lệnh 2 toán hạng

Toán hạng 3

Toán hạng 2

Toán hạng 1

Toán tử 4-bit 0-E

Lệnh 3 toán hạng

3 2

1 0

Khuôn dạng nửa byte

Trang 49

Ví dụ các khuôn dạng lệnh 1

Khuôn dạng 1: Mã lệnh 4 bit Các tác vụ được chỉ thị bởi các mã

lệnh 0-E F là mã mở rộng, chỉ thị các khuôn dạng 2, 3, hoặc 4

Khuôn dạng 2: Mã lệnh 8 bit Các tác vụ được chỉ thị bởi các mã

lệnh F0-FE FF is mã mở rộng, chỉ thị các khuôn dạng 3 hoặc 4.

Khuôn dạng: Mã lệnh 12 bit Opcode Các tác vụ được chỉ thị bởi

các mã lệnh FF0-FFE mã mở rộng chỉ thị khuôn dạng 4.

Khuôn dạng: Mã lệnh 16 bit Opcode Các tác vụ được chỉ thị bởi

các mã lệnh FFF0-FFFF.

4-bit operand 3 4-bit operand 2

4-bit operand 1 4-bit opcode: 0-E

4-bit operand 12-bit opcode: FF0-FFE

4-bit operand 2 4-bit operand 1

8-bit opcode: F0-FE

16-bit opcode: FFF0-FFFF

Trang 50

Address 1 0-E

15

Three Address

Field 4 Field 3

Field 2 Field 1

Number Instruction Type

4 3

2 1

Field

C-F 8-B

4-7 0-3

Bit

Lệnh 16-bit

Trang 53

Số học và logic: AND, ADD

Trang 54

4% register move

8

5% sub

7

6% and

6

8% add

5

12% store

4

16% compare

3

20% branch

2

22% load

1

Frequency Instruction

Rank

9

Trang 55

Tần suất tương đối của

Branches

4% 6%

Jumps

11% 13%

Call/Return

SPECfp92 SPECint92

Tác vụ

Trang 56

Các mục tiêu của bộ biên dịch

Tất cả các chương trình chuẩn biên dịch đúng

Hầu hết các chương trình đã biên dịch thi hành nhanh

Đạt được kích thước mã nhỏ

Cung cấp hỗ trợ gỡ rối

Cùng một bộ biên dịch có thể dùng nhiều ngôn ngữ khác nhau

Trang 57

Các bộ biên dịch sử dụng các giai đoạn để quản lý

Pha đầu

Chuyển đổi ngôn ngữ thành dạng trung gian

Tối ưu mức cao

Tạo ra các chuyển đổi nội tuyến và mạch vòng

Tối ưu toàn cầu

Tối ưu toàn cầu và cục bộ, cộng với phân pbổ thanh ghi

Bộ tạo mã (và hợp mã)

Loại từ sự phụ thuộc, chọn lọc lệnh và sắp lịch đường ống

Trang 58

Thiết kế ISA để nâng cao sự biên dịch

Cung cấp đủ các thanh ghi để cấp phát thanh ghi dễ dàng (nhiều

hơn 16)

Cung cấp các tập lệnh thường xuyên nhờ giữ các tác vụ, kiểu dữ

liệu và các chế độ địa chỉ trực giao

Cung cấp xây dựng ban đầu hơn là cố gẳng ánh xạ tới một ngôn

ngữ bậc cao

Cân bằng đơn giản giữa các lựa chọn

Cho phép bộ biên dịch trợ giúp thực hiện trường hợp chung

nhanh

Trang 60

Kết thúc bài 4

Ngày đăng: 12/08/2015, 16:28

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w