Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... ·...

91
1 Chương 1 GII THIU CHUNG Phm Quang Dũng Bmôn Khoa hc máy tính - Khoa CNTT Trường Đại hc Nông nghip I – Hà Ni website: www.hau1.edu.vn/it/pqdung ĐT: (04) 8766318 DĐ: 0988.149.189 Phm Quang Dũng Bài ging Kiến trúc máy tính 1.2 Chương 1: Gii thiu chung Ni dung chương 1 1.1. Máy tính và phân loi 1.2. Kiến trúc máy tính 1.3. Stiến hoá ca máy tính Phm Quang Dũng Bài ging Kiến trúc máy tính 1.3 Chương 1: Gii thiu chung 1.1. Máy tính và phân loi 1. Máy tính Máy tính (Computer) là thiết bđin tthc hin các công vic sau: Nhn thông tin vào, Xlý thông tin theo dãy các lnh được nhsn bên trong, Đưa thông tin ra. Dãy các lnh nm trong bnhđể yêu cu máy tính thc hin công vic cthđược gi là chương trình (program) Máy tính hot động theo chương trình. Phm Quang Dũng Bài ging Kiến trúc máy tính 1.4 Chương 1: Gii thiu chung Mô hình máy tính cơ bn

Transcript of Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... ·...

Page 1: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

1

Chương 1GIỚI THIỆU CHUNG

Phạm Quang Dũng

Bộ môn Khoa học máy tính - Khoa CNTT

Trường Đại học Nông nghiệp I – Hà Nội

website: www.hau1.edu.vn/it/pqdung

ĐT: (04) 8766318 DĐ: 0988.149.189

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.2

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

Nội dung chương 1

1.1. Máy tính và phân loại

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

1.3. Sự tiến hoá của máy tính

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.3

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

1.1. Máy tính và phân loại

1. Máy tính

Máy tính (Computer) là thiết bị điện tử thực hiện các công việc sau:

Nhận thông tin vào,

Xử lý thông tin theo dãy các lệnh được nhớ sẵn bên trong,

Đưa thông tin ra.

Dãy các lệnh nằm trong bộ nhớ để yêu cầu máy tính thực hiện công việc cụ thể được gọi là chương trình (program)

Máy tính hoạt động theo chương trình.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.4

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

Mô hình máy tính cơ bản

Page 2: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

2

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.5

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

Mô hình phân lớp của máy tính

Phần cứng: hệ thống vật lý của máy tính

Phần mềm: các chương trình và dữ liệu

Người sử dụng(End User) Người lập trình

(Programmer)

Người thiết kế HĐH(OS Designer)

Các chương trình ứng dụng(Application Programs)

Các phần mềm trung gian (Utilities)

Hệ điều hành (Operating System)

Phần cứng (Computer Hardware)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.6

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

2. Phân loại máy tính

Phân loại truyền thống:

Máy vi tính (Microcomputer)

Máy tính nhỏ (Minicomputer)

Máy tính lớn (Mainframe Computer)

Siêu máy tính (Supercomputer)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.7

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

Phân loại máy tính hiện đại

Máy tính để bàn (Desktop Computers)

Máy chủ (Servers)

Máy tính nhúng (Embedded Computers)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.8

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

Máy tính để bàn (Desktop)

Là loại máy tính phổ biến nhất

Các loại máy tính để bàn

Máy tính cá nhân (Personal Computer – PC)

Máy tính trạm làm việc (Workstation Computer)

1981 IBM giới thiệu máy tính IBM-PC sử

dụng bộ xử lý Intel 8088

1984 Apple đưa ra máy tính Macintosh sử

dụng bộ xử lý Motorola 68000

Giá thành: 300USD đến 10.000USD

Page 3: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

3

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.9

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

Máy chủ (Server)

Thực chất là máy phục vụ

Dùng trong mạng theo mô hình

Client/Server (Khách hàng/Người phục vụ)

Tốc độ và hiệu năng tính toán cao

Dung lượng bộ nhớ lớn

Độ tin cậy cao

Giá thành: hàng chục nghìn đến hàng chục

triệu USD.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.10

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

Máy tính nhúng (Embedded Computer)

Được đặt trong thiết bị khác để điều khiển thiết bị đó làm việc

Được thiết kế chuyên dụng

Ví dụ:

Điện thoại di động

Bộ điều khiển trong máy giặt, điều hoà nhiệt độ

Router - bộ định tuyến trên mạng

Giá thành: Vài USD đến hàng trăm nghìn USD.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.11

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

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

Kiến trúc máy tính bao gồm hai khía cạnh:

Kiến trúc tập lệnh (Intruction Set Architecture): nghiên cứu

máy tính theo cách nhìn của người lập trình.

Tổ chức máy tính (Computer Organization): nghiên cứu cấu

trúc phần cứng máy tính.

Kiến trúc tập lệnh thay đổi chậm, tổ chức máy tính thay đổi

rất nhanh.

Ví dụ: Các máy tính PC dùng các bộ xử lý Intel 32-bit từ

80386 đến Pentium 4:

Cùng chung kiến trúc tập lệnh (IA-32)

Có tổ chức khác nhau

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.12

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

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

Kiến trúc tập lệnh của máy tính bao gồm:

Tập lệnh: tập hợp các chuỗi số nhị phân mã

hoá cho các thao tác mà máy tính có thể thực

hiện.

Các kiểu dữ liệu: các kiểu dữ liệu mà máy tính

có thể xử lý.

Page 4: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

4

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.13

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

Cấu trúc cơ bản của máy tính

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.14

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

Các thành phần cơ bản của máy tính

Bộ xử lý trung tâm (Central Processing Unit):

Điều khiển hoạt động của máy tính và xử lý dữ liệu.

Bộ nhớ chính (Main Memory): Chứa các chương

trình và dữ liệu đang được sử dụng.

Hệ thống vào ra (Input/Output System): Trao

đổi thông tin giữa máy tính với bên ngoài.

Liên kết hệ thống (System Interconnection):

Kết nối và vận chuyển thông tin giữa các thành

phần với nhau.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.15

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

1.3. Sự tiến hoá của máy tính

Thế hệ thứ nhất: Máy tính dùng đèn điện tử

chân không (1943-1956)

Thế hệ thứ hai: Máy tính dùng transistor

(1957-1965)

Thế hệ thứ ba: Máy tính dùng vi mạch SSI,

MSI và LSI (1966-1980)

Thế hệ thứ tư: Máy tính dùng vi mạch VLSI,

SLSI (1981-nay)

http://www.computerhistory.org/timeline/timeline.php

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.16

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

1. Máy tính dùng đèn điện tử

ENIAC - Máy tính điện tử đầu tiên

Electronic Numerical Intergator And Computer

Dự án của Bộ Quốc phòng Mỹ

Do John Mauchly và John Presper Eckert ở Đại

học Pennsylvania thiết kế.

Bắt đầu từ năm 1943, hoàn thành năm 1946

Page 5: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

5

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.17

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

ENIAC (tiếp)

Nặng 30 tấn

Kích thước 140 m2

18000 đèn điện tử và 1500 rơle

5000 phép cộng/giây

Xử lý theo số thập phân

Bộ nhớ chỉ lưu trữ dữ liệu

Lập trình bằng cách thiết lập vị trí của các

chuyển mạch và các cáp nối.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.18

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

ENIAC (tiếp)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.19

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

ENIAC (tiếp)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.20

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

Máy tính von Neumann

Còn gọi là máy tính IAS:

Princeton Institute for Advanced Studies

Được bắt đầu từ 1947, hoàn thành 1952

Do John von Neumann thiết kế

Được xây dựng theo ý tưởng “chương trình được

lưu trữ” (stored-program concept) của von

Neumann/Turing (1945)

Page 6: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

6

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.21

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

Đặc điểm chính của máy tính IAS

Bao gồm các thành phần: đơn vị điều khiển, đơn vị số

học và logic (ALU), bộ nhớ chính và các thiết bị vào ra.

Bộ nhớ chính chứa chương trình và dữ liệu.

Bộ nhớ chính được đánh địa chỉ theo từng ngăn nhớ,

không phụ thuộc vào nội dung của nó.

ALU thực hiện các phép toán với số nhị phân.

Đơn vị điều khiển nhận lệnh từ bộ nhớ, giải mã và thực

hiện lệnh một cách tuần tự.

Đơn vị điều khiển điều khiển hoạt động của các thiết bị

vào-ra.

Trở thành mô hình cơ bản của máy tính.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.22

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

John von Neumann và máy tính IAS

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.23

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

Các máy tính thương mại ra đời

1947 - Eckert-Mauchly Computer Corporation

UNIVAC I (Universal Automatic Computer)

1950s - UNIVAC II

Nhanh hơn

Bộ nhớ lớn hơn

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.24

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

John Mauchly và UNIVAC

Page 7: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

7

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.25

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

UNIVAC

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.26

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

Hãng IBM

IBM – International Business Machine

1952 – IBM 701

Máy tính lưu trữ chương trình đầu tiên của IBM

Sử dụng cho tính toán khoa học

1955 – IBM 702

Các ứng dụng thương mại

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.27

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

IBM 701 (1952) và IBM 702 (1955)

IBM 701

IBM 702

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.28

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

2. Máy tính dùng transistor

Máy tính PDP-1 của DEC (Digital Equipment

Corporation) máy tính mini đầu tiên

IBM 7000

Hàng trăm nghìn phép cộng trong một giây

Các ngôn ngữ lập trình bậc cao ra đời.

Page 8: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

8

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.29

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

DEC's PDP-1 (1960)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.30

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

IBM 7030 (1961)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.31

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

3. Máy tính dùng vi mạch SSI, MSI và LSI

Vi mạch (Integrated Circuit – IC): nhiều transistor và các phần tử khác được tích hợp trên một chip bán dẫn.

SSI (Small Scale Integratinon)

MSI (Medium Scale Integration)

LSI (Large Scale Integration)

VLSI (Very Large Scale Integration) (dùng cho máy tính hệ thứ tư)

Siêu máy tính xuất hiện: CRAY-1, VAX

Bộ vi xử lý (microprocessor) ra đời

Bộ xử lý đầu tiên Intel 4004 (1971).

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.32

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

Luật Moore

Gordon Moore - người đồng sáng lập Intel

Số transistors trên chip sẽ gấp đôi sau 18 tháng

Giá thành của chip hầu như không thay đổi

Mật độ cao hơn, do vậy đường dẫn ngắn hơn

Kích thước nhỏ hơn dẫn tới độ phức tạp tăng lên

Điện năng tiêu thụ ít hơn

Hệ thống có ít các chip liên kết với nhau, do đó

tăng độ tin cậy

Page 9: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

9

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.33

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

Tăng trưởng số transitor trong chip CPU

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.34

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

IBM 360 Family (1964-1968)

Có từ model 20 minicomputer (bộ nhớ 24 KB) đến model 91 supercomputer được xây dựng cho hệ thống phòng thủ tên lửa Bắc Mỹ.

http://www.beagle-ears.com/lars/engineer/comphist/ibm360.htm

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.35

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

IBM 360/40

Dùng HĐH DOS/360

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.36

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

IBM 360/67

Time sharing

system

Phần cứng hỗ trợ

virtual memory

Dùng HĐH CP-67

500 KB RAM

Page 10: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

10

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.37

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

IBM 360/91

Được thiết kế để xử lý dữ liệu tốc độ cao cho các ứng dụng khoa học

như khám phá không gian, vật lý nguyên tử, dự báo thời tiết toàn cầu.

16.6 triệu phép cộng/giây → 1000 bài toán với 200 tỷ phép tính/ngày.

2-6 MB main memory, CPU có 5 đơn vị xử lý đồng thời.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.38

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

PDP-11 (1972)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.39

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

Siêu máy tính CRAY-1 (1976)

Saymour Cray

HĐH Cray Operating System (COS),100-160 triệu phép tính dấu chấm động/giây (megaflops)Xử lý dữ liệu vector8 MB main memory

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.40

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

1977 - PC có tích hợp màn hình

Page 11: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

11

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.41

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

VAX 11/780 (1978) - máy tính 32-bit

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.42

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

Osborne 1 (1980) - máy tính khả chuyển

Máy tính "có thể di chuyển" đầu tiên, kích thước

nhỏ, nặng 24 pound (10,9 kg)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.43

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

4. Máy tính dùng vi mạch VLSI

Các sản phẩm chính của công nghệ VLSI:

Bộ vi xử lý (Microprocessor): CPU được chế tạo trên

một chip.

Vi mạch điều khiển tổng hợp (chipset): một hoặc

một vài vi mạch thực hiện được nhiều chức năng

điều khiển và nối ghép.

Bộ nhớ bán dẫn (Semiconductor Memory): ROM,

RAM

Các bộ vi điều khiển (Microcontroller): máy tính

chuyên dụng được chế tạo trên một chip.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.44

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

Các hệ thống máy tính hiện đại

Máy tính nhúng

Máy tính cá nhân (PC)

Máy trạm làm việc

Máy chủ (Servers)

Mạng máy tính

Internet - Mạng máy tính toàn cầu

Page 12: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

12

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.45

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

Một số Hệ thống Máy tính nhúng

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.46

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

Siêu máy tính Earth Simulator của NEC (2002)

Earth Simulator tại Cơ quan Khoa

học và Công nghệ biển Nhật Bản

(JAMSTEC), Yokohama, Japan

5200 processor

35860-40960 GFlops

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.47

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

Siêu máy tính ASC Purple của IBM (2005)

ASC Purple at Lawrence Livermore National Laboratory

10240 processor

40960 GB main memory

63390-77824 GFlops

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.48

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

Siêu máy tính BlueGene L của IBM (2005)

131702 processor

32768 GB main memory

280600-367000 GFlops

Page 13: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

1

Chương 2HỆ THỐNG MÁY TÍNH

Phạm Quang Dũng

Bộ môn Khoa học máy tính - Khoa CNTT

Trường Đại học Nông nghiệp I – Hà Nội

website: www.hau1.edu.vn/it/pqdung

ĐT: (04) 8766318 DĐ: 0988.149.189

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.2

Chương 2: Hệ thống máy tính

Nội dung chương 2

2.1. Các thành phần của máy tính

2.2. Hoạt động của máy tính

2.3. Liên kết hệ thống

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.3

Chương 2: Hệ thống máy tính

2.1. Các thành phần của máy tính

Bộ xử lý trung tâm (Central Processing Unit)

Bộ nhớ (Memory)

Hệ thống vào ra (Input/Output System)

Liên kết hệ thống (System Interconnection)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.4

Chương 2: Hệ thống máy tính

1. Bộ xử lý trung tâm (CPU)

Chức năng

điều khiển hoạt động của máy tính

xử lý dữ liệu

Nguyên tắc hoạt động cơ bản:

CPU hoạt động theo chương trình nằm trong bộ

nhớ chính.

Page 14: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

2

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.5

Chương 2: Hệ thống máy tính

Cấu trúc cơ bản của CPU

Đơn vị điều khiển

(CU)

Đơn vị số học và logic(ALU)

Tập các thanh ghi

(RF)

Đơn vị phối ghép bus (BIU)

bus điều khiển bus dữ liệu bus địa chỉ

bus bên trong

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.6

Chương 2: Hệ thống máy tính

Các thành phần cơ bản của CPU

Đơn vị điều khiển (Control Unit – CU): điều khiển hoạt

động của máy tính theo chương trình đã định sẵn.

Đơn vị số học và logic (Arithmetic and Logic Unit –

ALU): thực hiện các phép toán số học và các phép toán

logic trên các dữ liệu cụ thể.

Tập thanh ghi (Register File - RF): lưu giữ các thông tin

tạm thời phục vụ cho hoạt động của CPU.

Đơn vị nối ghép bus (Bus interface Unit - BIU): kết nối

và trao đổi thông tin giữa bus bên trong (internal bus)

và bus bên ngoài (external bus)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.7

Chương 2: Hệ thống máy tính

Tốc độ của bộ xử lý

Tốc độ của bộ xử lý:

Tính bằng số lệnh được thực hiện trong 1 giây

MIPS (Millions of Instructions per Second)

Khó đánh giá chính xác

Tần số xung nhịp của bộ xử lý:

Bộ xử lý hoạt động theo một xung nhịp (Clock)

có tần số xác định

Tốc độ của bộ xử lý được đánh giá gián tiếp

thông qua tần số của xung nhịp.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.8

Chương 2: Hệ thống máy tính

Tốc độ của bộ xử lý (tiếp)

Dạng xung nhịp:

T0 - chu kỳ xung nhịp

Tần số xung nhịp: f0 = 1/T0

Mỗi thao tác của bộ xử lý cần kT0

T0 càng nhỏ bộ xử lý chạy càng nhanh

Ví dụ: Máy tính dùng bộ xử lý Pentium IV 2GHz

Ta có f0 = 2 GHz = 2x109 Hz

T0 = 1/f0 = 1/(2x109) = 0,5 ns.

Page 15: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

3

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.9

Chương 2: Hệ thống máy tính

2. Bộ nhớ máy tính (Memory)

Chức năng: lưu trữ chương trình và dữ liệu.

Các thao tác cơ bản với bộ nhớ:

Đọc (Read)

Ghi (Write)

Các thành phần chính:

Bộ nhớ trong (Internal Memory)

Bộ nhớ ngoài (External Memory)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.10

Chương 2: Hệ thống máy tính

Các thành phần của bộ nhớ máy tính

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.11

Chương 2: Hệ thống máy tính

Bộ nhớ trong (Internal memory)

Chức năng và đặc điểm:

Chứa các thông tin mà CPU có thể trao đổi trực

tiếp

Tốc độ rất nhanh

Dung lượng không lớn

Sử dụng bộ nhớ bán dẫn: ROM, RAM

Các loại bộ nhớ trong:

Bộ nhớ chính

Bộ nhớ cache (bộ nhớ đệm nhanh)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.12

Chương 2: Hệ thống máy tính

Bộ nhớ chính (Main memory)

Chứa các chương trình và dữ

liệu đang được CPU sử dụng.

Tổ chức thành các ngăn nhớ

được đánh địa chỉ.

Ngăn nhớ thường được tổ chức

theo byte.

Nội dung của ngăn nhớ có thể

thay đổi, song địa chỉ vật lý của

ngăn nhớ luôn cố định.

0010101111010101000010100101100011111011

00000001001000110100

00001000 010111101010 011000000000 011110011101 100000101011 100111101011 101000101000 101111111111 110010101010 110100101011 111001010101 1111

Nội dung Địa chỉ

Page 16: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

4

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.13

Chương 2: Hệ thống máy tính

Bộ nhớ đệm nhanh (Cache memory)

Bộ nhớ có tốc độ nhanh được đặt đệm giữa

CPU và bộ nhớ chính nhằm tăng tốc độ CPU

truy nhập bộ nhớ

Dung lượng nhỏ hơn bộ nhớ chính

Tốc độ nhanh hơn

Cache thường được chia thành một số mức

Cache có thể được tích hợp trên chip vi xử lý.

Cache có thể có hoặc không.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.14

Chương 2: Hệ thống máy tính

Bộ nhớ ngoài (External memory)

Chức năng và đặc điểm:

Lưu giữ tài nguyên phần mềm của máy tính

Được kết nối với hệ thống dưới dạng các thiết bịvào-ra

Dung lượng lớn

Tốc độ chậm

Các loại bộ nhớ ngoài:

Bộ nhớ từ: đĩa cứng, đĩa mềm

Bộ nhớ quang: đĩa CD, DVD

Bộ nhớ bán dẫn: Flash disk, memory card

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.15

Chương 2: Hệ thống máy tính

3. Hệ thống vào-ra (Input/Output System)

Chức năng: trao đổi thông tin giữa máy tính

với thế giới bên ngoài.

Các thao tác cơ bản:

Vào dữ liệu (Input)

Ra dữ liệu (Output)

Các thành phần chính:

Các thiết bị ngoại vi (Peripheral Devices)

Các môđun vào-ra (IO Modules)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.16

Chương 2: Hệ thống máy tính

Cấu trúc cơ bản của hệ thống vào-ra

Cổng vào-ra

Cổng vào-ra

Cổng vào-ra

Thiết bị ngoại vi

Thiết bị ngoại vi

Thiết bị ngoại vi

Môđun vào-ra

Nối ghép với CPU và bộ nhớ chính

Page 17: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

5

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.17

Chương 2: Hệ thống máy tính

Các thiết bị ngoại vi

Chức năng: chuyển đổi dữ liệu giữa bên trong

và bên ngoài máy tính.

Các loại thiết bị ngoại vi (TBNV) cơ bản:

Thiết bị vào: bàn phím, chuột, máy quét …

Thiết bị ra: màn hình, máy in …

Thiết bị nhớ: các ổ đĩa …

Thiết bị truyền thông: MODEM …

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.18

Chương 2: Hệ thống máy tính

Môđun vào-ra

Chức năng: nối ghép các TBNV với máy tính.

Mỗi môđun vào-ra có một hoặc một vài cổng

vào-ra (I/O Port).

Mỗi cổng vào-ra được đánh một địa chỉ xác

định.

Các TBNV được kết nối và trao đổi dữ liệu với

máy tính thông qua các cổng vào-ra.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.19

Chương 2: Hệ thống máy tính

2.2. Hoạt động của máy tính

1. Thực hiện chương trình

Là hoạt động cơ bản của máy tính

Máy tính lặp đi lặp lại hai bước:

Nhận lệnh

Thực hiện lệnh

Thực hiện chương trình bị dừng nếu thực hiện

lệnh bị lỗi hoặc gặp lệnh dừng.

} chu trình lệnh

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.20

Chương 2: Hệ thống máy tính

Chu trình lệnh

Bắt đầu

Nhận lệnh

Thực hiện lệnh

Dừng

Page 18: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

6

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.21

Chương 2: Hệ thống máy tính

Quá trình nhận lệnh

Bắt đầu mỗi chu trình lệnh, CPU nhận lệnh từ

bộ nhớ chính.

Bộ đếm chương trình PC (Program Counter)

của CPU giữ địa chỉ của lệnh sẽ được nhận.

CPU nhận lệnh từ ngăn nhớ được trỏ bởi PC.

Lệnh được nạp vào thanh ghi lệnh IR

(Instruction Register)

Sau khi lệnh được nhận vào, nội dung PC tự

động tăng để trỏ sang lệnh kế tiếp.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.22

Chương 2: Hệ thống máy tính

Minh họa quá trình nhận lệnh

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.23

Chương 2: Hệ thống máy tính

Quá trình thực hiện lệnh

Bộ xử lý giải mã lệnh đã được nhận và phát tín hiệu điều khiển thực hiện thao tác mà lệnh yêu cầu.

Các kiểu thao tác của lệnh:

Trao đổi dữ liệu giữa CPU và bộ nhớ chính

Trao đổi dữ liệu giữa CPU và môđun vào-ra

Xử lý dữ liệu: thực hiện các phép toán số học hoặc phép toán logic với các dữ liệu

Điều khiển rẽ nhánh

Kết hợp các thao tác trên

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.24

Chương 2: Hệ thống máy tính

2. Ngắt (Interrupt)

Khái niệm: Ngắt là cơ chế cho phép CPU tạm dừng chương trình đang thực hiện để chuyển sang thực hiện một chương trình khác, gọi làchương trình con phục vụ ngắt.

Các loại ngắt:

Ngắt do lỗi khi thực hiện chương trình, ví dụ: tràn số, chia cho 0 …

Ngắt do lỗi phần cứng, ví dụ: lỗi bộ nhớ RAM

Ngắt do môđun vào-ra phát tín hiệu ngắt đến CPU yêu cầu trao đổi dữ liệu.

Page 19: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

7

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.25

Chương 2: Hệ thống máy tính

Hoạt động ngắt

Sau khi hoàn thành một lệnh, bộ xử lý kiểm tra tín hiệu ngắt.

Nếu không có ngắt bộ xử lý nhận lệnh tiếp theo của chương trình hiện tại.

Nếu có tín hiệu ngắt:

Tạm dừng chương trình đang thực hiện

Cất ngữ cảnh (các thông tin liên quan đến chương trình bịngắt)

Thiết lập PC trỏ đến chương trình con phục vụ ngắt

Chuyển sang thực hiện chương trình con phục vụ ngắt

Cuối chương trình con phục vụ ngắt, khôi phục ngữ cảnh vàtiếp tục chương trình đang bị tạm dừng.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.26

Chương 2: Hệ thống máy tính

Hoạt động ngắt (tiếp)

lệnhlệnhlệnhlệnhlệnh ilệnh i+1

RETURN

lệnh

lệnh

.

.

.

Chương trình đang thực hiện

.

.

.lệnh

Chương trình con phục vụ ngắt

lệnhlệnh

Ngắt ở đây

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.27

Chương 2: Hệ thống máy tính

Chu trình lệnh với ngắt

Bắt đầu

Nhận lệnh

Thực hiện lệnh

Dừng

Kiểm tracó ngắt hay

không?

Chuyển đến chương trình con

phục vụ ngắt

YN

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.28

Chương 2: Hệ thống máy tính

Xử lý với nhiều tín hiệu yêu cầu ngắt

Xử lý ngắt tuần tựKhi một ngắt đang được thực hiện, các ngắt khác sẽbị cấm

Bộ xử lý sẽ bỏ qua các ngắt tiếp theo trong khi đang xử lý một ngắt

Các ngắt vẫn đang đợi và được kiểm tra sau khi ngắt đầu tiên được xử lý xong

Các ngắt được thực hiện tuần tự

Xử lý ngắt ưu tiênCác ngắt được định nghĩa mức ưu tiên khác nhau

Ngắt có mức ưu tiên thấp hơn có thể bị ngắt bởi ngắt ưu tiên cao hơn xảy ra ngắt lồng nhau

Page 20: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

8

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.29

Chương 2: Hệ thống máy tính

3. Hoạt động vào-ra

Hoạt động vào-ra: là hoạt động trao đổi dữ liệu

giữa TBNV với bên trong máy tính.

Các kiểu hoạt động vào-ra:

CPU trao đổi dữ liệu với môđun vào-ra

Môđun vào-ra trao đổi dữ liệu trực tiếp với bộ

nhớ chính.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.30

Chương 2: Hệ thống máy tính

2.3. Liên kết hệ thống

1. Khái niệm chung về busBus: tập hợp các đường kết nối dùng để vận chuyển thông tin giữa các thành phần của máy tính với nhau.

Độ rộng bus: là số đường dây của bus có thểtruyền các bit thông tin đồng thời (chỉ dùng cho bus địa chỉ và bus dữ liệu)

Phân loại cấu trúc bus:Cấu trúc đơn bus

Cấu trúc đa bus

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.31

Chương 2: Hệ thống máy tính

Bus đồng bộ và bus không đồng bộ

Bus đồng bộ

Bus có đường tín hiệu Clock

Các sự kiện trên bus được xác định bởi xung

nhịp Clock.

Bus không đồng bộ

Không có đường tín hiệu Clock

Kết thúc một sự kiện này trên bus sẽ kích hoạt

cho một sự kiện tiếp theo.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.32

Chương 2: Hệ thống máy tính

2. Cấu trúc đơn bus

Page 21: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

9

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.33

Chương 2: Hệ thống máy tính

Bus địa chỉ

Chức năng: vận chuyển địa chỉ để xác định ngăn nhớ hay cổng vào-ra.

Độ rộng bus địa chỉ: xác định dung lượng bộnhớ cực đại của hệ thống.

Nếu độ rộng bus địa chỉ là N bit:

AN-1, AN-2, ... A2, A1, A0

dung lượng bộ nhớ cực đại là 2N byte

(còn gọi là không gian địa chỉ bộ nhớ)

Ví dụ: Bộ xử lý Intel Pentium có bus địa chỉ 32 bit không gian địa chỉ là 232 byte = 4 GB.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.34

Chương 2: Hệ thống máy tính

Bus dữ liệu

Chức năng:

vận chuyển lệnh từ bộ nhớ đến CPU

vận chuyển dữ liệu giữa CPU, các môđun nhớ và môđun vào-ra.

Độ rộng bus dữ liệu: xác định số bit dữ liệu cóthể được trao đổi đồng thời.

M bit: DM-1, DM-2, … D2, D1, D0

M thường là 8, 16, 32, 64, 128 bit

Ví dụ: Các bộ xử lý Pentium có bus dữ liệu là64 bit.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.35

Chương 2: Hệ thống máy tính

Bus điều khiển

Chức năng: vận chuyển các tín hiệu điều khiển

Các loại tín hiệu điều khiển:

Các tín hiệu phát ra từ CPU để điều khiển môđun

nhớ và môđun vào-ra

Các tín hiệu từ môđun nhớ hay môđun vào-ra

gửi đến yêu cầu CPU.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.36

Chương 2: Hệ thống máy tính

Một số tín hiệu điều khiển điển hình

Các tín hiệu phát ra từ CPU để điều khiển đọc-

ghi:

Memory Read (MEMR): điều khiển đọc dữ liệu từ

một ngăn nhớ có địa chỉ xác định lên bus dữ liệu

Memory Write (MEMW): điều khiển ghi dữ liệu

đến một ngăn nhớ có địa chỉ xác định

I/O Read (IOR): điều khiển đọc dữ liệu từ một

cổng vào-ra có địa chỉ xác định lên bus dữ liệu

I/O Write (IOW): điều khiển ghi dữ liệu có sẵn

trên bus dữ liệu ra một cổng có địa chỉ xác định.

Page 22: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

10

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.37

Chương 2: Hệ thống máy tính

Một số tín hiệu điều khiển điển hình (tiếp)

Các tín hiệu điều khiển ngắt:

Interrupt Request (INTR): tín hiệu từ bộ điều khiển vào-ra gửi đến yêu cầu ngắt CPU để trao đổi vào-ra. Tín hiệu INTR có thể bị che.

Interrupt Acknowledge (INTA): tín hiệu phát ra từ CPU báo cho bộ điều khiển vào-ra biết CPU chấp nhận ngắt để trao đổi vào-ra.

Non Markable Interrupt (NMI): tín hiệu ngắt không che được gửi đến CPU.

Reset: tín hiệu từ bên ngoài gửi đến CPU và các thành phần khác để khởi động lại máy tính.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.38

Chương 2: Hệ thống máy tính

Một số tín hiệu điều khiển điển hình (tiếp)

Các tín hiệu điều khiển bus:

Bus Request (BRQ): hay là Hold: tín hiệu từ môđun điều khiển vào-ra gửi đến yêu cầu CPU chuyển nhượng quyền sử dụng bus.

Bus Grant (BGT) hay là Hold Acknowledge (HLDA): tín hiệu phát ra từ CPU chấp nhận quyền sử dụng bus.

Lock: tín hiệu khóa không cho xin chuyển nhượng bus.

Unlock: tín hiệu mở khóa cho xin chuyển nhượng bus.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.39

Chương 2: Hệ thống máy tính

Đặc điểm của cấu trúc đơn bus

Bus hệ thống chỉ phục vụ được một yêu cầu

trao đổi dữ liệu tại một thời điểm.

Bus hệ thống phải có tốc độ bằng tốc độ bus

của môđun nhanh nhất trong hệ thống.

Bus hệ thống phụ thuộc vào cấu trúc bus (các

tín hiệu) của bộ xử lý các môđun nhớ và các

môđun vào-ra cũng phụ thuộc vào bộ xử lý.

Vì vậy cần phải phân cấp bus đa bus

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.40

Chương 2: Hệ thống máy tính

3. Phân cấp bus trong máy tính

Phân cấp bus cho các thành phần:

Bus của bộ xử lý

Bus của bộ nhớ chính

Các bus vào-ra

Phân cấp bus khác nhau về tốc độ

Bus bộ nhớ chính và các bus vào-ra không phụ

thuộc vào bộ xử lý cụ thể.

Page 23: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

11

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.41

Chương 2: Hệ thống máy tính

Các bus điển hình trong PC

Bus của bộ xử lý (Front Side Bus - FSB): có tốc độ nhanh

nhất.

Bus của bộ nhớ chính (nối ghép với các môđun RAM).

AGP bus (Accelerated Graphic Port) - Bus đồ họa tăng

tốc: nối ghép card màn hình tăng tốc.

PCI bus (Peripheral Component Interconnection): nối

ghép với các TBNV có tốc độ trao đổi dữ liệu nhanh.

USB (Universal Serial Bus): Bus nối tiếp đa năng

IDE (Integrated Driver Electronics): Bus kết nối với ổ đĩa

cứng hoặc ổ đĩa CD, DVD.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.42

Chương 2: Hệ thống máy tính

Phân cấp bus

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.43

Chương 2: Hệ thống máy tính

Máy tính Pentium IV dùng Chipset 925

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.44

Chương 2: Hệ thống máy tính

4. Phân xử bus

Có nhiều hơn một môđun điều khiển bus, vd CPU và

DMA controller, nhưng tại một thời điểm chỉ duy nhất 1

mođun có thể điều khiển bus cần phân xử bus.

Sự phân xử bus có thể là tập trung hoặc phân tán

Phân xử tập trung: có một thiết bị phần cứng điều

khiển sự truy nhập bus:

Được gọi là Bộ điều khiển bus (Bus Controller) hay

Trọng tài bus (Arbiter)

Có thể nằm trên CPU hoặc tách riêng

Phân xử phân tán: mỗi môđun có thể điều khiển bus,

nhưng có sự điều khiển logic trên tất cả các môđun.

Page 24: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

1

Chương 3BIỂU DIỄN DỮ LIỆU VÀSỐ HỌC MÁY TÍNH

Phạm Quang Dũng

Bộ môn Khoa học máy tính - Khoa CNTT

Trường Đại học Nông nghiệp I – Hà Nội

website: www.hau1.edu.vn/it/pqdung

ĐT: (04) 8766318 DĐ: 0988.149.189

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.2

Chương 3: Biểu diễn dữ liệu và số học máy tính

Nội dung chương 3

3.1. Các hệ đếm cơ bản

3.2. Mã hoá và lưu trữ dữ liệu trong máy tính

3.3. Biểu diễn số nguyên

3.4. Thực hiện các phép toán số học với số nguyên

3.5. Số dấu chấm động

3.6. Biểu diễn ký tự

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.3

Chương 3: Biểu diễn dữ liệu và số học máy tính

3.1. Các hệ đếm cơ bản

Hệ thập phân (Decimal System)

Con người sử dụng

Hệ nhị phân (Binary System)

Máy tính sử dụng

Hệ mười sáu (Hexadecimal System)

Dùng để viết gọn số nhị phân

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.4

Chương 3: Biểu diễn dữ liệu và số học máy tính

1. Hệ thập phân

Cơ số 10

10 chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Dùng n chữ số thập phân có thể biểu diễn được

10n giá trị khác nhau:

00...000 = 0

99...999 = 10n - 1

Page 25: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

2

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.5

Chương 3: Biểu diễn dữ liệu và số học máy tính

Ví dụ số thập phân

472.38 = 4x102 + 7x101 + 2x100 + 3x10-1 + 8x10-2

Các chữ số của phần nguyên:

472 : 10 = 47 dư 2

47 : 10 = 4 dư 7

4 : 10 = 0 dư 4

Các chữ số của phần lẻ:

0.38 x 10 = 3.8 phần nguyên = 3

0.8 x 10 = 8.0 phần nguyên = 8

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.6

Chương 3: Biểu diễn dữ liệu và số học máy tính

2. Hệ nhị phân

Cơ số 2

2 chữ số nhị phân: 0 và 1

Chữ số nhị phân gọi là bit (binary digit)

Bit là đơn vị thông tin nhỏ nhất

Dùng n bit có thể biểu diễn được 2n giá trị khác nhau:

00...000 = 0

11...111 = 2n-1

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.7

Chương 3: Biểu diễn dữ liệu và số học máy tính

Dạng tổng quát của số nhị phân

Có một số nhị phân A như sau:

A = anan-1...a1a0.a-1...a-m

Giá trị của A được tính như sau:

A = an2n + an-12n-1 +...+ a020 + a-12-1 +...+ a-m2-m

∑−=

=n

mi

iiaA 2

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.8

Chương 3: Biểu diễn dữ liệu và số học máy tính

Ví dụ số nhị phân

1101001.1011(2)6 5 4 3 2 1 0 -1 -2 -3 -4

= 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4

= 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625

= 105.6875(10)

Page 26: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

3

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.9

Chương 3: Biểu diễn dữ liệu và số học máy tính

Chuyển đổi số nguyên thập phân sang nhị phân

Phương pháp 1: chia dần cho 2 rồi lấy phần dư

Phương pháp 2: phân tích thành tổng của các

số 2i nhanh hơn

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.10

Chương 3: Biểu diễn dữ liệu và số học máy tính

Phương pháp chia dần cho 2

Ví dụ: chuyển đổi 105(10)

105:2 = 52 dư 1

52:2 = 26 dư 0

26:2 = 13 dư 0

13:2 = 6 dư 1

6:2 = 3 dư 0

3:2 = 1 dư 1

1:2 = 0 dư 1

Kết quả: 105(10) = 1101001(2)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.11

Chương 3: Biểu diễn dữ liệu và số học máy tính

Phương pháp phân tích thành tổng của các 2i

Ví dụ 1: chuyển đổi 105(10)

105 = 64 + 32 + 8 + 1 = 26 + 25 + 23 + 20

Kết quả: 105(10) = 0110 1001(2)

Ví dụ 2: 17000(10) = 16384 + 512 + 64 + 32 + 8

= 214 + 29 + 26 + 25 + 23

17000(10) = 0100 0010 0110 1000(2)15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

27 26 25 24 23 22 21 20

128 64 32 16 8 4 2 1

0 1 1 0 1 0 0 1

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.12

Chương 3: Biểu diễn dữ liệu và số học máy tính

Chuyển số lẻ thập phân sang nhị phân

Ví dụ 1: chuyển đổi 0.6875(10)

0.6875 x 2 = 1.375 phần nguyên = 1

0.375 x 2 = 0.75 phần nguyên = 0

0.75 x 2 = 1.5 phần nguyên = 1

0.5 x 2 = 1.0 phần nguyên = 1

Kết quả: 0.6875(10)=0.1011(2)

Page 27: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

4

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.13

Chương 3: Biểu diễn dữ liệu và số học máy tính

Chuyển đổi số lẻ thập phân sang nhị phân (tiếp)

Ví dụ 2: chuyển đổi 0.81(10)

0.81 x 2 = 1.62 phần nguyên = 1

0.62 x 2 = 1.24 phần nguyên = 1

0.24 x 2 = 0.48 phần nguyên = 0

0.48 x 2 = 0.96 phần nguyên = 0

0.96 x 2 = 1.92 phần nguyên = 1

0.92 x 2 = 1.84 phần nguyên = 1

0.84 x 2 = 1.68 phần nguyên = 1

0.81(10) ≈ 0.1100111(2)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.14

Chương 3: Biểu diễn dữ liệu và số học máy tính

Chuyển đổi số lẻ thập phân sang nhị phân (tiếp)

Ví dụ 3: chuyển đổi 0.2(10)

0.2 x 2 = 0.4 phần nguyên = 0

0.4 x 2 = 0.8 phần nguyên = 0

0.8 x 2 = 1.6 phần nguyên = 1

0.6 x 2 = 1.2 phần nguyên = 1

0.2 x 2 = 0.4 phần nguyên = 0

0.4 x 2 = 0.8 phần nguyên = 0

0.8 x 2 = 1.6 phần nguyên = 1

0.6 x 2 = 1.2 phần nguyên = 1

0.2(10) ≈ 0.00110011(2)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.15

Chương 3: Biểu diễn dữ liệu và số học máy tính

3. Hệ mười sáu (Hexa)

Cơ số 16

16 chữ số: 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F

Dùng để viết gọn cho số nhị phân: cứ một

nhóm 4 bit sẽ được thay thế bằng 1 chữ số

Hexa

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.16

Chương 3: Biểu diễn dữ liệu và số học máy tính

Quan hệ giữa số nhị phân và số Hexa4-bit Chữ số Hexa0000 0

0001 1

0010 2

0011 3

0100 4

0101 5

0110 6

0111 7

1000 8

1001 9

1010 A

1011 B

1100 C

1101 D

1110 E

1111 F

Ví dụ chuyển đổi số nhị phân số Hexa:

0000 00002 = 0016

1011 00112 = B316

0010 1101 1001 10102 = 2D9A16

1111 1111 1111 11112 = FFFF16

Page 28: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

5

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.17

Chương 3: Biểu diễn dữ liệu và số học máy tính

3.2. Mã hoá và lưu trữ dữ liệu trong máy tính

1. Nguyên tắc chung về mã hoá dữ liệu

Mọi dữ liệu đưa vào máy tính đều được mã

hoá thành số nhị phân

Các loại dữ liệu

Dữ liệu nhân tạo: do con người quy ước

Dữ liệu tự nhiên: tồn tại khách quan với con

người

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.18

Chương 3: Biểu diễn dữ liệu và số học máy tính

Mã hoá dữ liệu nhân tạo

Dữ liệu số nguyên: mã hoá theo một số chuẩn

qui ước

Dữ liệu số thực: mã hoá bằng số dấu chấm

động

Dữ liệu ký tự: mã hoá theo bộ mã ký tự

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.19

Chương 3: Biểu diễn dữ liệu và số học máy tính

Mã hóa và tái tạo tín hiệu vật lý

Các dữ liệu vật lý thông dụng:

Âm thanh

Hình ảnh

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.20

Chương 3: Biểu diễn dữ liệu và số học máy tính

Độ dài từ dữ liệu (word)

Độ dài từ dữ liệu là số bit được sử dụng để mã

hoá loại dữ liệu tương ứng

Thường là bội của 8 bit

VD: 8, 16, 32, 64 bit

Page 29: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

6

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.21

Chương 3: Biểu diễn dữ liệu và số học máy tính

2. Thứ tự lưu trữ các byte của dữ liệu

Bộ nhớ chính thường được tổ chức theo byte

Độ dài từ dữ liệu có thể chiếm từ một đến nhiều byte

cần phải biết thứ tự lưu trữ các byte trong bộ nhớchính với các dữ liệu nhiều byte.

Có 2 cách lưu trữ:

Lưu trữ đầu nhỏ (Little-endian): Byte thấp được lưu trữ ở ngăn nhớ có địa chỉ nhỏ hơn, byte cao được lưu trữ ở ngăn nhớ có địa chỉ lớn hơn.

Lưu trữ đầu to (Big-endian): Byte cao được lưu trữ ở ngăn nhớ có địa chỉ nhỏ hơn, byte thấp được lưu trữở ngăn nhớ có địa chỉ lớn hơn.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.22

Chương 3: Biểu diễn dữ liệu và số học máy tính

Ví dụ lưu trữ dữ liệu 32-bit

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.23

Chương 3: Biểu diễn dữ liệu và số học máy tính

Lưu trữ của các bộ xử lý điển hình

Intel 80x86 và các Pentium:

⇒ Little-endian

Motorola 680x0 và các bộ xử lý RISC:

⇒ Big-endian

Power PC và Itanium: cả hai

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.24

Chương 3: Biểu diễn dữ liệu và số học máy tính

3.3. Biểu diễn số nguyên

Có hai loại số nguyên:

Số nguyên không dấu (Unsigned Integer)

Số nguyên có dấu (Signed Integer)

Page 30: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

7

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.25

Chương 3: Biểu diễn dữ liệu và số học máy tính

1. Biểu diễn số nguyên không dấu

Nguyên tắc tổng quát: Dùng n bit biểu diễn số

nguyên không dấu A:

an-1an-2…..a2a1a0

Giá trị của A được tính như sau:

Dải biểu diễn của A: từ 0 đến 2n-1

∑−

=

=1

02

n

i

iiaA

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.26

Chương 3: Biểu diễn dữ liệu và số học máy tính

Các ví dụ

Ví dụ 1: Biểu diễn các số nguyên không dấu sau đây bằng 8-bit:

A=41 ; B=150

Giải:

A = 41 = 32 + 8 + 1 = 25 + 23 + 20

41 = 0010 1001

B = 150 = 128 + 16 + 4 + 2 = 27+24+22+21

150 = 1001 0110

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.27

Chương 3: Biểu diễn dữ liệu và số học máy tính

Các ví dụ (tiếp)

Ví dụ 2: Cho các số nguyên không dấu M, N được biểu diễn bằng 8-bit như sau:

M = 0001 0010

N = 1011 1001

Xác định giá trị của chúng?

Giải:

M = 0001 0010 = 24 + 21 = 16 + 2 = 18

N = 1011 1001 = 27 + 25 + 24 + 23 + 20

= 128 + 32 + 16 + 8 + 1 = 185

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.28

Chương 3: Biểu diễn dữ liệu và số học máy tính

Với n = 8 bit

Biểu diễn được các giá trị từ 0 đến 255

0000 0000 = 0 Chú ý:

0000 0001 = 1 1111 1111

0000 0010 = 2 + 0000 0001

0000 0011 = 3 1 0000 0000

… Vậy: 255 + 1 = 0?

1111 1111 = 255 do tràn nhớ ra ngoài

Page 31: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

8

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.29

Chương 3: Biểu diễn dữ liệu và số học máy tính

Trục số học số nguyên không dấu với n = 8 bit

Trục số học:

Trục số học máy tính:0

255254

12

3

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.30

Chương 3: Biểu diễn dữ liệu và số học máy tính

Với n = 16 bit, 32 bit, 64 bit

n = 16 bit: dải biểu diễn từ 0 đến 65535 (216-1)

0000 0000 0000 0000 = 0

0000 0000 1111 1111 = 255

0000 0001 0000 0000 = 256

1111 1111 1111 1111 = 65535

n= 32 bit: dải biểu diễn từ 0 đến 232-1

n= 64 bit: dải biểu diễn từ 0 đến 264-1

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.31

Chương 3: Biểu diễn dữ liệu và số học máy tính

2. Biểu diễn số nguyên có dấu

a. Số bù một và Số bù hai:Giả sử A là một số nhị phân, ta có:

Số bù một của A nhận được bằng cách đảo giá trị các bit của A

(Số bù hai của A) = (Số bù một của A) + 1

Ví dụ: với n= 8 bitGiả sử có A = 0010 0101

Số bù một của A = 1101 1010

+ 1

Số bù hai của A = 1101 1011

Vì A + (Số bù hai của A) = 0 dùng số bù hai đểbiểu diễn cho số âm

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.32

Chương 3: Biểu diễn dữ liệu và số học máy tính

b. Biểu diễn số nguyên có dấu bằng mã bù hai

Nguyên tắc tổng quát: Dùng n bit biểu diễn số

nguyên có dấu A:

an-1an-2…a2a1a0

Với A là số dương: bit an-1 = 0, các bit còn lại

biểu diễn độ lớn như số không dấu

Với A là số âm: được biểu diễn bằng số bù hai

của số dương tương ứng, vì vậy bit an-1 = 1

Page 32: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

9

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.33

Chương 3: Biểu diễn dữ liệu và số học máy tính

Biểu diễn số dương

Dạng tổng quát của số dương A:

0an-2…a2a1a0

Giá trị của số dương A:

Dải biểu diễn cho số dương: 0 đến 2n-1-1

∑−

=

=2

02

n

i

iiaA

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.34

Chương 3: Biểu diễn dữ liệu và số học máy tính

Biểu diễn số âm

Dạng tổng quát của số âm A:

1an-2…a2a1a0

Giá trị của số âm A:

Dải biểu diễn cho số âm: -1 đến -2n-1

∑−

=

− +−=2

0

1 22n

i

ii

n aA

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.35

Chương 3: Biểu diễn dữ liệu và số học máy tính

Biểu diễn tổng quát cho số nguyên có dấu

Dạng tổng quát của số nguyên A:

an-1an-2…a2a1a0

Giá trị của A được xác định như sau:

Dải biểu diễn: từ -(2n-1) đến +(2n-1-1)

∑−

=

−− +−=

2

0

11 22

n

i

ii

nn aaA

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.36

Chương 3: Biểu diễn dữ liệu và số học máy tính

Các ví dụ

Ví dụ 1. Biểu diễn các số nguyên có dấu sau đây bằng 8 bit:

A = +58 ; B = -80

Giải:A = +58 = 0011 1010

B = -80

Ta có: +80 = 0101 0000

Số bù một = 1010 1111

+ 1

Số bù hai = 1011 0000

Vậy: B = -80 = 1011 0000

Page 33: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

10

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.37

Chương 3: Biểu diễn dữ liệu và số học máy tính

Các ví dụ

Ví dụ 2: Hãy xác định giá trị của các số nguyên

có dấu được biểu diễn dưới đây:

P = 0110 0010

Q = 1101 1011

Giải:

P = 0110 0010 = 64 + 32 + 2 = +98

Q = 1101 1011 = -128+64+16+8+2+1 = -37

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.38

Chương 3: Biểu diễn dữ liệu và số học máy tính

Với n = 8 bit

Biểu diễn được các giá trị từ -128 đến +1270000 0000 = 00000 0001 = +10000 0010 = +2 Chú ý:0000 0011 = +3 +127 + 1 = -128

… -128 - 1 = +1270111 1111 = +127 do tràn xảy ra1000 0000 = - 1281000 0001 = - 127

…1111 1110 = -21111 1111 = -1

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.39

Chương 3: Biểu diễn dữ liệu và số học máy tính

Trục số học số nguyên có dấu với n = 8 bit

Trục số học:

Trục số học máy tính:

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.40

Chương 3: Biểu diễn dữ liệu và số học máy tính

Với n=16 bit, 32 bit, 64 bit

Với n=16 bit: biểu diễn từ -32768 đến +32767

0000 0000 0000 0000 = 0

0000 0000 0000 0001 = +1

0111 1111 1111 1111 = +32767

1000 0000 0000 0000 = - 32768

1111 1111 1111 1111 = -1

Với n=32 bit: biểu diễn từ -231 đến 231-1

Với n=64 bit: biểu diễn từ -263 đến 263-1

Page 34: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

11

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.41

Chương 3: Biểu diễn dữ liệu và số học máy tính

Chuyển đổi từ byte thành word

Đối với số dương:

+19 = 0001 0011 (8 bit)

+19 = 0000 0000 0001 0011 (16 bit)

thêm 8 bit 0 bên trái

Đối với số âm:

- 19 = 1110 1101 (8 bit)

- 19 = 1111 1111 1110 1101 (16 bit)

thêm 8 bit 1 bên trái

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.42

Chương 3: Biểu diễn dữ liệu và số học máy tính

3. Biểu diễn số nguyên theo mã BCD

Binary Coded Decimal Code

Dùng 4 bit để mã hoá cho các chữ số thập phân từ 0 đến 9

0 0000 5 0101

1 0001 6 0110

2 0010 7 0111

3 0011 8 1000

4 0100 9 1001

Có 6 tổ hợp không sử dụng:

1010, 1011, 1100, 1101, 1110, 1111

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.43

Chương 3: Biểu diễn dữ liệu và số học máy tính

Ví dụ số BCD

35 0011 0101BCD

61 0110 0001BCD

1087 0001 0000 1000 0111BCD

9640 1001 0110 0100 0000BCD

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.44

Chương 3: Biểu diễn dữ liệu và số học máy tính

Các kiểu lưu trữ số BCD

BCD không gói (Unpacked BCD): Mỗi số BCD

4-bit được lưu trữ trong 4-bit thấp của mỗi

byte.

Ví dụ: Số 35 được lưu trữ như sau:

BCD gói (Packed BCD): Hai số BCD được lưu

trữ trong 1 byte.

Ví dụ: số 35 được lưu trữ như sau:

0 0 1 1 0 1 0 1

0 0 1 1 0 1 0 1

Page 35: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

12

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.45

Chương 3: Biểu diễn dữ liệu và số học máy tính

3.4. Thực hiện các phép toán số học với số nguyên

1. Phép cộng số nguyên không dấuBộ cộng n-bit

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.46

Chương 3: Biểu diễn dữ liệu và số học máy tính

Nguyên tắc cộng số nguyên không dấu

Khi cộng hai số nguyên không dấu n-bit, kết

quả nhận được là n-bit:

Nếu không có nhớ ra khỏi bit cao nhất thì kết quả

nhận được luôn luôn đúng (Cout = 0).

Nếu có nhớ ra khỏi bit cao nhất thì kết quả nhận

được là sai, ⇔ có tràn nhớ ra ngoài (Cout = 1).

Tràn nhớ ra ngoài (Carry Out) xảy ra khi tổng >2n-1

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.47

Chương 3: Biểu diễn dữ liệu và số học máy tính

Ví dụ cộng số nguyên không dấu

57 = 0011 1001+ 34 = + 0010 0010

91 0101 1011 = 64+16+8+2+1= 91 đúng

209 = 1101 0001+ 73 = 0100 1001282 1 0001 1010 = 16 + 8 + 2 = 26 sai

có tràn nhớ ra ngoài (Cout = 1)

Để có kết quả đúng ta thực hiện cộng theo 16-bit:209 = 0000 0000 1101 0001

+ 73 = + 0000 0000 0100 10010000 0001 0001 1010 = 256+16+8+2 = 282

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.48

Chương 3: Biểu diễn dữ liệu và số học máy tính

2. Phép đảo dấu

Ta có:+ 37 = 0010 0101

bù một = 0101 1010+ 1

bù hai = 1101 1011 = -37

Lấy bù hai của số âm:- 37 = 1101 1011

bù một = 0010 0100+ 1

bù hai = 0010 0101 = +37

Kết luận: Phép đảo dấu trong máy tính thực chất là lấy bù 2

Page 36: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

13

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.49

Chương 3: Biểu diễn dữ liệu và số học máy tính

3. Cộng số nguyên có dấu

Khi cộng 2 số nguyên có dấu n-bit không quan

tâm đến bit Cout và kết quả nhận được là n-bit:

Cộng 2 số khác dấu: kết quả luôn luôn đúng.

Cộng 2 số cùng dấu:

Nếu dấu kết quả cùng dấu với các số hạng thì kết quả

là đúng.

Nếu kết quả có dấu ngược lại, khi đó có tràn xảy ra

(Overflow) và kết quả là sai.

Tràn xảy ra khi tổng nằm ngoài dải biểu diễn

[-(2n-1),+(2n-1-1)]

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.50

Chương 3: Biểu diễn dữ liệu và số học máy tính

Ví dụ cộng số nguyên có dấu không tràn

(+70) = 0100 0110+ (+42) = 0010 1010

+112 0111 0000 = +112

(+97) = 0110 0001+ (- 52) = 1100 1100

+45 1 0010 1101 = +45

(- 90) = 1010 0110+ (+36) = 0010 0100

- 54 1100 1010 = -54

(- 74) = 1011 0110+ (- 30) = 1110 0010

- 104 1 1001 1000 = -104

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.51

Chương 3: Biểu diễn dữ liệu và số học máy tính

Ví dụ cộng số nguyên có dấu bị tràn

(+75) = 0100 1011+ (+82) = 0101 0010

+157 1001 1101= -128 + 16 + 8 + 4 + 1 = -99 sai

(- 104) = 1001 1000+ (- 43) = 1101 0101

- 147 1 0110 1101= 64 + 32 + 8 + 4 + 1 = +109 sai

Cả 2 ví dụ trên đều tràn vì tổng nằm ngoài dải biểu diễn [-128, +127]

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.52

Chương 3: Biểu diễn dữ liệu và số học máy tính

4. Nguyên tắc thực hiện phép trừ

Phép trừ 2 số nguyên: X – Y = X + (-Y)

Nguyên tắc: Lấy bù hai của Y để được –Y, rồi cộng với X

Page 37: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

14

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.53

Chương 3: Biểu diễn dữ liệu và số học máy tính

5. Nhân số nguyên không dấu

Các thanh ghi M,

Q, A: n bit

C: 1 bit

2 thừa số là n-bit

tích là số 2n-bit

được chứa trong

cặp thanh ghi A, Q

Bắt đầu

Dừng

C 0; A 0M số bị nhân

Q số nhân; BĐ = n

Q0 = 1

C, A A + M

Dịch phải C, A, QBĐ BĐ - 1

BĐ = 0

YN

Y

N

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.54

Chương 3: Biểu diễn dữ liệu và số học máy tính

Ví dụ 1011 x 1101 (11 x 13 = 143)

n = 4

Số bị nhân = 1011 M

Số nhân = 1101 Q

C A Q

0 0000 1101 / các giá trị khởi đầu /

1011

0 1011 1101 C, A A + M

0 0101 1110 Dịch phải 1 bit n = 3

0 0010 1111 Dịch phải 1 bit n = 2

1011

0 1101 1111 C, A A + M

0 0110 1111 Dịch phải 1 bit n = 1

1011

1 0001 1111 C, A A + M

0 1000 1111 Dịch phải 1 bit n = 0

+

+

+

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.55

Chương 3: Biểu diễn dữ liệu và số học máy tính

6. Nhân số nguyên có dấu

Phương pháp 1:

1. Chuyển đổi các thừa số thành số dương

2. Nhân 2 số dương như số nguyên không dấu

3. Hiệu chỉnh dấu của kết quả:

Nếu 2 thừa số cùng dấu không cần hiệu chỉnh

Nếu 2 thừa số khác dấu đảo dấu kết quả bằng

cách lấy bù 2.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.56

Chương 3: Biểu diễn dữ liệu và số học máy tính

Nhân số nguyên có dấu (tiếp)

Phương pháp 2:

Sử dụng thuật

toán nhân nhanh

Booth

Page 38: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

15

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.57

Chương 3: Biểu diễn dữ liệu và số học máy tính

Ví dụ (+7) x (-3) = (-21) theo Booth

n = 4

Số bị nhân =

0111 M

-M = 1001

310 = 0011

-310 = 1101

(Số nhân) Q

A Q Q-1

0000

1001

1001

1100

0111

0011

0001

1001

1010

1101

1110

0 / các giá trị khởi đầu /1101

1101

1110

1110

1111

1111

0111

0 A A - M = A + (-M)

1 Dịch phải, giữ dấu A, n = 3

1 A A + M

0 Dịch phải, giữ dấu A, n = 2

0 A A - M

1 Dịch phải, giữ dấu A, n = 1

1011 1 Dịch phải, giữ dấu A, n = 0

+

+

+

1

Bỏ đi

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.58

Chương 3: Biểu diễn dữ liệu và số học máy tính

7. Chia số nguyên không dấu

Khôi phục A

Thương chứa trong Q,

Phần dư chứa trong A

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.59

Chương 3: Biểu diễn dữ liệu và số học máy tính

Ví dụ 7:3 = 2 dư 1

n = 4

Số bị chia =

0111 Q

Số chia = 310

= 0011 M

-M = 1101

A Q

0000

0000

1101

0000

0001

1110

0001

0011

0000

0000

0001

1110 A A - M

0001 0010 Khôi phục A, n = 0

/ các giá trị khởi đầu /0111

1110

1110

1100

1100

1000

1001

Dịch trái

A A - M = A + (-M)

Khôi phục A, n = 3

Dịch trái

A A - M

Khôi phục A, n = 2

Dịch trái

A A - M

Q0 1, n = 1

Dịch trái0010

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.60

Chương 3: Biểu diễn dữ liệu và số học máy tính

8. Chia số nguyên có dấu

Sử dụng thuật giải chia số nguyên không dấu

Đổi số bị chia và số chia dương

Chia như số nguyên không dấu thương và

phần dư (đều là số dương)

Hiệu chỉnh dấu:

(+) : (+) không hiệu chỉnh dấu kết quả

(+) : (-) đảo dấu thương

(-) : (+) đảo dấu thương và phần dư

(-) : (-) đảo dấu phần dư

Page 39: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

16

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.61

Chương 3: Biểu diễn dữ liệu và số học máy tính

3.5. Số dấu chấm động

1. Nguyên tắc chung

Floating Point Number biểu diễn cho số thực

Tổng quát: một số thực X được biểu diễn theo

kiểu số dấu chấm động như sau:

X = M * RE

M là phần định trị (Mantissa),

R là cơ số (Radix),

E là phần mũ (Exponent).

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.62

Chương 3: Biểu diễn dữ liệu và số học máy tính

2. Chuẩn IEEE754/85

Cơ số R = 2

Các dạng:

Dạng 32-bit

Dạng 44-bit

Dạng 64-bit

Dạng 80-bit

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.63

Chương 3: Biểu diễn dữ liệu và số học máy tính

Các dạng biểu diễn chính

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.64

Chương 3: Biểu diễn dữ liệu và số học máy tính

Dạng 32-bit

S là bit dấu:

S = 0 Số dương

S = 1 Số âm

e (8 bit) là mã excess-127 của phần mũ E:

e = E + 127 E = e – 127

giá trị 127 được gọi là độ lệch (bias)

m (23 bit) là phần lẻ của phần định trị M:

M = 1.m

Công thức xác định giá trị của số thực:

X = (-1)S*1.m*2e-127

Page 40: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

17

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.65

Chương 3: Biểu diễn dữ liệu và số học máy tính

Ví dụ 1

Xác định giá trị của số thực được biểu diễn bằng 32-bit như sau:

1100 0001 0101 0110 0000 0000 0000 0000

S = 1 Số âm

e = 1000 00102 = 130 E = 130 – 127 = 3

Vậy:

X = -1.10101100 * 23 = -1101.011 = -13.375

0011 1111 1000 0000 0000 0000 0000 0000 = ?

= +1.0

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.66

Chương 3: Biểu diễn dữ liệu và số học máy tính

Ví dụ 2

Biểu diễn số thực X = 83.75 về dạng số dấu

chấm động IEEE754 32-bit

Giải:

X = 83.7510 = 1010011.112 = 1.01001111 x 26

Ta có:

S = 0 vì đây là số dương

E = e-127=6 e = 127+6=13310 = 1000 01012

Vậy:

X = 0100 0010 1010 0111 1000 0000 0000 0000

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.67

Chương 3: Biểu diễn dữ liệu và số học máy tính

Các quy ước đặc biệt

Các bit của e bằng 0, các bit của m bằng 0, thì X= ± 0

x000 0000 0000 0000 0000 0000 0000 0000 X= ± 0

Các bit của e bằng 1, các bit của m bằng 0, thì X= ± ∞

x111 1111 1000 0000 0000 0000 0000 0000 X= ± ∞

Các bit của e bằng 1, còn m có ít nhất 1 bit bằng 1, thì

nó không biểu diễn cho số nào cả (NaN – not a number)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.68

Chương 3: Biểu diễn dữ liệu và số học máy tính

Dải giá trị biểu diễn

2-127 đến 2+127

10-38 đến 10+38

Page 41: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

18

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.69

Chương 3: Biểu diễn dữ liệu và số học máy tính

Dạng 64-bit

S là bit dấu

e (11 bit) là mã excess-1023 của phần mũ E:

E = e – 1023

m (52 bit) là phần lẻ của phần định trị M:

Giá trị của số thực:

X = (-1)S*1.m*2e-1023

Dải giá trị biểu diễn: 10-308 đến 10+308

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.70

Chương 3: Biểu diễn dữ liệu và số học máy tính

Dạng 80-bit

S là bit dấu

e (15 bit) là mã excess-16383 của phần mũ E:

E = e – 16383

m (64 bit) là phần lẻ của phần định trị M:

Giá trị của số thực:

X = (-1)S*1.m*2e-16383

Dải giá trị biểu diễn: 10-4932 đến 10+4932

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.71

Chương 3: Biểu diễn dữ liệu và số học máy tính

3.6. Biểu diễn ký tự

Bộ mã ASCII (American Standard Code for

Information Interchange)

Bộ mã Unicode

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.72

Chương 3: Biểu diễn dữ liệu và số học máy tính

1. Bộ mã ASCII

Do ANSI (American National Standard

Institute) thiết kế

Bộ mã 8 bit có thể mã hóa được 28 =256 ký

tự, có mã từ: 0016 ÷ FF16 , trong đó:

128 ký tự chuẩn, có mã từ 0016 ÷ 7F16

128 ký tự mở rộng, có mã từ 8016 ÷ FF16

Page 42: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

19

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.73

Chương 3: Biểu diễn dữ liệu và số học máy tính

ASCII Character

Code128 ký tự

chuẩn

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.74

Chương 3: Biểu diễn dữ liệu và số học máy tính

Các ký tự chuẩn

26 chữ cái hoa ‘A’ đến ‘Z’ có mã từ 4116 đến 5A16 (65 đến 90)

‘A’ 0100 0001 = 4116

‘B’ 0100 0010 = 4216

...

‘Z’ 0101 1010 = 5A16

26 chữ cái thường ‘a’ đến ‘z’ có mã từ 6116 đến 7A16 (97 đến 122)

‘a’ 0110 0001 = 6116

‘b’ 0110 0010 = 6216

...

‘z’ 0111 1010 = 7A16

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.75

Chương 3: Biểu diễn dữ liệu và số học máy tính

Các ký tự chuẩn (tiếp)

10 chữ số thập phân từ 0 đến 9 có mã từ 3016

đến 3916 (48 đến 57)

‘0’ 0011 0000 = 3016

‘1’ 0011 0001 = 3116

‘2’ 0011 0010 = 3216

...

‘9’ 0011 1001 = 3916

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.76

Chương 3: Biểu diễn dữ liệu và số học máy tính

Các ký tự chuẩn (tiếp)

Các ký hiệu khác:

Các dấu câu: . , : ; ...

Các dấu phép toán: + - * / % ...

một số ký hiệu thông dụng: &, $, @, #

dấu cách (space)

Page 43: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

20

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.77

Chương 3: Biểu diễn dữ liệu và số học máy tính

Các mã điều khiển: có mã 0016 ÷ 1F16 và 7F16

Các mã ký tự điều khiển định dạng (điều khiển màn

hình, máy in …):

BS, HT, LF, VT, FF, CR

Các mã ký tự điều khiển truyền tin:

SOH, STX, ETX, EOT, ENQ, ACK, NAK, SYN, ETB

Các mã ký tự điều khiển phân cách thông tin:

FS, GS, RS, US

Các mã ký tự điều khiển khác:

NUL, BEL, SO, SI, DLE, DC1+DC4, CAN, EM, SUB,

ESC, DEL

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.78

Chương 3: Biểu diễn dữ liệu và số học máy tính

Các ký tự mở rộng: có mã 8016 ÷ FF16

Các ký tự mở rộng được định nghĩa bởi:

nhà chế tạo máy tính

người phát triển phần mềm

Ví dụ:

Bộ mã ký tự mở rộng của IBM IBM-PC.

Bộ mã ký tự mở rộng của Apple Macintosh.

Có thể thay đổi các ký tự mở rộng để mã hóa

cho các ký tự riêng của tiếng Việt, ví dụ như bộ

mã TCVN3.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.79

Chương 3: Biểu diễn dữ liệu và số học máy tính

2. Bộ mã hợp nhất Unicode

Do các hãng máy tính hàng đầu thiết kế

Bộ mã 16-bit

Bộ mã đa ngôn ngữ

Có hỗ trợ các ký tự tiếng Việt

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.80

Chương 3: Biểu diễn dữ liệu và số học máy tính

Unicode Character

Code256 ký tự

chuẩn

Page 44: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

1

Chương 4BỘ XỬ LÝ TRUNG TÂM(Central Processing Unit - CPU)

Phạm Quang Dũng

Bộ môn Khoa học máy tính - Khoa CNTT

Trường Đại học Nông nghiệp I – Hà Nội

website: www.hau1.edu.vn/it/pqdung

ĐT: (04) 8766318 DĐ: 0988.149.189

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.2

Chương 4: CPU

Nội dung chương 4

4.1. Cấu trúc cơ bản của CPU

4.2. Tập lệnh

4.3. Hoạt động của CPU

4.4. Cấu trúc của các bộ xử lý tiên tiến

4.5. Kiến trúc Intel

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.3

Chương 4: CPU

4.1. Cấu trúc cơ bản của CPU

1. Nhiệm vụ và cấu trúc của CPU

Nhiệm vụ của CPU

Nhận lệnh (Fetch Instruction): CPU đọc lệnh từ bộnhớ

Giải mã lệnh (Decode Instruction): Xác định thao tác mà lệnh yêu cầu

Nhận dữ liệu (Fetch Data): nhận dữ liệu từ bộ nhớhoặc các cổng vào-ra

Xử lý dữ liệu (Process Data): thực hiện phép toán sốhọc hay phép toán logic với các dữ liệu

Ghi dữ liệu (Write Data): ghi dữ liệu ra bộ nhớ hay cổng vào-ra

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.4

Chương 4: CPU

Sơ đồ cấu trúc cơ bản của CPU

Page 45: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

2

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.5

Chương 4: CPU

Các thành phần cơ bản của CPU

Đơn vị điều khiển (Control Unit – CU)

Đơn vị số học và logic (Arithmetic and

Logic Unit - ALU)

Tập thanh ghi (Register File - RF)

Đơn vị nối ghép bus (Bus Interface Unit -

BIU)

Bus bên trong (Internal Bus)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.6

Chương 4: CPU

2. Đơn vị số học và logic

Chức năng: Thực hiện các phép toán sốhọc và phép toán logic:

Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo dấu

Logic: AND, OR, XOR, NOT, phép dịch bit.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.7

Chương 4: CPU

Mô hình kết nối ALU

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.8

Chương 4: CPU

3. Đơn vị điều khiển

Chức năngĐiều khiển nhận lệnh từ bộ nhớ đưa vào thanh ghi lệnhTăng nội dung của PC để trỏ sang lệnh kếtiếpGiải mã lệnh đã được nhận để xác định thao tác mà lệnh yêu cầuPhát ra các tín hiệu điều khiển thực hiện lệnhNhận các tín hiệu yêu cầu từ bus hệ thống và đáp ứng với các yêu cầu đó.

Page 46: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

3

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.9

Chương 4: CPU

Mô hình kết nối đơn vị điều khiển

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.10

Chương 4: CPU

Các tín hiệu đưa đến đơn vị điều khiển

Clock: tín hiệu nhịp từ mạch tạo dao động

bên ngoài.

Mã lệnh từ thanh ghi lệnh đưa đến để giải

mã.

Các cờ từ thanh ghi cờ cho biết trạng thái

của CPU.

Các tín hiệu yêu cầu từ bus điều khiển

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.11

Chương 4: CPU

Các tín hiệu phát ra từ đơn vị điều khiển

Các tín hiệu điều khiển bên trong CPU:

Điều khiển các thanh ghi

Điều khiển ALU

Các tín hiệu điều khiển bên ngoài CPU:

Điều khiển bộ nhớ

Điều khiển các môđun vào-ra

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.12

Chương 4: CPU

4. Tập thanh ghi

Chức năng và đặc điểm:Tập hợp các thanh ghi nằm trong CPUChứa các thông tin tạm thời phục vụ cho hoạt động ở thời điểm hiện tại của CPUĐược coi là mức đầu tiên của hệ thống nhớTuỳ thuộc vào bộ xử lý cụ thểSố lượng thanh ghi nhiều tăng hiệu năng của CPUCó hai loại thanh ghi

Các thanh ghi lập trình đượcCác thanh ghi không lập trình được

Page 47: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

4

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.13

Chương 4: CPU

Phân loại thanh ghi theo chức năng

Thanh ghi địa chỉ: quản lý địa chỉ của ngăn

nhớ hay cổng vào-ra.

Thanh ghi dữ liệu: chứa tạm thời các dữ liệu

Thanh ghi đa năng: có thể chứa địa chỉ hoặc

dữ liệu.

Thanh ghi điều khiển/trạng thái: chứa các

thông tin điều khiển và trạng thái của CPU.

Thanh ghi lệnh: chứa lệnh đang được thực hiện

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.14

Chương 4: CPU

Một số thanh ghi điển hình

Các thanh ghi địa chỉ

Bộ đếm chương trình PC (Program Counter)

Con trỏ dữ liệu DP (Data Pointer)

Con trỏ ngăn xếp SP (Stack Pointer)

Thanh ghi cơ sở và thanh ghi chỉ số

(Base Register & Index Register)

Các thanh ghi dữ liệu

Thanh ghi trạng thái

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.15

Chương 4: CPU

Bộ đếm chương trình PC

Còn được gọi là con trỏ lệnh IP

(Instruction Pointer)

Giữ địa chỉ của lệnh tiếp theo sẽ được

nhận vào.

Sau khi một lệnh được nhận vào, nội dung

PC tự động tăng để trỏ sang lệnh kế tiếp.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.16

Chương 4: CPU

Minh họa bộ đếm chương trình

Page 48: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

5

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.17

Chương 4: CPU

Thanh ghi con trỏ dữ liệu

Chứa địa chỉ của ngăn nhớ dữ liệu mà

CPU muốn truy nhập

Thường có một số thanh ghi con trỏ dữ

liệu

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.18

Chương 4: CPU

Minh họa thanh ghi con trỏ dữ liệu

DP

Dữ liệu

Dữ liệu cần đọc/ghi

Dữ liệu

Dữ liệu

Dữ liệu

Dữ liệu

Dữ liệu

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.19

Chương 4: CPU

Ngăn xếp (Stack)

Ngăn xếp là vùng nhớ có cấu trúc LIFO

(Last In – First Out)

Ngăn xếp thường dùng để phục vụ cho chương trình con

Đáy ngăn xếp là một ngăn nhớ xác định

Đỉnh ngăn xếp là thông tin nằm ở vị trítrên cùng trong ngăn xếp

Đỉnh ngăn xếp có thể bị thay đổi

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.20

Chương 4: CPU

Con trỏ ngăn xếp SP (Stack Pointer)

SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếp

Khi cất một thông tin vào ngăn xếp:

Nội dung của SP tự động giảm

Thông tin được cất vào ngăn nhớ được trỏ bởi SP

Khi lấy một thông tin ra khỏi ngăn xếp:

Thông tin được đọc từ ngăn nhớ được trỏ bởi SP

Nội dung của SP tự động tăng

Khi ngăn xếp rỗng, SP trỏ vào đáy

Page 49: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

6

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.21

Chương 4: CPU

Minh họa con trỏ ngăn xếp SP

SP Đỉnh Stack

Đáy Stack

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.22

Chương 4: CPU

Thanh ghi cơ sở và thanh ghi chỉ số

Thanh ghi cơ sở: chứa địa chỉ của ngăn

nhớ cơ sở (địa chỉ cơ sở)

Thanh ghi chỉ số: chứa độ lệch địa chỉ giữa

ngăn nhớ mà CPU cần truy nhập so với

ngăn nhớ cơ sở (chỉ số)

Địa chỉ của ngăn nhớ cần truy nhập = địa

chỉ cơ sở + chỉ số

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.23

Chương 4: CPU

Minh họa thanh ghi cơ sở và thanh ghi chỉ số

Thanh ghi cơ sở

Thanh ghi chỉ số

Ngăn nhớ cơ sở

Ngăn nhớ cần truy nhập

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.24

Chương 4: CPU

Các thanh ghi dữ liệu

Chứa các dữ liệu tạm thời hoặc các kết

quả trung gian

Cần có nhiều thanh ghi dữ liệu

Các thanh ghi số nguyên: 8, 16, 32, 64

bit

Các thanh ghi số dấu chấm động

Page 50: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

7

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.25

Chương 4: CPU

Thanh ghi trạng thái (Status Register)

Còn gọi là thanh ghi cờ (Flag Register)

Chứa các thông tin trạng thái của CPU

Các cờ phép toán: báo hiệu trạng thái của kết quả

phép toán

Các cờ điều khiển: biểu thị trạng thái điều khiển của

CPU

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.26

Chương 4: CPU

Ví dụ cờ phép toán

Cờ Zero (cờ rỗng): được thiết lập lên 1 khi kết

quả của phép toán bằng 0.

Cờ Sign (cờ dấu): được thiết lập lên 1 khi kết quả

phép toán nhỏ hơn 0

Cờ Carry (cờ nhớ): được thiết lập lên 1 nếu phép

toán có nhớ ra ngoài bit cao nhất cờ báo tràn

với số không dấu.

Cờ Overflow (cờ tràn): được thiếp lập lên 1 nếu

cộng hai số nguyên cùng dấu mà kết quả có dấu

ngược lại cờ báo tràn với số có dấu.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.27

Chương 4: CPU

Ví dụ cờ điều khiển

Cờ Interrupt (Cờ cho phép ngắt)

Nếu IF = 1 CPU ở trạng thái cho phép ngắt với tín

hiệu yêu cầu ngắt từ bên ngoài gửi tới

Nếu IF = 0 CPU ở trạng thái cấm ngắt với tín hiệu

yêu cầu ngắt từ bên ngoài gửi tới

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.28

Chương 4: CPU

4.2. Tập lệnh

1. Giới thiệu chung về tập lệnh

Mỗi bộ xử lý có một tập lệnh xác định

Tập lệnh thường có hàng chục đến hàng trăm lệnh

Mỗi lệnh là một chuỗi số nhị phân mà bộ xử lý hiểu

được để thực hiện một thao tác xác định

Các lệnh được mô tả bằng các ký hiệu gợi nhớ

chính là các lệnh của hợp ngữ

Page 51: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

8

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.29

Chương 4: CPU

Các thành phần của lệnh máy

Mã thao tác (operation code → opcode): mã hóa cho thao tác mà bộ xử lý phải thực hiện

Địa chỉ toán hạng: chỉ ra nơi chứa các toán hạng mà thao tác sẽ tác động

Toán hạng nguồn: dữ liệu vào của thao tác

Toán hạng đích: dữ liệu ra của thao tác

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.30

Chương 4: CPU

2. Các kiểu thao tác

Chuyển dữ liệu

Xử lý số học với số nguyên

Xử lý logic

Điều khiển vào-ra

Chuyển điều khiển (rẽ nhánh)

Điều khiển hệ thống

Xử lý số dấu chấm động

Xử lý các dữ liệu chuyên dụng

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.31

Chương 4: CPU

Các lệnh chuyển dữ liệu

MOVE Copy dữ liệu từ nguồn đến đích

LOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lý

STORE Cất dữ liệu từ bộ xử lý đến bộ nhớ

EXCHANGE Trao đổi nội dung của nguồn và đích

CLEAR Chuyển các bit 0 vào toán hạng đích

SET Chuyển các bit 1 vào toán hạng đích

PUSH Cất nội dung toán hạng nguồn vào

ngăn xếp

POP Lấy nội dung đỉnh ngăn xếp đưa đến

toán hạng đích

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.32

Chương 4: CPU

Các lệnh số học

ADD Cộng hai toán hạng

SUBTRACT Trừ hai toán hạng

MULTIPLY Nhân hai toán hạng

DIVIDE Chia hai toán hạng

ABSOLUTE Lấy trị tuyệt đối toán hạng

NEGATE Đổi dấu toán hạng (lấy bù 2)

INCREMENT Tăng toán hạng thêm 1

DECREMENT Giảm toán hạng đi 1

COMPARE Trừ 2 toán hạng để lập cờ

Page 52: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

9

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.33

Chương 4: CPU

Các lệnh logic

AND Thực hiện phép AND hai toán hạng

OR Thực hiện phép OR hai toán hạng

XOR Thực hiện phép XOR hai toán hạng

NOT Đảo bit của toán hạng (lấy bù 1)

TEST Thực hiện phép AND 2 toán hạng để lập cờ

SHIFT Dịch trái (phải) toán hạng

ROTATE Quay trái (phải) toán hạng

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.34

Chương 4: CPU

Minh hoạ các lệnh AND, OR, XOR

Giả sử có hai thanh ghi chứa dữ liệu như sau:

(R1) = 1010 1010

(R2) = 0000 1111

R1 (R1) AND (R2) = 0000 1010

Phép toán AND dùng để xoá một số bit và giữ nguyên một số bit còn lại của toán hạng.

R1 (R1) OR (R2) = 1010 1111

Phép toán OR dùng để thiết lập một số bit và giữnguyên một số bit còn lại của toán hạng.

R1 (R1) XOR (R2) = 1010 0101

Phép toán XOR dùng để đảo một số bit và giữ nguyên một số bit còn lại của toán hạng.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.35

Chương 4: CPU

Các lệnh vào ra chuyên dụng

INPUT Copy dữ liệu từ một cổng xác

định đến đích

OUTPUT Copy dữ liệu từ nguồn đến

một cổng xác định

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.36

Chương 4: CPU

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

JUMP (BRANCH) - Lệnh nhảy không điều kiện:

Nạp vào PC một địa chỉ xác định

JUMP CONDITIONAL - Lệnh nhảy có điều kiện:

Điều kiện đúng nạp PC một địa chỉ xác định

Điều kiện sai không làm gì cả

CALL - Lệnh gọi chương trình con:

Cất nội dung của PC (địa chỉ trở về) ra một vị trí xác định (thường ở Stack)

Nạp vào PC địa chỉ của lệnh đầu tiên của chương trình con

RETURN - Lệnh trở về từ chương trình con:

Khôi phục địa chỉ trở về trả lại cho PC để trở về chương trình chính

Page 53: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

10

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.37

Chương 4: CPU

Lệnh rẽ nhánh không điều kiện

Chuyển tới thực hiện lệnh

ở vị trí có địa chỉ XXX:

PC XXX

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.38

Chương 4: CPU

Lệnh rẽ nhánh có điều kiện

Trong lệnh có kèm theo điều kiện

Kiểm tra điều kiện trong lệnh:

Nếu điều kiện đúng chuyển tới thực hiện lệnh ở vị

trí có địa chỉ XXX

PC XXX

Nếu điều kiện sai chuyển sang thực hiện lệnh kế

tiếp

Điều kiện thường được kiểm tra thông qua các cờ

Có nhiều lệnh rẽ nhánh có điều kiện

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.39

Chương 4: CPU

Minh họa lệnh rẽ nhánh có điều khiện

Lệnh

Lệnh kế tiếp

Lệnh rẽ nhánh XXX

Lệnh

Lệnh

Lệnh

Lệnh

...

LệnhXXX

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.40

Chương 4: CPU

Lệnh CALL và RETURN

Lệnh gọi chương trình con: lệnh CALLCất nội dung PC (chứa địa chỉ của lệnh kế tiếp) ra Stack

Nạp vào PC địa chỉ của lệnh đầu tiên của chương trình con được gọi

Bộ xử lý được chuyển sang thực hiện chương trình con tương ứng

Lệnh trở về từ chương trình con: lệnh RETURNLấy địa chỉ của lệnh kế tiếp được cất ở Stack nạp trả lại cho PC Bộ xử lý được điều khiển quay trởvề thực hiện tiếp lệnh nằm sau lệnh CALL

Page 54: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

11

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.41

Chương 4: CPU

Minh họa lệnh CALL và RETURN

Lệnh

Lệnh kế tiếp

CALL CTcon

Lệnh

RETURN

Lệnh

...

LệnhCTconLệnh đầu tiên của CTcon

...

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.42

Chương 4: CPU

Các lệnh điều khiển hệ thống

NO OPERATION Không thực hiện gì cả

HALT Dừng thực hiện chương trình

WAIT Tạm dừng thực hiện chương trình, lặp

kiểm tra điều kiện cho đến khi thoả mãn

thì tiếp tục thực hiện

LOCK Cấm không cho xin chuyển nhượng bus

UNLOCK Cho phép xin chuyển nhượng bus

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.43

Chương 4: CPU

3. Các phương pháp định địa chỉ (addressing modes)

Khái niệm về định địa chỉ (addressing)

Toán hạng của lệnh có thể là:

Một giá trị cụ thể

Nội dung của thanh ghi

Nội dung của ngăn nhớ hoặc cổng vào-ra

Phương pháp định địa chỉ là cách thức địa

chỉ hoá trong trường địa chỉ của lệnh để

xác định toán hạng.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.44

Chương 4: CPU

Các phương pháp định địa chỉ thông dụng

Định địa chỉ tức thì

Định địa chỉ thanh ghi

Định địa chỉ trực tiếp

Định địa chỉ gián tiếp qua thanh ghi

Định địa chỉ gián tiếp qua ngăn nhớ

Định địa chỉ dịch chuyển

Page 55: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

12

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.45

Chương 4: CPU

Định địa chỉ tức thì

Toán hạng nằm ngay trong Trường địa chỉ của lệnh

Chỉ có thể là toán hạng nguồn

Ví dụ:

ADD R1,5 ; R1 R1+5

Không tham chiếu bộ nhớ

Truy nhập toán hạng rất nhanh

Dải giá trị của toán hạng bị hạn chế

Sơ đồ định địa chỉ tức thì:

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.46

Chương 4: CPU

Định địa chỉ thanh ghi

Toán hạng được chứa trong thanh ghi có tên trong

Trường địa chỉ của lệnh

Ví dụ:

ADD R1, R2 ; R1 R1+R2

Số lượng thanh ghi ít Trường địa chỉ chỉ cần ít bit

Không tham chiếu bộ nhớ

Truy nhập toán hạng nhanh

Tăng số lượng thanh ghi hiệu quả hơn

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.47

Chương 4: CPU

Sơ đồ định địa chỉ thanh ghi

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.48

Chương 4: CPU

Định địa chỉ trực tiếp

Toán hạng là ngăn nhớ có địa chỉ được chỉ

ra trực tiếp trong Trường địa chỉ của lệnh

Ví dụ: ADD R1, A ; R1 R1+(A)

Cộng nội dung thanh ghi R1 với nội dung

của ngăn nhớ có địa chỉ là A

Tìm toán hạng trong bộ nhớ ở địa chỉ A

CPU tham chiếu bộ nhớ một lần để truy

nhập dữ liệu

Page 56: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

13

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.49

Chương 4: CPU

Sơ đồ định địa chỉ trực tiếp

Mã thao tác Địa chỉ

Toán hạng

Bộ nhớ

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.50

Chương 4: CPU

Định địa chỉ gián tiếp qua thanh ghi

Toán hạng là ngăn nhớ có địa chỉ nằm

trong thanh ghi

Trường địa chỉ của lệnh cho biết tên thanh

ghi đó

Thanh ghi có thể là ngầm định

Thanh ghi này được gọi là thanh ghi con trỏ

Vùng nhớ có thể được tham chiếu là lớn

(2n), (với n là độ dài của thanh ghi)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.51

Chương 4: CPU

Sơ đồ định địa chỉ gián tiếp qua thanh ghi

Mã thao tác Tên thanh ghi

Toán hạng

Bộ nhớ

Địa chỉ

Tập thanh ghi

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.52

Chương 4: CPU

Định địa chỉ gián tiếp qua ngăn nhớ

Ngăn nhớ được trỏ bởi Trường địa chỉ của

lệnh chứa địa chỉ của toán hạng

Có thể gián tiếp nhiều lần

Giống như khái niệm biến con trỏ và biến

động trong lập trình

CPU phải thực hiện tham chiếu bộ nhớ

nhiều lần để tìm toán hạng chậm

Vùng nhớ có thể được tham chiếu là lớn

Page 57: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

14

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.53

Chương 4: CPU

Sơ đồ định địa chỉ gián tiếp qua ngăn nhớ

Mã thao tác Địa chỉ

Địa chỉ

Toán hạng

Bộ nhớ

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.54

Chương 4: CPU

Định địa chỉ dịch chuyển

Để xác định toán hạng Trường địa chỉ của

lệnh chứa hai thành phần:

Tên thanh ghi

Hằng số

Địa chỉ của toán hạng = nội dung thanh ghi

+ hằng số

Thanh ghi có thể được ngầm định

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.55

Chương 4: CPU

Sơ đồ định địa chỉ dịch chuyển

Mã thao tác Tên thanh ghi

Toán hạng

Bộ nhớ

Tập thanh ghi

Hằng số

+

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.56

Chương 4: CPU

Các dạng của định địa chỉ dịch chuyển

Địa chỉ hoá tương đối với PC

Thanh ghi là Bộ đếm chương trình PC

Toán hạng có địa chỉ cách ngăn nhớ được trỏ bởi PC

một độ lệch xác định

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

Thanh ghi chứa địa chỉ cơ sở

Hằng số là chỉ số

Định địa chỉ chỉ số

Hằng số là địa chỉ cơ sở

Thanh ghi chứa chỉ số

Page 58: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

15

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.57

Chương 4: CPU

4.3. Hoạt động của CPU

1. Chu trình lệnh

Nhận lệnh

Giải mã lệnh

Nhận toán hạng

Thực hiện lệnh

Cất toán hạng

Ngắt

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.58

Chương 4: CPU

Nhận lệnh

CPU đưa địa chỉ của lệnh cần nhận từ bộ

đếm chương trình PC ra bus địa chỉ

CPU phát tín hiệu điều khiển đọc bộ nhớ

Lệnh từ bộ nhớ được đặt lên bus dữ liệu và

được CPU copy vào thanh ghi lệnh IR

CPU tăng nội dung PC để trỏ sang lệnh kế

tiếp

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.59

Chương 4: CPU

Sơ đồ mô tả quá trình nhận lệnh

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.60

Chương 4: CPU

Giải mã lệnh

Lệnh từ thanh ghi lệnh IR được đưa đến

đơn vị điều khiển

Đơn vị điều khiển tiến hành giải mã lệnh để

xác định thao tác phải thực hiện

Giải mã lệnh xảy ra bên trong CPU

Page 59: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

16

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.61

Chương 4: CPU

Nhận dữ liệu

CPU đưa địa chỉ của toán hạng ra bus địa

chỉ

CPU phát tín hiệu điều khiển đọc

Toán hạng được đọc vào CPU

Tương tự như nhận lệnh

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.62

Chương 4: CPU

Nhận dữ liệu gián tiếp

CPU đưa địa chỉ ra bus địa chỉ

CPU phát tín hiệu điều khiển đọc

Nội dung ngăn nhớ được đọc vào CPU, đóchính là địa chỉ của toán hạng

Địa chỉ này được CPU phát ra bus địa chỉ đểtìm ra toán hạng

CPU phát tín hiệu điều khiển đọc

Toán hạng được đọc vào CPU

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.63

Chương 4: CPU

Sơ đồ nhận toán hạng gián tiếp

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.64

Chương 4: CPU

Thực hiện lệnh

Có nhiều dạng tuỳ thuộc vào lệnh

Có thể là:

Đọc/Ghi bộ nhớ

Vào/Ra

Chuyển giữa các thanh ghi

Thao tác số học/logic

Chuyển điều khiển (rẽ nhánh)

Page 60: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

17

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.65

Chương 4: CPU

Ghi toán hạng

CPU đưa địa chỉ ra bus địa chỉ

CPU đưa dữ liệu cần ghi ra bus dữ liệu

CPU phát tín hiệu điều khiển ghi

Dữ liệu trên bus dữ liệu được copy đến vị trí

xác định

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.66

Chương 4: CPU

Sơ đồ mô tả quá trình ghi toán hạng

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.67

Chương 4: CPU

Ngắt

Nội dung của bộ đếm chương trình PC (địa chỉ trở

về sau khi ngắt) được đưa ra bus dữ liệu

CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn

xếp SP) ra bus địa chỉ

CPU phát tín hiệu điều khiển ghi bộ nhớ

Địa chỉ trở về trên bus dữ liệu được ghi ra vị trí xác

định (ở ngăn xếp)

Địa chỉ lệnh đầu tiên của chương trình con điều

khiển ngắt được nạp vào PC

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.68

Chương 4: CPU

Sơ đồ mô tả chu trình ngắt

Page 61: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

18

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.69

Chương 4: CPU

2. Đường ống lệnh (Instruction Pipelining)

Chia chu trình lệnh thành các công đoạn và cho phép

thực hiện gối lên nhau (như dây chuyền lắp ráp)

Chẳng hạn có 6 công đoạn:

Nhận lệnh (Fetch Instruction – FI)

Giải mã lệnh (Decode Instruction – DI)

Tính địa chỉ toán hạng (Calculate Operand Address – CO)

Nhận toán hạng (Fetch Operands – FO)

Thực hiện lệnh (Execute Instruction – EI)

Ghi toán hạng (Write Operands – WO)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.70

Chương 4: CPU

Biểu đồ thời gian của đường ống lệnh

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.71

Chương 4: CPU

Các xung đột của đường ống lệnh

Xung đột cấu trúc: do nhiều công đoạn

dùng chung một tài nguyên

Xung đột dữ liệu: lệnh sau sử dụng dữ liệu

kết quả của lệnh trước

Xung đột điều khiển: do rẽ nhánh gây ra

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.72

Chương 4: CPU

4.4. Cấu trúc chung của các bộ xử lý tiên tiến

Page 62: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

19

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.73

Chương 4: CPU

Các đơn vị xử lý dữ liệu

Các đơn vị số nguyên

Các đơn vị số dấu chấm động

Các đơn vị chức năng đặc biệt

Đơn vị xử lý dữ liệu âm thanh

Đơn vị xử lý dữ liệu hình ảnh

Đơn vị xử lý dữ liệu vector

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.74

Chương 4: CPU

Bộ nhớ cache

Được tích hợp trên chip vi xử lý

Bao gồm hai mức cache

Cache L1 gồm hai phần tách rời:

Cache lệnh

Cache dữ liệu

Giải quyết xung đột khi nhận lệnh và dữ liệu

Cache L2

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.75

Chương 4: CPU

Đơn vị quản lý bộ nhớ

Chuyển đổi địa chỉ ảo thành địa chỉ vật lý

Cung cấp cơ chế phân trang/phân đoạn

Cung cấp chế độ bảo vệ bộ nhớ

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.76

Chương 4: CPU

4.5. Kiến trúc Intel

Kiến trúc 4-bit: 4004

Kiến trúc 8-bit: 8008, 8080, 8085

Kiến trúc 16-bit: 8086/8088, 80186, 80286

Kiến trúc 32-bit: 80386, 80486,

Pentium, Pentium II

Celeron, Pentium III,

Pentium IV

Kiến trúc 64-bit: Itanium

128 bit?

Page 63: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

20

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.77

Chương 4: CPU

1. Kiến trúc 16-bit (IA-16)

Các thanh ghi bên trong: 16-bit

Xử lý các phép toán số nguyên với 16-bit

Quản lý bộ nhớ theo đoạn 64 KBytes

Mở đầu cho dòng máy tính IBM-PC

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.78

Chương 4: CPU

2. Kiến trúc 32-bit (IA-32)

Các thanh ghi bên trong: 32 bitXử lý các phép toán số nguyên với 32-bitCó 3 chế độ làm việc

Chế độ 8086 thực (Real 8086 mode): làm việc như một bộ xử lý 8086Chế độ 8086 ảo (Virtual 8086 mode): làm việc như nhiều bộ xử lý 8086 (đa nhiệm 16-bit)Chế độ bảo vệ (Protected mode)Đa nhiệm 32-bitQuản lý bộ nhớ ảo

Xử lý các phép toán số dấu chấm động (từ80486)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.79

Chương 4: CPU

3. Kiến trúc 64-bit (IA-64)

Các thanh ghi bên trong: 64 bit

Xử lý các phép toán số nguyên với 64-bit

Xử lý các phép toán số dấu chấm động

Không tương thích phần cứng với các bộ xử

lý trước đó

Tương thích phần mềm bằng cách giả lập

môi trường

Page 64: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

1

Chương 5BỘ NHỚ MÁY TÍNH

Phạm Quang Dũng

Bộ môn Khoa học máy tính - Khoa CNTT

Trường Đại học Nông nghiệp I – Hà Nội

website: www.hau1.edu.vn/it/pqdung

ĐT: (04) 8766318 DĐ: 0988.149.189

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.2

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

Nội dung chương 5

5.1. Tổng quan về hệ thống nhớ

5.2. Bộ nhớ bán dẫn

5.3. Bộ nhớ chính

5.4. Bộ nhớ cache

5.5. Bộ nhớ ngoài

5.6. Hệ thống nhớ trên máy tính cá nhân

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.3

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

5.1. Tổng quan về hệ thống nhớ

1. Các đặc trưng của hệ thống nhớ

Vị trí

Bên trong CPU:

tập thanh ghi

Bộ nhớ trong

bộ nhớ chính

bộ nhớ cache

Bộ nhớ ngoài: các thiết bị nhớ

Dung lượng

Độ dài từ nhớ (tính bằng bit: 16, 32 bit)

Số lượng từ nhớ

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.4

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

Các đặc trưng của hệ thống nhớ (tiếp)

Đơn vị truyền

Từ nhớ (word)

Khối nhớ (block)

Phương pháp truy nhập

Truy nhập tuần tự (băng từ)

Truy nhập trực tiếp (các loại đĩa)

Truy nhập ngẫu nhiên (bộ nhớ bán dẫn)

Truy nhập liên kết (cache)

Page 65: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

2

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.5

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

Các đặc trưng của hệ thống nhớ (tiếp)

Hiệu năng

Thời gian truy nhập

Chu kỳ nhớ

Tốc độ truyền

Kiểu vật lý

Bộ nhớ bán dẫn

Bộ nhớ từ

Bộ nhớ quang

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.6

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

Các đặc trưng của hệ thống nhớ (tiếp)

Các đặc tính vật lý

Khả biến/Không khả biến

(volatile/nonvolatile)

Xóa được/Không xóa được

Tổ chức

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.7

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

2. Phân cấp hệ thống nhớ

Từ trái sang phải:

dung lượng tăng dần

tốc độ giảm dần

giá thành/1 bit giảm dần

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.8

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

5.2. Bộ nhớ bán dẫn

1. Phân loại

Kiểu bộ nhớTiêu

chuẩnKhả năng

xóaCơ chế ghi

Tính khảbiến

Read Only Memory (ROM)

Mặt nạ

Programmable ROM (PROM)

Erasable PROM (EPROM)

Bằng tia cực tím, cả chip

Electrically Erasable PROM (EEPROM)

Bằng điện, mức từng byte

Flash MemoryBằng điện,

mức từng khối

Random Access Memory (RAM)

Bằng điện, mức từng byte

Khả biến

Bộ nhớ đọc-ghi

Bộ nhớhầu như chỉ đọc Bằng điện

Không khảbiến

Bộ nhớchỉ đọc

Không xóa được

Page 66: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

3

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.9

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

ROM (Read Only Memory)

Bộ nhớ không khả biến

Lưu trữ các thông tin sau:

Thư viện các chương trình con

Các chương trình điều khiển hệ thống (BIOS)

Các bảng chức năng

Vi chương trình

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.10

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

Các kiểu ROM

ROM mặt nạ:thông tin được ghi khi sản xuất

rất đắt

PROM (Programmable ROM)Cần thiết bị chuyên dụng để ghi bằng chương trình → chỉ ghi được 1 lần

EPROM (Erasable PROM)Cần thiết bị chuyên dụng để ghi bằng chương trình → ghi được nhiều lần

Trước khi ghi lại, xóa bằng tia cực tím

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.11

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

Các kiểu ROM (tiếp)

EEPROM (Electrically Erasable PROM)

Có thể ghi theo từng byte

Xóa bằng điện

Flash Memory (Bộ nhớ cực nhanh)

Ghi theo khối

Xóa bằng điện

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.12

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

RAM (Random Access Memory)

Bộ nhớ đọc-ghi (Read/Write Memory)

Khả biến

Lưu trữ thông tin tạm thời

Có 2 loại: SRAM và DRAM

Page 67: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

4

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.13

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

SRAM (Static RAM) - RAM tĩnh

Các bit được lưu trữ bằng các Flip-Flop

→ thông tin ổn định

Cấu trúc phức tạp

Dung lượng chip nhỏ

Tốc độ nhanh

Đắt tiền

Dùng làm bộ nhớ cache

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.14

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

DRAM (Dynamic RAM) - RAM động

Các bit được lưu trữ trên tụ điện

→ cần phải có mạch làm tươi

Cấu trúc đơn giản

Dung lượng lớn

Tốc độ chậm hơn

Rẻ tiền hơn

Dùng làm bộ nhớ chính

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.15

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

Các DRAM tiên tiến

Enhanced DRAM

Cache DRAM

Synchronous DRAM (SDRAM): làm việc được đồng bộ bởi xung đồng hồ

DDR-SDRAM (Double Data Rate SDRAM)

Rambus DRAM (RDRAM)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.16

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

2. Tổ chức của chip nhớ

Sơ đồ cơ bản của chip nhớ

Page 68: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

5

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.17

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

Các tín hiệu của chip nhớ

Các đường địa chỉ: An-1 ÷ A0 → có 2n từ nhớ

Các đường dữ liệu: Dm-1 ÷ D0 → độ dài từnhớ = m bit

Dung lượng chip nhớ = 2n x m bit

Các đường điều khiển:

Tín hiệu chọn chip CS (Chip Select)

Tín hiệu điều khiển đọc OE (Output Enable)

Tín hiệu điều khiển ghi WE (Write Enable)

Các tín hiệu điều khiển tích cực với mức 0

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.18

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

Tổ chức của DRAM

Dùng n đường địa chỉ dồn kênh → cho phép truyền 2n bit địa chỉ

Tín hiệu chọn địa chỉ hàng RAS (Row Address Select)

Tín hiệu chọn địa chỉ cột CAS (Column Address Select)

Dung lượng của DRAM = 22n x m bit

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.19

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

Chip nhớ

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.20

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

3. Thiết kế mô-đun nhớ bán dẫn

Dung lượng chip nhớ = 2n x m bit

Cần thiết kế để tăng dung lượng:

Thiết kế tăng độ dài từ nhớ

Thiết kế tăng số lượng từ nhớ

Thiết kế kết hợp

Page 69: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

6

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.21

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

Tăng độ dài từ nhớ

VD1:

Cho chip nhớ SRAM 4K x 4 bit

Thiết kế mô-đun nhớ 4K x 8 bit

Giải:

Dung lượng chip nhớ = 212 x 4 bit

chip nhớ có:12 chân địa chỉ

4 chân dữ liệu

mô-đun nhớ cần có:12 chân địa chỉ

8 chân dữ liệu

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.22

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

Ví dụ tăng độ dài từ nhớ

A11÷A0

D3÷D0

A11÷A0

A11÷A0

D3÷D0 D3÷D0

D7÷D4

CSWEOE

CS CSOEOE WEWE

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.23

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

Bài toán tăng độ dài từ nhớ tổng quát

Cho chip nhớ 2n x m bit

Thiết kế mô-đun nhớ 2n x (k.m) bit

Dùng k chip nhớ

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.24

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

Tăng số lượng từ nhớ

VD2:

Cho chip nhớ SRAM 4K x 8 bit

Thiết kế mô-đun nhớ 8K x 8 bit

Giải:

Dung lượng chip nhớ = 212 x 8 bit

chip nhớ có:12 chân địa chỉ

8 chân dữ liệu

Dung lượng mô-đun nhớ = 213 x 8 bit:13 chân địa chỉ

8 chân dữ liệu

Page 70: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

7

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.25

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

Ví dụ tăng số lượng từ nhớ

A

0

0

0

1

0 1

1 0

1 x 1 1

G Y0 Y1

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.26

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

Bộ giải mã 2→4

B A

0

0

0

0

0 0

0 1

1 0

1 1

0 1 1 1

1 0 1 1

1 1 0 1

1 1 1 0

1 x x 1 1 1 1

G Y0 Y1 Y2 Y3

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.27

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

Bài tập

1. Tăng số lượng từ nhớ gấp 4 lần:

Cho chip nhớ SRAM 4K x 8 bit

Thiết kế mô-đun nhớ 16K x 8 bit

2. Tăng số lượng từ nhớ gấp 8 lần:

Cho chip nhớ SRAM 4K x 8 bit

Thiết kế mô-đun nhớ 32K x 8 bit

3. Thiết kế kết hợp:

Cho chip nhớ SRAM 4K x 4 bit

Thiết kế mô-đun nhớ 8K x 8 bit

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.28

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

5.3. Bộ nhớ chính

1. Các đặc trưng cơ bản

Chứa các chương trình đang được thực hiện và các dữ liệu đang được sử dụng

Tồn tại trên mọi hệ thống máy tính

Bao gồm các ngăn nhớ được đánh địa chỉ trực tiếp bởi CPU

Dung lượng của bộ nhớ chính nhỏ hơn không gian địa chỉ bộ nhớ mà CPU quản lý

Việc quản lý logic bộ nhớ chính tùy thuộc vào hệ điều hành

Page 71: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

8

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.29

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

2. Tổ chức bộ nhớ đan xen

Độ rộng của bus dữ liệu để trao đổi với bộnhớ: m = 8, 16, 32, 64, 128 … bit

Các ngăn nhớ được tổ chức theo byte

→ tổ chức bộ nhớ vật lý khác nhau

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.30

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

m=8 bit → một băng nhớ tuyến tính

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.31

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

m=16 bit → hai băng nhớ đan xen

02468

2iAN-1 ÷ A1

D7 ÷ D0

. . .

. . .

13579

2i+1

. . .

. . .

Băng 0Băng 1

BE0BE1D15 ÷ D8

Bộ tạo tín hiệu chọn

byte

BE1

BE0A0

B

W

Chọn byte

0 0 Chọn cả 2 byte

0 1 Chọn byte cao

1 0 Chọn byte thấp

1 1 Không chọn

BE1 BE0

Các tín hiệu chọn byte:

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.32

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

m=32 bit → bốn băng nhớ đan xen

0481216

4iAN-1 ÷ A2

D7 ÷ D0

. . .

. . .

1591317

4i+1

. . .

. . .

Băng 0Băng 1

BE0BE1D15 ÷ D8

Bộ tạo tín hiệu chọn

byte

BE3

BE0A0

B

W

26101418

4i+2

. . .

. . .

Băng 2

BE2D23 ÷ D16

37111519

4i+3

. . .

. . .

Băng 3

BE3D31 ÷ D24

BE2

BE1A1

DW

Page 72: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

9

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.33

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

m=64 bit → tám băng nhớ đan xen

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.34

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

5.4. Bộ nhớ đệm nhanh (cache memory)

1. Nguyên tắc chung

Cache có tốc độ nhanh hơn bộ nhớ chính

Cache được đặt giữa CPU và bộ nhớ chính nhằm tăng tốc độ truy nhập bộ nhớ của CPU

Cache có thể được đặt trên chip của CPU

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.35

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

Ví dụ về thao tác của cache

CPU yêu cầu nội dung của ngăn nhớ

CPU kiểm tra trên cache với dữ liệu này

Nếu có, CPU nhận dữ liệu từ cache (nhanh)

Nếu không có, đọc block nhớ chứa dữ liệu

từ bộ nhớ chính vào cache

Tiếp đó chuyển dữ liệu từ cache vào CPU

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.36

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

Cấu trúc chung của cache/bộ nhớ chính

B0

B1

B2

B3

B4

B5

Bi

Bp-1

. . .

. . .

L0

L1

L2

L3

Li

Lm-1

. . .

. . .

Bộ nhớ chính

CacheTag

CPU

Page 73: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

10

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.37

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

Cấu trúc chung của cache/bộ nhớ chính

Một số Block của bộ nhớ chính được nạp vào các Line của cache.

Nội dung Tag (thẻ nhớ) cho biết block nào của bộ nhớchính hiện đang được chứa ở line đó.

Khi CPU truy nhập (đọc/ghi) một từ nhớ, có 2 khả năng xảy ra:

Từ nhớ đó có trong cache (cache hit)

Từ nhớ đó không có trong cache (cache miss)

Vì số line của cache ít hơn số block của bộ nhớ chính, cần có một thuật giải ánh xạ thông tin trong bộ nhớchính vào cache.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.38

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

2. Các phương pháp ánh xạ địa chỉ

a) Ánh xạ trực tiếp (Direct mapping)Mỗi block của bộ nhớ chính chỉ có thể được nạp vào 1 line duy nhất của cache.

Quy ước nạp: B0 → L0

B1 → L1

......

Bm-1 → Lm-1

Bm → L0

Bm+1 → L1

L0 : B0, Bm, B2m ...

L1 : B1, Bm+1, B2m+1 ..

Bj chỉ có thể được nạp vào Lj mod m

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.39

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

Ánh xạ trực tiếp (tiếp)

B0

B1

B2

B3

B4

B5

Bi

Bp-1

. . .

. . .

L0

L1

L2

L3

Li

Lm-1

. . .

. . .

Bộ nhớ chính

Cache

Tag Line Byte

So sánh

n1n2n3

N bit

cache hit

cache miss

=

(2)

(3.1)

(3.2)

(1)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.40

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

Ánh xạ trực tiếp (tiếp)

Địa chỉ CPU phát ra có N bit, được chia thành 3 trường:

Trường Byte (có n1 bit) để xác định byte nhớtrong Line (Block)

2n1 = kích thước 1 Line

Trường Line (có n2 bit) để xác định Line trong Cache

2n2 = số Line trong Cache

Dung lượng Cache = 2n1 * 2n2 = 2n1+n2

Trường Tag (có n3 bit): số bit còn lại

n3 = N - (n1 + n2) > 0 vì 2N >> 2n1+n2

Page 74: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

11

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.41

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

b) Ánh xạ liên kết toàn phần

Fully Associative Mapping

Mỗi block có thể được nạp vào bất kỳ line nào

của cache.

Địa chỉ bộ nhớ do CPU phát ra được chia thành

2 phần: tag và byte.

Để kiểm tra xem một block có trong cache hay

không, phải đồng thời kiểm tra tất cả tag của

các line trong cache.

Cần các mạch phức tạp để kiểm tra.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.42

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

Ánh xạ liên kết toàn phần (tiếp)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.43

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

c) Ánh xạ liên kết tập hợp

Set Associative MappingLà phương pháp dung hòa của 2 phương pháp trênChia cache thành các tập: S0, S1, S2 ...Mỗi Set có một số Line (2, 4, 8, 16 Line)vd mỗi Set có 2 line: 2-way Set Associative MappingMỗi block được nạp vào 1 line nào đó trong Set nhất định:

B0 → S0

B1 → S1

......Bk-1 → Sk-1

Bk → S0

Địa chỉ do CPU phát ra có 3 trường: Tag, Set, Byte

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.44

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

Ánh xạ liên kết tập hợp (tiếp)

Page 75: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

12

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.45

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

Ví dụ

Hệ thống có: bộ nhớ chính = 256 MB

Cache = 128 KB

Line = 16 Byte

Xác định số bit của các trường địa chỉ khi

Ánh xạ trực tiếp

Ánh xạ liên kết tập hợp 4 Line/Set

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.46

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

Ví dụ (tiếp)

1) 2N = 256.220 = 228 N = 28 bit

Tính cho trường Byte:

Kích thước line = 16 = 24 Byte n1 = 4 bit

Tính cho trường Line:

Số line trong Cache: 128.210/16 = 213 n2 = 13 bit

Tính cho trường Tag:

n3 = N - (n1 + n2) = 28 - (4 + 13) = 11 bit

2) - Trường Byte: n1 = 4 bit

- Trường Set:

Số Set = Số line/4 = 213/4 = 211 n2 = 11 bit

- Trường Tag: n3 = N - (n1 + n2) = 28 - (4 + 11) = 13 bit

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.47

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

3. Các thuật giải thay thế block trong cache

Khi CPU truy nhập một thông tin mà không

có trong cache (cache miss) thì nạp block

chứa thông tin đó vào trong cache để thay

thế block cũ trong cache.

Ánh xạ trực tiếp chỉ có 1 cách nạp

không cần thuật giải để nạp.

2 phương pháp ánh xạ liên kết cần có

thuật giải để lựa chọn thay thế.

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.48

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

Các thuật giải thay thế block trong cache (tiếp)

1. Random: thay block một cách ngẫu nhiên.

2. FIFO (First In, First Out): thay thế block đã tồn tại

lâu nhất trong toàn cache đối với ánh xạ liên kết

toàn phần, trong set đối với ánh xạ liên kết tập hợp.

3. LFU (Least Frequently Used): thay block có số lần

truy nhập ít nhất.

4. LRU (Least Recently Used): thay block có khoảng

thời gian dài nhất không được truy nhập được

đánh giá là hiệu quả nhất.

Page 76: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

13

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.49

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

4. Phương pháp ghi dữ liệu khi cache hit

Ghi xuyên qua (Write through)

ghi cả cache và bộ nhớ chính

tốc độ chậm

Ghi trả sau (Write back)

chỉ ghi ra cache

tốc độ nhanh

khi block trong cache bị thay thế cần phải ghi trả cả block về bộ nhớ chính

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.50

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

5. Cache trên các bộ xử lý Intel

80386: không có cache trên chip

80486: 8KB

Pentium: có 2 cache L1 trên chipcache lệnh = 8KB

cache dữ liệu = 8KB

Pentium 4: hai mức cache L1 và L2 trên chipCache L1:

2 cache L1, mỗi cache 8KB

kích thước Line = 64 byte

Cache L2:256 KB - 2 MB

kích thước Line = 128 byte

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.51

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

Sơ đồ Pentium 4

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.52

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

5.5. Bộ nhớ ngoài

1. Các kiểu bộ nhớ ngoài

Đĩa từ (Magnetic Disk)

Đĩa quang (Optical Disk)

Flash Disk

Băng từ (Magnetic Tape)

Page 77: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

14

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.53

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

2. Đĩa từ (Platter)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.54

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

Các đặc tính đĩa từ

Đầu từ cố định hay đầu từ di động

Đĩa cố định hay thay đổi

Một mặt hay hai mặt

Một đĩa hay nhiều đĩa

Cơ chế đầu từ

Tiếp xúc (đĩa mềm)

Không tiếp xúc

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.55

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

Nhiều đĩa (Multiple Platters)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.56

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

Cylinders

Page 78: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

15

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.57

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

Đĩa mềm

8”, 5.25”, 3.5”

Dung lượng nhỏ: chỉ tới 1.44 MB

Tốc độ chậm (360 rpm)

Thông dụng

Rẻ tiền

Tương lai có thể không dùng nữa?

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.58

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

Đĩa cứng

Một hoặc nhiều đĩa

Thông dụng

Dung lượng tăng lên rất nhanh

1993: 200 MB

2005: 30 GB, 40 GB, 80 GB, 120 GB …

Tốc độ đọc/ghi nhanh (5400, 7200 rpm)

Rẻ tiền

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.59

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

RAID

Redundant Array of Inexpensive Disks

Redundant Array of Independent Disks

Tập các đĩa cứng vật lý được HĐH coi như một ổ

logic duy nhất

Dữ liệu được lưu trữ phân tán trên các ổ đĩa vật lý

Có thể sử dụng dung lượng dư thừa để lưu trữ các

thông tin kiểm tra chẵn lẻ, cho phép khôi phục lại

thông tin trong trường hợp đĩa bị hỏng

7 loại phổ biến (RAID 0-6)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.60

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

3. Đĩa quang

CD-ROM (Compact Disk ROM)

CD-R (Recordable CD)

CD-RW (Rewriteable CD)

Dung lượng thông dụng 700 MB

Ổ đĩa CD:

Ổ đĩa CD-ROM

Ổ CD-Writer: ghi một phiên hoặc ghi nhiều phiên

Ổ CD-RW

Tốc độ đọc cơ sở 150 KB/s

Tốc độ bội, ví dụ: 48x, 52x, …

Page 79: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

16

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.61

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

Đĩa quang (tiếp)

DVD

Digital Video Disk: chỉ dùng trên ổ đĩa xem video

Digital Versatile Disk: ổ trên máy tính

Ghi một hoặc hai mặt

Một hoặc hai lớp trên một mặt

Thông dụng: 4,7 GB/lớp

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.62

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

4. Flash Disk

Bộ nhớ bán dẫn cực nhanh (flash memory)

Thường kết nối qua cổng USB

Không phải dạng đĩa

Dung lượng tăng nhanh (64 MB – 2 GB)

Thuận tiện

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.63

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

5.6. Hệ thống nhớ trên PC hiện nay

Bộ nhớ cache: tích hợp trên chip vi xử lý

Bộ nhớ chính: tồn tại dưới dạng các mô-đun nhớ RAM

SIMM – Single Inline Memory Module30 chân: 8 đường dữ liệu

72 chân: 32 đường dữ liệu

DIMM - Dual Inline Memory Module168 chân: 64 đường dữ liệu

RIMM – Rambus DRAM

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.64

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

Hệ thống nhớ trên PC (tiếp)

ROM BIOS chứa các chương trình sau:Chương trình POST (Power On Self Test)

Chương trình CMOS Setup

Chương trình Bootstrap loader

Các trình điều khiển vào-ra cơ bản (BIOS)

CMOS RAM:Cấu hình hệ thống

Đồng hồ hệ thống

Có pin nuôi riêng

Video RAM: quản lý thông tin của màn hình

Các loại bộ nhớ ngoài

Page 80: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

1

Chương 6HỆ THỐNG VÀO-RA

Phạm Quang Dũng

Bộ môn Khoa học máy tính - Khoa CNTT

Trường Đại học Nông nghiệp I – Hà Nội

website: www.hau1.edu.vn/it/pqdung

ĐT: (04) 8766318 DĐ: 0988.149.189

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.2

Chương 6: Hệ thống vào-ra

Nội dung chương 6

6.1. Tổng quan về hệ thống vào-ra

6.2. Các phương pháp điều khiển vào-ra

6.3. Nối ghép thiết bị ngoại vi

6.4. Các cổng vào-ra thông dụng trên PC

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.3

Chương 6: Hệ thống vào-ra

6.1. Tổng quan về hệ thống vào-ra

1. Giới thiệu chung

Chức năng của hệ thống vào-ra: Trao đổi thông tin giữa máy tính với thế giới bên ngoài

Các thao tác cơ bản:

Vào dữ liệu (Input)

Ra dữ liệu (Output)

Các thành phần chính

Các thiết bị ngoại vi

Các môđun vào-ra

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.4

Chương 6: Hệ thống vào-ra

Đặc điểm của vào-ra

Tồn tại đa dạng các thiết bị ngoại vi (TBNV) khác nhau về:

Nguyên tắc hoạt động

Tốc độ

Khuôn dạng dữ liệu

Tất cả các TBNV đều chậm hơn CPU và RAM

→ Cần có các môđun vào-ra để nối ghép các TBNV với CPU và bộ nhớ chính

Page 81: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

2

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.5

Chương 6: Hệ thống vào-ra

2. Các TBNV

Chức năng: chuyển đổi dữ liệu giữa bên trong và bên ngoài máy tính

Phân loại:TBNV giao tiếp người-máy: chuột, bàn phím, màn hình, máy in,…

TBNV giao tiếp máy-máy: gồm các thiết bịtheo dõi và kiểm tra

TBNV truyền thông: modem (modulator/demodulator),

Network Interface Card (NIC, card mạng)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.6

Chương 6: Hệ thống vào-ra

Cấu trúc chung của TBNV

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.7

Chương 6: Hệ thống vào-ra

Các thành phần của TBNV

Bộ chuyển đổi tín hiệu: chuyển đổi dữ liệu

giữa bên ngoài và bên trong máy tính

Bộ đệm dữ liệu: đệm dữ liệu khi truyền

giữa môđun vào-ra và TBNV

Khối logic điều khiển: điều khiển hoạt động

của TBNV đáp ứng theo yêu cầu từ môđun

vào-ra

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.8

Chương 6: Hệ thống vào-ra

3. Môđun vào-ra

Chức năng:

Điều khiển và định thời

Trao đổi thông tin với CPU

Trao đổi thông tin với TBNV

Đệm giữa bên trong máy tính với TBNV

Phát hiện lỗi của TBNV

Page 82: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

3

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.9

Chương 6: Hệ thống vào-ra

Cấu trúc chung của môđun vào-ra

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.10

Chương 6: Hệ thống vào-ra

Các thành phần của môđun vào-ra

Thanh ghi đệm dữ liệu: đệm dữ liệu trong quá trình trao đổi

Các cổng vào-ra (I/O Port): kết nối với TBNV, mỗi cổng có một địa chỉ xác định

Thanh ghi trạng thái/điều khiển: lưu giữthông tin trạng thái/điều khiển cho các cổng vào-ra

Khối logic điều khiển: điều khiển môđun vào-ra

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.11

Chương 6: Hệ thống vào-ra

4. Các phương pháp địa chỉ hóa cổng vào-ra

a. Không gian địa chỉ của bộ xử lý

Một số bộ xử lý chỉ quản lý

một không gian địa chỉ

duy nhất, gọi là không

gian địa chỉ bộ nhớ.

N bit địa chỉ → có 2N địa chỉ

Ví dụ: các bộ xử lý 680x0

của Motorola

000...000

.

.

.

Không gian địa chỉ bộ nhớ

.

.

.

000...001000...010000...011000...100000...101

111...111

N bit

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.12

Chương 6: Hệ thống vào-ra

Không gian địa chỉ của bộ xử lý (tiếp)

Một số bộ xử lý quản lý hai không gian địa

chỉ tách biệt

Không gian địa chỉ bộ nhớ: 2N địa chỉ

Không gian địa chỉ vào-ra: 2N1 địa chỉ

Page 83: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

4

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.13

Chương 6: Hệ thống vào-ra

Hai không gian địa chỉ tách biệt của bộ xử lý

000...000

.

.

.

Không gian địa chỉ bộ nhớ

.

.

.

000...001000...010000...011000...100000...101

111...111

N bit00...00

.

.

.

Không gian địa chỉ vào-ra

.

.

.

00...0100...1000...11

11...11

N1 bit

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.14

Chương 6: Hệ thống vào-ra

Hai không gian địa chỉ tách biệt của bộ xử lý (tiếp)

Đặc điểm của bộ xử lý có hai không gian địa chỉ:

Có tín hiệu điều khiển phân biệt truy nhập không

gian địa chỉ bộ nhớ hay không gian địa chỉ vào-ra

Tập lệnh có các lệnh vào-ra chuyên dụng (IN, OUT)

Ví dụ: Các bộ xử lý 80x86 và Pentium (Intel)

Pentium

Không gian địa chỉ bộ nhớ = 232 byte = 4 GB

Không gian địa chỉ vào-ra = 216 byte = 64 KB

Tín hiệu điều khiển:

Hai lệnh vào-ra chuyên dụng: IN, OUT

IOM/

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.15

Chương 6: Hệ thống vào-ra

b. Các phương pháp địa chỉ hóa cổng vào-ra

Vào-ra theo bản đồ bộ nhớ

(Memory mapped IO)

Vào-ra riêng biệt

(Isolated IO hay IO mapped IO)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.16

Chương 6: Hệ thống vào-ra

Vào-ra theo bản đồ bộ nhớ

Cổng vào-ra được đánh địa chỉ theo không

gian địa chỉ bộ nhớ

Vào-ra giống như đọc/ghi bộ nhớ

CPU trao đổi dữ liệu với cổng vào-ra thông

qua các lệnh truy nhập dữ liệu bộ nhớ

Có thể thực hiện trên mọi hệ thống

Page 84: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

5

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.17

Chương 6: Hệ thống vào-ra

Vào-ra riêng biệt

Cổng vào-ra được đánh địa chỉ theo không

gian địa chỉ vào-ra riêng biệt

CPU trao đổi dữ liệu với cổng vào-ra thông

qua các lệnh vào-ra chuyên dụng (IN, OUT)

Chỉ có thể thực hiện trên các hệ thống có

không gian địa chỉ vào-ra riêng biệt

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.18

Chương 6: Hệ thống vào-ra

6.2. Các phương pháp điều khiển vào-ra

Vào-ra bằng chương trình

(Programmed IO)

Vào-ra điều khiển bằng ngắt

(Interrupt Driven IO)

Truy nhập bộ nhớ trực tiếp – DMA

(Direct Memory Access)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.19

Chương 6: Hệ thống vào-ra

1. Vào-ra bằng chương trình

Nguyên tắc chung: CPU điều khiển trực tiếp

vào-ra bằng chương trình

Kiểm tra trạng thái của TBNV

Phát tín hiệu điều khiển đọc/ghi

Trao đổi dữ liệu

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.20

Chương 6: Hệ thống vào-ra

Lưu đồ chương trình

Đọc trạng thái của môđun vào-ra

Môđun vào-ra có sẵn sàng?

Trao đổi dữ liệu với môđun vào-ra

N

Y

Page 85: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

6

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.21

Chương 6: Hệ thống vào-ra

Hoạt động của vào-ra bằng chương trình

CPU yêu cầu thao tác vào-ra

Môđun vào-ra thực hiện thao tác

Môđun vào-ra thiết lập các bit trạng thái

CPU kiểm tra các bit trạng thái:

Nếu chưa sẵn sàng thì quay lại kiểm tra

Nếu sẵn sàng thì chuyển sang trao đổi dữ

liệu với môđun vào-ra

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.22

Chương 6: Hệ thống vào-ra

Đặc điểm

Vào-ra do ý muốn của người lập trình

CPU trực tiếp điều khiển vào-ra

CPU đợi môđun vào-ra → tiêu tốn thời gian

của CPU

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.23

Chương 6: Hệ thống vào-ra

2. Vào-ra điều khiển bằng ngắt

Nguyên tắc chung:

CPU không phải đợi trạng thái sẵn sàng của môđun vào-ra, CPU thực hiện một chương trình nào đó

Khi môđun vào-ra sẵn sàng thì nó phát tín hiệu ngắt CPU

CPU thực hiện chương trình con vào-ra tương ứng để trao đổi dữ liệu

CPU trở lại tiếp tục thực hiện chương trình đang bị ngắt

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.24

Chương 6: Hệ thống vào-ra

Chuyển điều khiển đến chương trình con ngắt

lệnhlệnhlệnhlệnhlệnh ilệnh i+1

RETURN

lệnh

lệnh

.

.

.

Chương trình đang thực hiện

.

.

.lệnh

Chương trình con ngắt phục

vụ vào-ra

lệnhlệnh

Ngắt

Page 86: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

7

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.25

Chương 6: Hệ thống vào-ra

Hoạt động vào dữ liệu: nhìn từ môđun vào-ra

Môđun vào-ra nhận tín hiệu điều khiển đọc

từ CPU

Môđun vào-ra nhận dữ liệu từ TBNV, trong

khi đó CPU làm việc khác

Môđun vào-ra phát tín hiệu ngắt CPU

CPU yêu cầu dữ liệu

Môđun vào-ra chuyển dữ liệu đến CPU

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.26

Chương 6: Hệ thống vào-ra

Hoạt động vào dữ liệu: nhìn từ CPU

Phát tín hiệu điều khiển đọc

Làm việc khác

Cuối mỗi chu kỳ lệnh, kiểm tra tín hiệu ngắt

Nếu bị ngắt:

Cất ngữ cảnh (nội dung các thanh ghi)

Thực hiện chương trình con ngắt để vào dữliệu

Khôi phục ngữ cảnh của chương trình đang thực hiện

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.27

Chương 6: Hệ thống vào-ra

Các phương pháp nối ghép ngắt

Sử dụng nhiều đường yêu cầu ngắt

Kiểm tra vòng bằng phần mềm

(Software Poll)

Kiểm tra vòng bằng phần cứng

(Daisy Chain hay Hardware Poll)

Sử dụng bộ điều khiển ngắt (PIC)

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.28

Chương 6: Hệ thống vào-ra

Nhiều đường yêu cầu ngắt

CPU phải có nhiều đường tín hiệu yêu cầu ngắt

Hạn chế số lượng môđun vào-ra

Các đường ngắt được quy định mức ưu tiên

Page 87: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

8

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.29

Chương 6: Hệ thống vào-ra

Kiểm tra vòng bằng phần mềm

CPU thực hiện phần mềm hỏi lần lượt từng môđun vào-ra

Chậm

Thứ tự các môđun được hỏi vòng chính là thứtự ưu tiên

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.30

Chương 6: Hệ thống vào-ra

Kiểm tra vòng bằng phần cứng

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.31

Chương 6: Hệ thống vào-ra

Kiểm tra vòng bằng phần cứng (tiếp)

CPU phát tín hiệu chấp nhận ngắt (INTA) đến môđun vào-ra đầu tiên

Nếu môđun vào-ra đó không gây ra ngắt thì nó gửi tín hiệu đến môđun kế tiếp cho đến khi xác định được môđun gây ngắt

Môđun vào-ra gây ngắt sẽ đặt vector ngắt lên bus dữ liệu

CPU sử dụng vector ngắt để xác định nơi chứa chương trình con điều khiển ngắt

Thứ tự các môđun vào-ra kết nối trong chuỗi xác định thứ tự ưu tiên

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.32

Chương 6: Hệ thống vào-ra

Bộ điều khiển ngắt lập trình được

PIC – Programmable Interrupt Controller

PIC có nhiều đường vào yêu cầu ngắt có quy định mức ưu tiên

PIC chọn một yêu cầu ngắt không bị cấm có mức ưu tiên cao nhất gửi tới CPU

Ví dụ: PIC 8259A

Page 88: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

9

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.33

Chương 6: Hệ thống vào-ra

Đặc điểm của vào-ra điều khiển bằng ngắt

Có sự kết hợp giữa phần cứng và phần

mềm

Phần cứng: gây ngắt CPU

Phần mềm: trao đổi dữ liệu

CPU trực tiếp điều khiển vào-ra

CPU không phải đợi môđun vào-ra → hiệu

quả sử dụng CPU tốt hơn

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.34

Chương 6: Hệ thống vào-ra

3. DMA (Direct Memory Access)

Vào-ra bằng chương trình và bằng ngắt do CPU trực tiếp điều khiển:

Chiếm thời gian của CPU

Tốc độ bị hạn chế vì phải chuyển qua CPU

Để khắc phục dùng DMA

Thêm môđun phần cứng trên bus → DMAC

(DMA Controller)

DMAC điều khiển vào-ra không thông qua CPU

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.35

Chương 6: Hệ thống vào-ra

Sơ đồ cấu trúc của DMAC

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.36

Chương 6: Hệ thống vào-ra

Các thành phần của DMAC

Thanh ghi dữ liệu: chứa dữ liệu trao đổi

Thanh ghi địa chỉ: chứa địa chỉ ngăn nhớ dữ

liệu

Bộ đếm dữ liệu: chứa số từ dữ liệu (word)

cần trao đổi

Logic điều khiển: điều khiển hoạt động của

DMAC

Page 89: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

10

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.37

Chương 6: Hệ thống vào-ra

Hoạt động DMA

CPU “nói” cho DMAC:Vào hay ra dữ liệu

Địa chỉ thiết bị vào-ra

Địa chỉ đầu của mảng nhớ chứa dữ liệu → nạp vào thanh ghi địa chỉ

Số từ dữ liệu cần truyền → nạp vào bộ đếm dữ liệu

CPU làm việc khác

DMAC điều khiển trao đổi dữ liệu

Sau khi truyền được một word thì:nội dung thanh ghi địa chỉ tăng

nội dung bộ đếm dữ liệu giảm

Khi bộ đếm dữ liệu = 0, DMAC gửi tín hiệu ngắt CPU đểbáo kết thúc DMA

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.38

Chương 6: Hệ thống vào-ra

Các kiểu thực hiện DMA

DMA truyền theo khối (Block transfer DMA): DMAC

sử dụng bus để truyền xong cả khối dữ liệu

DMA lấy chu kỳ (Cycle Stealing DMA): DMAC cưỡng

bức CPU treo tạm thời từng chu kỳ bus, DMAC

chiếm bus thực hiện truyền một word

DMA trong suốt (Transparent DMA): DMAC nhận

biết những chu kỳ nào CPU không sử dụng bus thì

chiếm bus để trao đổi một word

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.39

Chương 6: Hệ thống vào-ra

Cấu hình DMA (1)

Mỗi lần truyền, DMA sử dụng bus hai lầnGiữa môđun vào-ra với DMAC

Giữa DMAC với bộ nhớ

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.40

Chương 6: Hệ thống vào-ra

Cấu hình DMA (2)

DMAC điều khiển một hoặc vài môđun vào-ra

Mỗi lần truyền, DMAC sử dụng bus một lần:Giữa DMAC với bộ nhớ

Page 90: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

11

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.41

Chương 6: Hệ thống vào-ra

Cấu hình DMA (3)

Bus vào-ra tách rời hỗ trợ tất cả các thiết bị cho phép DMA

Mỗi lần truyền, DMAC sử dụng bus một lần:

Giữa DMAC với bộ nhớ

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.42

Chương 6: Hệ thống vào-ra

Đặc điểm của DMA

CPU không tham gia trong quá trình trao

đổi dữ liệu

DMAC điều khiển trao đổi dữ liệu giữa bộ

nhớ chính với môđun vào-ra (hoàn toàn

bằng phần cứng) → tốc độ nhanh

Phù hợp với các yêu cầu trao đổi mảng dữ

liệu có kích thước lớn

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.43

Chương 6: Hệ thống vào-ra

4. Bộ xử lý vào-ra

Việc điều khiển vào-ra được thực hiện bởi

một bộ xử lý vào-ra chuyên dụng

Bộ xử lý vào-ra hoạt động theo chương

trình của riêng nó

Chương trình của bộ xử lý vào-ra có thể

nằm trong bộ nhớ chính hoặc nằm trong

một bộ nhớ riêng

Hoạt động theo kiến trúc đa xử lý

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.44

Chương 6: Hệ thống vào-ra

6.3. Nối ghép TBNV

1. Các kiểu nối ghép vào-ra

Nối ghép song song

Nối ghép nối tiếp

Page 91: Chương 1 - utb.edu.vnutb.edu.vn/elib/Tin hoc/Bai giang Kien truc may tinh (Pham Quang... · Kiến trúc máy tính ... (Intruction Set Architecture): nghiên cứu máy tính theo

12

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.45

Chương 6: Hệ thống vào-ra

Nối ghép song song

Truyền nhiều bit song song

Tốc độ nhanh

Cần nhiều đường truyền dữ liệu

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.46

Chương 6: Hệ thống vào-ra

Nối ghép nối tiếp

Truyền lần lượt từng bit

Cần có bộ chuyển đổi từ dữ liệu song song sang nối tiếp hoặc/và ngược lại

Tốc độ chậm hơn

Cần ít đường truyền dữ liệu

Môđun vào-ra nối tiếp

Đến bus hệ

thống

Đến TBNV

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.47

Chương 6: Hệ thống vào-ra

2. Các cấu hình nối ghép

Điểm tới điểm (Point to Point)Thông qua một cổng vào-ra nối ghép với một TBNV

Điểm tới đa điểm (Point to Multi-point)Thông qua một cổng vào-ra cho phép nối ghép được với nhiều TBNV

Ví dụ:SCSI (Small Computer System Interface): 7 hoặc 15 thiết bị

USB (Universal Serial Bus): 127 thiết bị

IEEE 1394 (FireWire): 63 thiết bị

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.48

Chương 6: Hệ thống vào-ra

6.4. Các cổng vào-ra thông dụng trên PC

Các cổng PS/2: nối ghép bàn phím và chuột

Cổng nối ghép màn hình

Cổng LPT (Line Printer): nối ghép với máy in, làcổng song song (Parallel Port) – 25 chân

Cổng COM (Communication): nối ghép với modem, chuột, là cổng nối tiếp (Serial Port) – 9 chân hoặc 25 chân

Cổng USB (Universal Serial Bus): Cổng nối tiếp đa năng, cho phép nối ghép tối đa 127 thiết bị, nhờcác USB Hub

...