bai giang Kien truc may tinh

91 7 0
bai giang Kien truc may tinh

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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. Chuyển đổi các thừa số thành số dương 2[r]

(1)

Chương 1

GIỚ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 phân loại 1.2 Kiến trúc máy tính 1.3 Sự tiến hố 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 phân loại

1 Máy tính

† Máy tính (Computer) thiết bị điện tử thực

các công việc sau:

„ Nhận thông tin vào,

„ Xử lý thông tin theo dãy lệnh nhớ sẵn bên

trong,

„ Đưa thông tin

† Dãy lệnh nằm nhớ để yêu cầu máy

tính thực cơng việc cụ thể gọi 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

(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 máy tính

† Phần cứng: hệ thống vật lý máy tính † Phần mềm: chương trình 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 đạ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 † 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 xử lý Intel 8088

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

dụng xử lý Motorola 68000

(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 máy phục vụ

† Dùng mạng theo mơ hình

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

† Tốc độ hiệu tính tốn cao

† Dung lượng 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 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 máy giặt, điều hoà nhiệt

độ

„ Router - định tuyế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 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 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

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 máy tính bao gồm:

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

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

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

(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 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 máy tính

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

Điều khiển hoạt động máy tính xử lý liệu

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

trình liệu sử dụng

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

đổi thông tin máy tính với bên ngồi

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

Kết nối vận chuyển thông tin thành phần với

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á 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 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 Bộ Quốc phòng Mỹ

„ Do John Mauchly John Presper Eckert Đại

học Pennsylvania thiết kế

(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

† Kích thước 140 m2

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

† 5000 phép cộng/giây

† Xử lý theo số thập phân † Bộ nhớ lưu trữ liệu

† Lập trình cách thiết lập vị trí

chuyển mạch 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 máy tính IAS:

„ Princeton Institute for Advanced Studies „ Được 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

(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 máy tính IAS † Bao gồm thành phần: đơn vị điều khiển, đơn vị số

học logic (ALU), nhớ thiết bị vào

† Bộ nhớ chứa chương trình liệu

† Bộ nhớ đánh địa theo ngăn nhớ,

không phụ thuộc vào nội dung

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

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

hiện lệnh cách

† Đơn vị điều khiển điều khiển hoạt động thiết bị

vào-ra

† Trở thành mơ hình 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 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 đời

† 1947 - Eckert-Mauchly Computer Corporation

† UNIVAC I (Universal Automatic Computer)

† 1950s - UNIVAC II

„ Nhanh „ Bộ nhớ lớ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

(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 IBM „ Sử dụng cho tính tố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) 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 DEC (Digital Equipment

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

† IBM 7000

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

(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 LSI

† Vi mạch (Integrated Circuit – IC): nhiều transistor

và phần tử khác tích hợp 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) đời

„ Bộ xử lý Ỉ 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 chip gấp đôi sau 18 tháng † Giá thành chip không thay đổi † Mật độ cao hơn, đường dẫn ngắn † Kích thước nhỏ dẫn tới độ phức tạp tăng lên † Điện tiêu thụ

† Hệ thống có chip liên kết với nhau,

(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 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 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

(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ý liệu tốc độ cao cho ứ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 toán với 200 tỷ phép tính/ngày † 2-6 MB main memory, CPU có đơ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ý liệu vector ‰ 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

(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 (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 công nghệ VLSI:

† Bộ vi xử lý (Microprocessor): CPU chế tạo

một chip

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

một vài vi mạch thực nhiều chức điều khiển nối ghép

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

RAM

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

chuyên dụng chế tạo 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 đạ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

(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 NEC (2002)

Earth Simulator Cơ quan Khoa học 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 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 IBM (2005)

(13)

Chương 2

HỆ 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 máy tính 2.2 Hoạt động 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 máy tính

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

† Bộ nhớ (Memory)

† Hệ thống vào (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

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

„ xử lý liệu

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

(14)

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 CPU

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

(CU)

Đơn vị số học logic

(ALU)

Tập ghi

(RF)

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

bus điều khiển bus liệu bus địa bus bên

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 CPU

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

động máy tính theo chương trình định sẵn

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

ALU): thực phép toán số học phép toán logic liệu cụ thể

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

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

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

và trao đổi thông tin bus bên (internal bus) bus bên (external bus)

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

Tốc độ xử lý

† Tốc độ xử lý:

„ Tính số lệnh thực giây „ MIPS (Millions of Instructions per Second)

„ Khó đánh giá xác

† Tần số xung nhịp xử lý:

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

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

„ Tốc độ xử lý đánh giá gián tiếp

thông qua tần số xung nhịp

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

Tốc độ 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 xử lý cần kT0

† T0càng nhỏ Ỉ xử lý chạy nhanh

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

Ta có f0= GHz = 2x109Hz

(15)

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 liệu † Các thao tác với nhớ:

„ Đọc (Read)

„ Ghi (Write)

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

„ Bộ nhớ (Internal Memory)

„ Bộ nhớ (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 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ớ (Internal memory)

† Chức đặc điểm:

„ Chứa thơng tin mà CPU trao đổi trực

tiếp

„ Tốc độ nhanh

„ Dung lượng không lớn

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

† Các loại nhớ trong:

„ Bộ 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ớ (Main memory)

† Chứa chương trình

liệu CPU sử dụng

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

được đánh địa

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

theo byte

† Nội dung ngăn nhớ

thay đổi, song địa vật lý ngăn nhớ cố định

00101011 11010101 00001010 01011000 11111011

(16)

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 đặt đệm

CPU nhớ nhằm tăng tốc độ CPU truy nhập nhớ

† Dung lượng nhỏ nhớ † Tốc độ nhanh

† Cache thường chia thành số mức † Cache tích hợp chip vi xử lý † Cache 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ớ (External memory)

† Chức đặc điểm:

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

„ Được kết nối với hệ thống dạng thiết bị

vào-ra

„ Dung lượng lớn

„ Tốc độ chậm

† Các loại 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

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 máy tính

với giới bên

† Các thao tác bản: „ Vào liệu (Input) „ Ra 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)

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

Cấu trúc 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

(17)

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 liệu bên

và bên ngồi máy tính

† Các loại thiết bị ngoại vi (TBNV) bản: „ Thiết bị vào: bàn phím, chuột, máy quét … „ Thiết bị ra: hình, máy in …

„ Thiết bị nhớ: ổ đĩ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 TBNV với máy tính † Mỗi mơđun vào-ra có một vài cổng

vào-ra (I/O Port)

† Mỗi cổng vào-ra đánh địa xác

định

† Các TBNV kết nối trao đổi liệu với

máy tính thơng qua 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 máy tính

1 Thực chương trình

† Là hoạt động máy tính † Máy tính lặp lặp lại hai bước:

„ Nhận lệnh

„ Thực lệnh

† Thực chương trình bị dừng thực

lệnh bị lỗi 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 lệnh

(18)

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

Q trình nhận lệnh

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

bộ nhớ

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

của CPU giữ địa lệnh nhận

† CPU nhận lệnh từ ngăn nhớ trỏ PC † Lệnh nạp vào ghi lệnh IR

(Instruction Register)

† Sau lệnh nhận vào, nội dung PC tự

động tăng để trỏ sang lệnh

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 q trình nhận lệnh

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

Quá trình thực lệnh

† Bộ xử lý giải mã lệnh nhận phát tín

hiệu điều khiển thực thao tác mà lệnh yêu cầu

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

„ Trao đổi liệu CPU nhớ

„ Trao đổi liệu CPU môđun vào-ra

„ Xử lý liệu: thực phép toán số học

hoặc phép toán logic với liệu

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

„ Kết hợp thao tác

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

2 Ngắt (Interrupt)

† Khái niệm: Ngắt chế cho phép CPU tạm

dừng chương trình thực để chuyển sang thực chương trình khác, gọi

chương trình phục vụ ngắt.

† Các loại ngắt:

„ Ngắt lỗi thực chương trình, ví dụ:

tràn số, chia cho …

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

„ Ngắt môđun vào-ra phát tín hiệu ngắt đến

(19)

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 hoàn thành lệnh, xử lý kiểm tra tín hiệu

ngắt

† Nếu khơng có ngắt Ỉ xử lý nhận lệnh

chương trình

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

„ Tạm dừng chương trình thực

„ 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 phục vụ ngắt „ Chuyển sang thực chương trình phục vụ ngắt „ Cuối chương trình phục vụ ngắt, khơi phục ngữ cảnh

tiếp tục chương trình 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ệnh lệnh lệnh lệnh lệnh i lệnh i+1 RETURN lệnh lệnh Chương trình thực

lệnh

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

lệnh lệnh Ngắt

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

lệnh Dừng

Kiểm tra có ngắt hay

khơng?

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

phục vụ ngắt Y

N

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

„ Khi ngắt thực hiện, ngắt khác

bị cấm

„ Bộ xử lý bỏ qua ngắt

xử lý ngắt

„ Các ngắt đợi kiểm tra sau ngắt

đầu tiên xử lý xong

„ Các ngắt thực

† Xử lý ngắt ưu tiên

„ Các ngắt định nghĩa mức ưu tiên khác „ Ngắt có mức ưu tiên thấp bị ngắt ngắt

(20)

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: hoạt động trao đổi liệu

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

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

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

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

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 bus

† Bus: tập hợp đường kết nối dùng để vận

chuyển thông tin thành phần máy tính với

† Độ rộng bus: số đường dây bus

truyền bit thông tin đồng thời (chỉ dùng cho bus địa bus liệu)

† Phân loại cấu trúc bus:

„ Cấu trúc đơn bus

„ Cấu trúc đa bus

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

Bus đồng bus khơng đồng bộ

† Bus đồng

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

„ Các kiện bus xác định xung

nhịp Clock

† Bus khơng đồng

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

„ Kết thúc kiện bus kích hoạt

cho kiện

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

(21)

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 để xác định

ngăn nhớ hay cổng vào-ra

† Độ rộng bus địa chỉ: xác định dung lượng

nhớ cực đại hệ thống Nếu độ rộng bus địa N bit:

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

Ỉ dung lượng nhớ cực đại 2N byte (cịn gọi khơng gian địa nhớ)

† Ví dụ: Bộ xử lý Intel Pentium có bus địa 32

bit Ỉ khơng gian địa 232byte = 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 liệu

† Chức năng:

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

„ vận chuyển liệu CPU, môđun nhớ

môđun vào-ra

† Độ rộng bus liệu: xác định số bit liệu có

thể trao đổi đồng thời

„ M bit: DM-1, DM-2, … D2, D1, D0 „ M thường 8, 16, 32, 64, 128 bit

† Ví dụ: Các xử lý Pentium có bus liệu

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 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 từ CPU để điều khiển mơđun

nhớ 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 từ CPU để điều khiển

đọc-ghi:

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

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

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

đến ngăn nhớ có địa xác định

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

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

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

(22)

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ừ đ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 bị che

„ Interrupt Acknowledge (INTA): tín hiệu phát

từ CPU báo cho đ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 gửi đến CPU

„ Reset: tín hiệu từ bên ngồi gửi đến CPU

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): 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) Hold Acknowledge

(HLDA): tín hiệu phát 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

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

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

† Bus hệ thống phục vụ yêu cầu

trao đổi liệu thời điểm

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

của môđun nhanh hệ thống

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

tín hiệu) xử lý Ỉ mơđun nhớ môđun vào-ra phụ thuộc vào xử lý

† Vì cần phải phân cấp bus Ỉ đa bus

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

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

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

„ Bus xử lý

„ Bus nhớ

„ Các bus vào-ra

† Phân cấp bus khác tốc độ

† Bus nhớ bus vào-ra khơng phụ

(23)

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 PC

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

nhất

† Bus nhớ (nối ghép với mơđun RAM) † AGP bus (Accelerated Graphic Port) - Bus đồ họa tăng

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

† PCI bus (Peripheral Component Interconnection): nối

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

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

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

cứng ổ đĩ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 môđun điều khiển bus, vd CPU

DMA controller, thời điểm mođun điều khiển bus Ỉ cần phân xử bus

† Sự phân xử bus tập trung phân tán „ Phân xử tập trung: có thiết bị phần cứng điều

khiển truy nhập bus:

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

Trọng tài bus (Arbiter)

† Có thể nằm CPU tách riêng

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

(24)

Chương 3

BIỂ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 liệu số học máy tính

Nội dung chương 3

3.1 Các hệ đếm

3.2 Mã hoá lưu trữ liệu máy tính 3.3 Biểu diễn số nguyên

3.4 Thự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ự

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

3.1 Các hệ đếm 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

Chương 3: Biểu diễn liệu 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,

† Dùng n chữ số thập phân biểu diễn

10ngiá trị khác nhau:

„ 00 000 =

(25)

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 liệu 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ố phần nguyên:

„ 472 : 10 = 47 dư

„ 47 : 10 = dư „ : 10 = dư † Các chữ số phần lẻ:

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

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

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 liệu số học máy tính

2 Hệ nhị phân

† Cơ số

† chữ số nhị phân:

† Chữ số nhị phân gọi bit (binary digit) † Bit đơn vị thông tin nhỏ

† Dùng n bit biểu diễn 2n giá trị khác

nhau:

„ 00 000 =

„ 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 liệu số học máy tính

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

Có số nhị phân A sau: A = anan-1 a1a0.a-1 a-m Giá trị A tính sau:

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

∑ − =

= n

m i

i i

a A 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 liệu số học máy tính

Ví dụ số nhị phân 1101001.1011(2)

6 -1 -2 -3 -4

(26)

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 liệu 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 lấy phần dư

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

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 liệu 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ư

„ 52:2 = 26 dư

„ 26:2 = 13 dư

„ 13:2 = dư

„ 6:2 = dư

„ 3:2 = dư

„ 1:2 = dư

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

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

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

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

„ 105 = 64 + 32 + + = 26 + 25 + 23 + 20

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

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

= 214 + 29 + 26+ 25 + 23

17000(10)= 0100 0010 0110 1000(2)

15 14 13 12 11 10 0

27 26 25 24 23 22 21 20

128 64 32 16

0 1 0

Chương 3: Biểu diễn liệu 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 = 1.375 phần nguyên =

„ 0.375 x = 0.75 phần nguyên =

„ 0.75 x = 1.5 phần nguyên =

„ 0.5 x = 1.0 phần nguyên =

(27)

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 liệu 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 = 1.62 phần nguyên =

„ 0.62 x = 1.24 phần nguyên =

„ 0.24 x = 0.48 phần nguyên =

„ 0.48 x = 0.96 phần nguyên =

„ 0.96 x = 1.92 phần nguyên =

„ 0.92 x = 1.84 phần nguyên =

„ 0.84 x = 1.68 phần nguyên =

† 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 liệu 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 = 0.4 phần nguyên =

„ 0.4 x = 0.8 phần nguyên =

„ 0.8 x = 1.6 phần nguyên =

„ 0.6 x = 1.2 phần nguyên =

„ 0.2 x = 0.4 phần nguyên =

„ 0.4 x = 0.8 phần nguyên =

„ 0.8 x = 1.6 phần nguyên =

„ 0.6 x = 1.2 phần nguyên =

† 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 liệu 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:

nhóm bit thay 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 liệu số học máy tính

Quan hệ số nhị phân số Hexa

4-bit Chữ số Hexa

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 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

(28)

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 liệu số học máy tính

3.2 Mã hố lưu trữ liệu máy tính

1 Nguyên tắc chung mã hoá liệu

† Mọi liệu đưa vào máy tính mã

hố thành số nhị phân

† Các loại liệu

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

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

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 liệu số học máy tính

Mã hố liệu nhân tạo

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

qui ước

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

động

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

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

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

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

„ Âm

„ Hình ảnh

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

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

† Độ dài từ liệu số bit sử dụng để mã

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

(29)

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 liệu số học máy tính

2 Thứ tự lưu trữ byte liệu

† Bộ nhớ thường tổ chức theo byte

† Độ dài từ liệu chiếm từ đến nhiều

byte

Ỉ cần phải biết thứ tự lưu trữ byte nhớ

chính với liệu nhiều byte

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

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

ƒ Lưu trữ đầu to (Big-endian): Byte cao lưu trữ ngăn nhớ có địa nhỏ hơn, byte thấp lưu trữ ngăn nhớ có địa lớ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 liệu số học máy tính

Ví dụ lưu trữ 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 liệu số học máy tính

Lưu trữ xử lý điển hình

† Intel 80x86 Pentium:

⇒ Little-endian

† Motorola 680x0 xử lý RISC:

⇒ Big-endian

† Power PC Itanium: 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 liệu số học máy tính

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

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

(30)

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 liệu 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ị A tính sau:

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

∑−

=

=

0

2

n

i i i

a A

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 liệu số học máy tính

Các ví dụ

† Ví dụ 1: Biểu diễn số ngun khơng dấu

sau 8-bit:

A=41 ; B=150 Giải:

A = 41 = 32 + + = 25 + 23 + 20 41 = 0010 1001

B = 150 = 128 + 16 + + = 27+24+22+21 150 = 1001 0110

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

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

† Ví dụ 2: Cho số nguyên không dấu M, N

được biểu diễn 8-bit sau:

„ M = 0001 0010 „ N = 1011 1001

Xác định giá trị chúng? Giải:

„ M = 0001 0010 = 24 + 21= 16 + = 18 „ N = 1011 1001 = 27 + 25 + 24 + 23 + 20

= 128 + 32 + 16 + + = 185

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

Với n = bit

Biểu diễn giá trị từ đến 255

0000 0000 = Chú ý:

0000 0001 = 1111 1111 0000 0010 = + 0000 0001 0000 0011 = 0000 0000

… Vậy: 255 + = 0?

(31)

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 liệu số học máy tính

Trục số học số ngun khơng dấu với n = bit

† Trục số học:

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

0 255 254

1

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 liệu 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ừ đến 65535 (216-1)

„ 0000 0000 0000 0000 = „ …

„ 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ừ đến 232-1 † n= 64 bit: dải biểu diễn từ đế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 liệu số học máy tính

2 Biểu diễn số ngun có dấu

a Số bù Số bù hai:

† Giả sử A số nhị phân, ta có:

„ Số bù A nhận cách đảo giá trị

bit A

„ (Số bù hai A) = (Số bù A) +

† Ví dụ: với n= bit

„ Giả sử có A = 0010 0101 „ Số bù A = 1101 1010

+

„ Số bù hai A = 1101 1011

† Vì A + (Số bù hai A) = Ỉ 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 liệu số học máy tính

b Biểu diễn số nguyên có dấu 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 số dương: bit an-1 = 0, bit lại

biểu diễn độ lớn số không dấu

† Với A số âm: biểu diễn số bù hai

(32)

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 liệu số học máy tính

Biểu diễn số dương

† Dạng tổng quát số dương A:

0an-2…a2a1a0

† Giá trị số dương A:

† Dải biểu diễn cho số dương: đến 2n-1-1 ∑− = = 2 n i i i a A

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 liệu số học máy tính

Biểu diễn số âm

† Dạng tổng quát số âm A:

1an-2…a2a1a0

† Giá trị số âm A:

† Dải biểu diễn cho số âm: -1 đến -2n-1 ∑− = − + − = 2 2 n i i i n a A

Chương 3: Biểu diễn liệu 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 số nguyên A:

an-1an-2…a2a1a0

† Giá trị A xác định sau:

† Dải biểu diễn: từ -(2n-1) đến +(2n-1-1)

∑− = − − + − =

12 2

n i i i n n a a A

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

Các ví dụ

† Ví dụ Biểu diễn số nguyên có dấu sau

đây bit:

A = +58 ; B = -80 Giải:

A = +58 = 0011 1010

B = -80

Ta có: +80 = 0101 0000 Số bù = 1010 1111 + Số bù hai = 1011 0000

(33)

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 liệu số học máy tính

Các ví dụ

† Ví dụ 2: Hãy xác định giá trị số nguyên

có dấu biểu diễn đây:

„ P = 0110 0010

„ Q = 1101 1011

Giải:

„ P = 0110 0010 = 64 + 32 + = +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 liệu số học máy tính

Với n = bit

Biểu diễn giá trị từ -128 đến +127

0000 0000 =

0000 0001 = +1

0000 0010 = +2 Chú ý:

0000 0011 = +3 +127 + = -128

… -128 - = +127

0111 1111 = +127 Ỉ tràn xảy

1000 0000 = - 128

1000 0001 = - 127

1111 1110 = -2

1111 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 liệu số học máy tính

Trục số học số nguyên có dấu với n = 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 liệu 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 =

„ 0000 0000 0000 0001 = +1

„ …

„ 0111 1111 1111 1111 = +32767

„ 1000 0000 0000 0000 = - 32768

„ …

„ 1111 1111 1111 1111 = -1

(34)

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 liệu 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 bit bên trái

† Đối với số âm:

- 19 = 1110 1101 (8 bit)

- 19 = 1111 1111 1110 1101 (16 bit)

Ỉ thêm bit 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 liệu số học máy tính

3 Biểu diễn số nguyên theo mã BCD

† Binary Coded Decimal Code

† Dùng bit để mã hoá cho chữ số thập

phân từ đến

0 Ỉ 0000 Ỉ 0101

1 Æ 0001 Æ 0110

2 Æ 0010 Ỉ 0111

3 Ỉ 0011 Ỉ 1000

4 Ỉ 0100 Ỉ 1001

† Có tổ hợp khơng sử dụng:

1010, 1011, 1100, 1101, 1110, 1111

Chương 3: Biểu diễn liệu 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

Chương 3: Biểu diễn liệu 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 lưu trữ 4-bit thấp byte

„ Ví dụ: Số 35 lưu trữ sau:

† BCD gói (Packed BCD): Hai số BCD lưu

trữ byte

„ Ví dụ: số 35 lưu trữ sau:

0 1 1

(35)

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 liệu số học máy tính

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

1 Phép cộng số nguyên không dấu

Bộ 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 liệu 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 nhận n-bit:

† Nếu khơng có nhớ khỏi bit cao kết

nhận luôn (Cout = 0)

† Nếu có nhớ khỏi bit cao kết nhận

được sai, ⇔ có tràn nhớ ngồi (Cout = 1)

† Tràn nhớ (Carry Out) xảy 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 liệu số học máy tính

Ví dụ cộng số ngun khơng dấu

† 57 = 0011 1001

+ 34 = + 0010 0010

91 0101 1011 = 64+16+8+2+1= 91 Ỉ

† 209 = 1101 0001

+ 73 = 0100 1001

282 0001 1010 = 16 + + = 26 Ỉ sai Ỉ có tràn nhớ ngồi (Cout = 1)

Để có kết ta thực cộng theo 16-bit: 209 = 0000 0000 1101 0001

+ 73 = + 0000 0000 0100 1001

0000 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 liệu số học máy tính

2 Phép đảo dấu

† Ta có:

+ 37 = 0010 0101

bù = 0101 1010

+

bù hai = 1101 1011 = -37

† Lấy bù hai số âm:

- 37 = 1101 1011

bù = 0010 0100

+

bù hai = 0010 0101 = +37

† Kết luận: Phép đảo dấu máy tính thực chất lấy

(36)

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 liệu số học máy tính

3 Cộng số nguyên có dấu

Khi cộng số ngun có dấu n-bit khơng quan tâm đến bit Coutvà kết nhận n-bit:

† Cộng số khác dấu: kết luôn

† Cộng số dấu:

„ Nếu dấu kết dấu với số hạng kết

„ Nếu kết có dấu ngược lại, có tràn xảy

(Overflow) kết sai

† Tràn xảy tổng nằm 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 liệu số học máy tính

Ví dụ cộng số ngun có dấu không tràn

† (+70) = 0100 0110

+ (+42) = 0010 1010

+112 0111 0000 = +112

† (+97) = 0110 0001

+ (- 52) = 1100 1100

+45 0010 1101 = +45

† (- 90) = 1010 0110

+ (+36) = 0010 0100

- 54 1100 1010 = -54

† (- 74) = 1011 0110

+ (- 30) = 1110 0010

- 104 1001 1000 = -104

Chương 3: Biểu diễn liệu 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 + + + = -99 Ỉ sai

† (- 104) = 1001 1000

+ (- 43) = 1101 0101

- 147 0110 1101

= 64 + 32 + + + = +109 Ỉ sai

† Cả ví dụ tràn tổng nằm dải biểu diễn

[-128, +127]

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

4 Nguyên tắc thực phép trừ

† Phép trừ số nguyên: X – Y = X + (-Y)

(37)

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 liệu số học máy tính

5 Nhân số nguyên không dấu

† Các ghi M,

Q, A: n bit

† C: bit

† thừa số n-bit

Ỉ tích số 2n-bit chứa cặp ghi A, Q

Bắt đầu

Dừng C 0; A M số bị nhân Q số nhân; BĐ = n

Q0=

C, A A + M

Dịch phải C, A, Q BĐ BĐ -

BĐ = Y N

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 liệu số học máy tính

Ví dụ 1011 x 1101 (11 x 13 = 143)

† n = † Số bị nhân

= 1011 Ỉ M

† Số nhân =

1101 Ỉ Q

C A Q

0 0000 1101 / giá trị khởi đầu / 1011

0 1011 1101 C, A Å A + M

0 0101 1110 Dịch phải bit n = 0010 1111 Dịch phải bit n =

1011

0 1101 1111 C, A Å A + M

0 0110 1111 Dịch phải bit n = 1011

1 0001 1111 C, A Å A + M

0 1000 1111 Dịch phải 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 liệu số học máy tính

6 Nhân số ngun có dấu

† Phương pháp 1:

1 Chuyển đổi thừa số thành số dương Nhân số dương số nguyên không dấu Hiệu chỉnh dấu kết quả:

† Nếu thừa số dấu Ỉ khơng cần hiệu chỉnh † Nếu thừa số khác dấu Ỉ đảo dấu kết

cách lấy bù

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 liệu số học máy tính

Nhân số nguyên có dấu (tiếp)

† Phương pháp 2:

(38)

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 liệu số học máy tính

Ví dụ (+7) x (-3) = (-21) theo Booth † n =

† 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 / giá trị khởi đầu / 1101 1101 1110 1110 1111 1111 0111

0 A Å A - M = A + (-M) Dịch phải, giữ dấu A, n = A Å A + M

0 Dịch phải, giữ dấu A, n = A Å A - M

1 Dịch phải, giữ dấu A, n =

1011 Dịch phải, giữ dấu A, n = 0 +

+

+

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 liệu 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 Q,

† Phần dư chứa A

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

Ví dụ 7:3 = dư 1

† n =

† 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 / 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 = Dịch trái

A Å A - M

Khôi phục A, n = Dịch trái

A Å A - M

Q0Å 1, n =

Dịch trái 0010

Chương 3: Biểu diễn liệu 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 số chia Ỉ dương

„ Chia số ngun khơng dấu Ỉ thương

phần dư (đều số dương)

„ Hiệu chỉnh dấu:

† (+) : (+) Ỉ khơng hiệu chỉnh dấu kết † (+) : (-) Ỉ đảo dấu thương

(39)

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 liệu số học máy tính

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

1 Ngun tắc chung

† Floating Point Number Ỉ biểu diễn cho số thực † Tổng quát: số thực X biểu diễn theo

kiểu số dấu chấm động sau: X = M * RE

„ M phần định trị (Mantissa), „ R số (Radix),

„ E 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 liệu số học máy tính

2 Chuẩn IEEE754/85

† Cơ số R = † 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 liệu 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 liệu số học máy tính

Dạng 32-bit

† S bit dấu:

„ S = Ỉ Số dương „ S = Ỉ Số âm

† e (8 bit) mã excess-127 phần mũ E:

„ e = E + 127 Ỉ E = e – 127 „ giá trị 127 gọi độ lệch (bias)

† m (23 bit) phần lẻ phần định trị M:

„ M = 1.m

† Công thức xác định giá trị số thực:

X = (-1)S

(40)

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 liệu số học máy tính

Ví dụ 1

Xác định giá trị số thực biểu diễn 32-bit sau:

† 1100 0001 0101 0110 0000 0000 0000 0000

„ S = Ỉ Số âm

„ e = 1000 00102= 130 Ỉ E = 130 – 127 =

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 liệu số học máy tính

Ví dụ 2

Biểu diễn số thực X = 83.75 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 = số dương

„ E = e-127=6 Ỉe = 127+6=13310= 1000 01012

† Vậy:

X = 0100 0010 1010 0111 1000 0000 0000 0000

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

Các quy ước đặc biệt

† Các bit e 0, bit m 0, X= ±

x000 0000 0000 0000 0000 0000 0000 0000 Ỉ X= ±

† Các bit e 1, bit m 0, X= ±∞

x111 1111 1000 0000 0000 0000 0000 0000 Ỉ X= ±∞

† Các bit e 1, cịn m có bit 1,

nó khơng biểu diễn cho số (NaN – not a number)

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

Dải giá trị biểu diễn

(41)

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 liệu số học máy tính

Dạng 64-bit

† S bit dấu

† e (11 bit) mã excess-1023 phần mũ E:

Ỉ E = e – 1023

† m (52 bit) phần lẻ phần định trị M: † Giá trị 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 liệu số học máy tính

Dạng 80-bit

† S bit dấu

† e (15 bit) mã excess-16383 phần mũ E:

Ỉ E = e – 16383

† m (64 bit) phần lẻ phần định trị M: † Giá trị 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 liệu 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 liệu số học máy tính

1 Bộ mã ASCII

† Do ANSI (American National Standard

Institute) thiết kế

† Bộ mã bit Ỉ mã hóa 28 =256 ký

tự, có mã từ: 0016÷ FF16 , đó:

(42)

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 liệu số học máy tính

ASCII Character

Code

128 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 liệu số học máy tính

Các ký tự chuẩn

† 26 chữ 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ữ 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

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

Các ký tự chuẩn (tiếp)

† 10 chữ số thập phân từ đến 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

Chương 3: Biểu diễn liệu 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: &, $, @, #

(43)

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 liệu số học máy tính

Các mã điều khiển: có mã 0016÷ 1F16và 7F16

† Các mã ký tự điều khiển định dạng (điều khiể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 liệu 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 đị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 IBM Ỉ IBM-PC

„ Bộ mã ký tự mở rộng Apple Ỉ Macintosh

„ Có thể thay đổi ký tự mở rộng để mã hóa

cho ký tự riêng tiếng Việt, ví dụ 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 liệu số học máy tính

2 Bộ mã hợp Unicode

† Do 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ợ 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 liệu số học máy tính

Unicode Character

Code

(44)

Chương 4

BỘ 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 CPU 4.2 Tập lệnh

4.3 Hoạt động CPU

4.4 Cấu trúc 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 CPU Nhiệm vụ cấu trúc CPU

† Nhiệm vụ CPU

¾ Nhận lệnh (Fetch Instruction): CPU đọc lệnh từ nhớ

¾ Giải mã lệnh (Decode Instruction): Xác định thao tác mà lệnh yêu cầu

¾ Nhận liệu (Fetch Data): nhận liệu từ nhớ cổng vào-ra

¾ Xử lý liệu (Process Data): thực phép toán số học hay phép toán logic với liệu

¾ Ghi liệu (Write Data): ghi liệu 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

(45)

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 CPU

† Đơn vị điều khiển (Control Unit – CU)

† Đơn vị số học logic (Arithmetic and

Logic Unit - ALU)

† Tập ghi (Register File - RF)

† Đơn vị nối ghép bus (Bus Interface Unit

-BIU)

† Bus bên (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 logic

† Chức năng: Thực phép toán số

học 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

„ Điều khiển nhận lệnh từ nhớ đưa vào

thanh ghi lệnh

„ Tăng nội dung PC để trỏ sang lệnh kế

tiếp

„ Giải mã lệnh nhận để xác định thao

tác mà lệnh yêu cầu

„ Phát tín hiệu điều khiển thực

lệnh

„ Nhận tín hiệu yêu cầu từ bus hệ thống

(46)

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

† Mã lệnh từ ghi lệnh đưa đến để giải

† Các cờ từ 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 từ đơn vị điều khiển † Các tín hiệu điều khiển bên CPU:

„ Điều khiển ghi

„ Điều khiển ALU

† Các tín hiệu điều khiển bên ngồi CPU:

„ Điều khiển nhớ

„ Đ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 4.12

Chương 4: CPU

4 Tập ghi

† Chức đặc điểm:

„ Tập hợp ghi nằm CPU

„ Chứa thông tin tạm thời phục vụ cho

hoạt động thời điểm CPU

„ Được coi mức hệ thống nhớ „ Tuỳ thuộc vào xử lý cụ thể

„ Số lượng ghi nhiều Ỉ tăng hiệu

của CPU

(47)

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 ghi theo chức năng

† Thanh ghi địa chỉ: quản lý địa ngăn

nhớ hay cổng vào-ra

† Thanh ghi liệu: chứa tạm thời liệu † Thanh ghi đa năng: chứa địa

dữ liệu

† Thanh ghi điều khiển/trạng thái: chứa

thông tin điều khiển trạng thái CPU

† Thanh ghi lệnh: chứa lệnh thực

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ố ghi điển hình

† Các ghi địa

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

„ Con trỏ liệu DP (Data Pointer) „ Con trỏ ngăn xếp SP (Stack Pointer) „ Thanh ghi sở ghi số

(Base Register & Index Register)

† Các ghi 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 gọi trỏ lệnh IP

(Instruction Pointer)

† Giữ địa lệnh

nhận vào

† Sau lệnh nhận vào, nội dung

PC tự động tăng để trỏ sang lệnh

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

Chương 4: CPU

(48)

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 trỏ liệu

† Chứa địa ngăn nhớ liệu mà

CPU muốn truy nhập

† Thường có số ghi trỏ

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 ghi trỏ 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 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

† Đáy ngăn xếp ngăn nhớ xác định † Đỉnh ngăn xếp thông tin nằm vị trí

trên ngăn xếp

† Đỉnh ngăn xếp 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 ngăn nhớ đỉnh ngăn xếp † Khi cất thông tin vào ngăn xếp:

„ Nội dung SP tự động giảm

„ Thông tin cất vào ngăn nhớ trỏ SP † Khi lấy thông tin khỏi ngăn xếp:

„ Thông tin đọc từ ngăn nhớ trỏ SP „ Nội dung SP tự động tăng

(49)

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 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 sở ghi số

† Thanh ghi sở: chứa địa ngăn

nhớ sở (địa sở)

† Thanh ghi số: chứa độ lệch địa

ngăn nhớ mà CPU cần truy nhập so với ngăn nhớ sở (chỉ số)

† Địa ngăn nhớ cần truy nhập = địa

chỉ sở + 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 ghi sở ghi số

Thanh ghi sở

Thanh ghi số

Ngăn nhớ 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 ghi liệu

† Chứa liệu tạm thời kết

quả trung gian

† Cần có nhiều ghi liệu

† Các ghi số nguyên: 8, 16, 32, 64

bit

(50)

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 ghi cờ (Flag Register) † Chứa thông tin trạng thái CPU

„ Các cờ phép toán: báo hiệu trạng thái kết

phép toán

„ Các cờ điều khiển: biểu thị trạng thái điều khiển

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 tốn

† Cờ Zero (cờ rỗng): thiết lập lên kết

quả phép toán

† Cờ Sign (cờ dấu): thiết lập lên kết

phép toán nhỏ

† Cờ Carry (cờ nhớ): thiết lập lên phép

tốn có nhớ ngồi bit cao Ỉ cờ báo tràn với số khơng dấu

† Cờ Overflow (cờ tràn): thiếp lập lên

cộng hai số nguyên dấu mà kết 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 = Ỉ 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 gửi tới

„ Nếu IF = Ỉ CPU trạng thái cấm ngắt với tín hiệu

yêu cầu ngắt từ bên 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 tập lệnh

† Mỗi xử lý có 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 chuỗi số nhị phân mà xử lý hiểu

được để thực thao tác xác định

† Các lệnh mô tả ký hiệu gợi nhớ Ỉ

(51)

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 lệnh máy

† Mã thao tác (operation code → opcode):

mã hóa cho thao tác mà xử lý phải thực

† Địa toán hạng: nơi chứa toán

hạng mà thao tác tác động

„ Toán hạng nguồn: liệu vào thao tác „ Tốn hạng đích: liệu 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 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ý 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 liệu

† MOVE Copy liệu từ nguồn đến đích † LOAD Nạp liệu từ nhớ đến xử lý † STORE Cất liệu từ xử lý đến nhớ † EXCHANGE Trao đổi nội dung nguồn đích † CLEAR Chuyển bit vào tốn hạng đích † SET Chuyển bit vào tố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

tố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

(52)

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 phép AND hai toán hạng † OR Thực phép OR hai toán hạng † XOR Thực phép XOR hai toán hạng † NOT Đảo bit toán hạng (lấy bù 1)

† TEST Thực phép AND 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ạ lệnh AND, OR, XOR

† Giả sử có hai ghi chứa liệu sau:

(R1) = 1010 1010

(R2) = 0000 1111

† R1 Å (R1) AND (R2) = 0000 1010

Phép toán AND dùng để xoá số bit giữ nguyên số bit cịn lại tốn hạng

† R1 Å (R1) OR (R2) = 1010 1111

Phép toán OR dùng để thiết lập số bit giữ ngun số bit cịn lại tốn hạng

† R1 Å (R1) XOR (R2) = 1010 0101

Phép toán XOR dùng để đảo số bit giữ ngun số bit cịn lại tố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 chuyên dụng

† INPUT Copy liệu từ cổng xác

định đến đích

† OUTPUT Copy 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 địa xác định

† JUMP CONDITIONAL - Lệnh nhảy có điều kiện:

„ Điều kiện Ỉ nạp PC địa xác định „ Điều kiện sai Ỉ khơng làm

† CALL - Lệnh gọi chương trình con:

„ Cất nội dung PC (địa trở về) vị trí xác định

(thường Stack)

„ Nạp vào PC địa lệnh chương trình

† RETURN - Lệnh trở từ chương trình con:

„ Khôi phục địa trở trả lại cho PC để trở chương

(53)

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 lệnh

ở vị trí có địa 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 lệnh:

„ Nếu điều kiện Ỉ chuyển tới thực lệnh vị

trí có địa XXX PC Å XXX

„ Nếu điều kiện sai Ỉ chuyển sang thực lệnh kế

tiếp

† Điều kiện thường kiểm tra thơng qua 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 Lệnh rẽ nhánh XXX

Lệnh Lệnh

Lệnh Lệnh

Lệnh XXX

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 RETURN

‰ Lệnh gọi chương trình con: lệnh CALL

„ Cất nội dung PC (chứa địa lệnh kế tiếp)

Stack

„ Nạp vào PC địa lệnh chương

trình gọi

Ỉ Bộ xử lý chuyển sang thực chương trình

con tương ứng

‰ Lệnh trở từ chương trình con: lệnh RETURN

(54)

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 RETURN

Lệnh

Lệnh CALL CTcon

Lệnh

RETURN Lệnh

Lệnh

CTcon

Lệnh 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 † HALT Dừng thực chương trình

† WAIT Tạm dừng thực chương trình, lặp

kiểm tra điều kiện thoả mãn tiếp tục thực

† 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 (addressing modes)

Khái niệm định địa (addressing)

† Tốn hạng lệnh là:

„ Một giá trị cụ thể

„ Nội dung ghi

„ Nội dung ngăn nhớ cổng vào-ra

† Phương pháp định địa cách thức địa

chỉ hoá trường đị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 thông dụng

† Định địa tức † Định địa ghi † Định địa trực tiếp

(55)

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 tức thì

† Tốn hạng nằm Trường địa lệnh † Chỉ tốn hạng nguồn

† Ví dụ:

ADD R1,5 ; R1 Å R1+5

† Không tham chiếu nhớ † Truy nhập toán hạng nhanh † Dải giá trị toán hạng bị hạn chế † Sơ đồ định địa 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 ghi

† Tốn hạng chứa ghi có tên

Trường địa lệnh

† Ví dụ:

ADD R1, R2 ; R1 Å R1+R2

† Số lượng ghi Ỉ Trường địa chỉ cần bit † Khơng tham chiếu nhớ

† Truy nhập toán hạng nhanh

† Tăng số lượng ghi Ỉ hiệu

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 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 trực tiếp

† Tốn hạng ngăn nhớ có địa

ra trực tiếp Trường địa lệnh

† Ví dụ: ADD R1, A ; R1 Å R1+(A)

„ Cộng nội dung ghi R1 với nội dung

của ngăn nhớ có địa A

„ Tìm tốn hạng nhớ địa A

† CPU tham chiếu nhớ lần để truy

(56)

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 trực tiếp

Mã thao tác Địa

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 gián tiếp qua ghi † Tốn hạng ngăn nhớ có địa nằm

trong ghi

† Trường địa lệnh cho biết tên

ghi

† Thanh ghi ngầm định

† Thanh ghi gọi ghi trỏ † Vùng nhớ tham chiếu lớn

(2n), (với n độ dài 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 gián tiếp qua ghi Mã thao tác Tên ghi

Toán hạng

Bộ nhớ Địa

Tập 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 gián tiếp qua ngăn nhớ † Ngăn nhớ trỏ Trường địa

lệnh chứa địa tốn hạng

† Có thể gián tiếp nhiều lần

† Giống khái niệm biến trỏ biến

động lập trình

† CPU phải thực tham chiếu nhớ

nhiều lần để tìm tốn hạng Ỉ chậm

(57)

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 gián tiếp qua ngăn nhớ Mã thao tác Địa

Địa

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 dịch chuyển

† Để xác định toán hạng Trường địa

lệnh chứa hai thành phần:

„ Tên ghi

„ Hằng số

† Địa toán hạng = nội dung ghi

+ số

† Thanh ghi 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 dịch chuyển

Mã thao tác Tên ghi

Toán hạng

Bộ nhớ Tập 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 định địa dịch chuyển

† Địa hoá tương PC

„ Thanh ghi Bộ đếm chương trình PC

„ Tốn hạng có địa cách ngăn nhớ trỏ PC

một độ lệch xác định

† Định địa sở

„ Thanh ghi chứa địa sở „ Hằng số số

(58)

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 CPU Chu trình lệnh

„ Nhận lệnh

„ Giải mã lệnh

„ Nhận toán hạng

„ Thực 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 lệnh cần nhận từ

đếm chương trình PC bus địa

† CPU phát tín hiệu điều khiển đọc nhớ † Lệnh từ nhớ đặt lên bus liệu

được CPU copy vào 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ả 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ừ ghi lệnh IR đư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

(59)

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 liệu

† CPU đưa địa toán hạng bus địa

chỉ

† CPU phát tín hiệu điều khiển đọc † Toán hạng đọc vào CPU † Tương tự 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 liệu gián tiếp

† CPU đưa địa bus địa † CPU phát tín hiệu điều khiển đọc

† Nội dung ngăn nhớ đọc vào CPU,

chính địa toán hạng

† Địa CPU phát bus địa để

tìm tốn hạng

† CPU phát tín hiệu điều khiển đọc † Toán hạng đọ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 lệnh

† Có nhiều dạng tuỳ thuộc vào lệnh † Có thể là:

„ Đọc/Ghi nhớ

„ Vào/Ra

„ Chuyển ghi „ Thao tác số học/logic

(60)

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 bus địa

† CPU đưa liệu cần ghi bus liệu † CPU phát tín hiệu điều khiển ghi

† Dữ liệu bus liệu 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ả q trình ghi tố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 đếm chương trình PC (địa trở

về sau ngắt) đưa bus liệu

† CPU đưa địa (thường lấy từ trỏ ngăn

xếp SP) bus địa

† CPU phát tín hiệu điều khiển ghi nhớ

† Địa trở bus liệu ghi vị trí xác

định (ở ngăn xếp)

† Địa lệnh chương trình điều

khiển ngắt 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

(61)

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ơng đoạn cho phép

thực gối lên (như dây chuyền lắp ráp)

† Chẳng hạn có cơng đoạn:

„ Nhận lệnh (Fetch Instruction – FI) „ Giải mã lệnh (Decode Instruction – DI)

„ Tính địa toán hạng (Calculate Operand Address – CO) „ Nhận toán hạng (Fetch Operands – FO)

„ Thực 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 đườ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 đường ống lệnh

† Xung đột cấu trúc: nhiều công đoạn

dùng chung tài nguyên

† Xung đột liệu: lệnh sau sử dụng liệu

kết lệnh trước

† Xung đột điều khiển: rẽ nhánh gây

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

Chương 4: CPU

(62)

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ý 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 đặc biệt

„ Đơn vị xử lý liệu âm „ Đơn vị xử lý liệu hình ảnh „ Đơn vị xử lý 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 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 liệu

Ỉ Giải xung đột nhận lệnh 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ý nhớ

† Chuyển đổi địa ảo thành địa vật lý † Cung cấp chế phân trang/phân đoạn † Cung cấp chế độ bảo vệ 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

(63)

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 ghi bên trong: 16-bit

† Xử lý phép toán số nguyên với 16-bit † Quản lý 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 ghi bên trong: 32 bit

† Xử lý phép toán số nguyên với 32-bit † Có chế độ làm việc

„ Chế độ 8086 thực (Real 8086 mode): làm việc

như xử lý 8086

„ Chế độ 8086 ảo (Virtual 8086 mode): làm việc

như nhiều xử lý 8086 (đa nhiệm 16-bit)

„ Chế độ bảo vệ (Protected mode) † Đa nhiệm 32-bit

† Quản lý nhớ ảo

† Xử lý 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 ghi bên trong: 64 bit

† Xử lý phép toán số nguyên với 64-bit † Xử lý phép toán số dấu chấm động † Khơng tương thích phần cứng với xử

lý trước

† Tương thích phần mềm cách giả lập

(64)

Chương 5

BỘ 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 hệ thống nhớ † 5.2 Bộ nhớ bán dẫn

† 5.3 Bộ nhớ † 5.4 Bộ nhớ cache † 5.5 Bộ nhớ

† 5.6 Hệ thống nhớ 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 hệ thống nhớ

1 Các đặc trưng hệ thống nhớ

† Vị trí

„ Bên CPU:

† tập ghi

„ Bộ nhớ

† nhớ † nhớ cache

„ Bộ nhớ ngoài: thiết bị nhớ † Dung lượng

„ Độ dài từ nhớ (tính 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 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 (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)

(65)

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 hệ thống nhớ (tiếp) † Hiệu

„ 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 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

† 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 nhớ Tiêu chuẩn

Khả

xóa Cơ 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, chip Electrically Erasable

PROM (EEPROM)

Bằng điện, mức byte Flash Memory Bằng điện,

mức khối Random Access

Memory (RAM)

Bằng điện,

mức byte Khả biến Bộ nhớ

đọc-ghi Bộ nhớ

chỉ đọc Bằng điện

(66)

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ữ thông tin sau:

„ Thư viện chương trình

„ Các chương trình điều khiển hệ thống (BIOS)

„ Các bảng chức

„ 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 ghi sản xuất „ đắt

† PROM (Programmable ROM)

„ Cần thiết bị chuyên dụng để ghi

chương trình → ghi lần

† EPROM (Erasable PROM)

„ Cần thiết bị chuyên dụng để ghi

chương trình → ghi nhiều lần

„ Trước ghi lại, xóa 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 byte

„ Xóa điện

† Flash Memory (Bộ nhớ cực nhanh)

„ Ghi theo khối

„ Xóa đ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

(67)

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 lưu trữ 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 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 lưu trữ 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 † Rẻ tiền

† Dùng làm 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 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 chip nhớ

(68)

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 chip nhớ

† Các đường địa chỉ: An-1÷ A0→ có 2n từ nhớ † Các đường liệu: Dm-1 ÷ D0 → độ dài từ

nhớ = m bit

† Dung lượng chip nhớ = 2nxm 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

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 DRAM

† Dùng n đường địa dồn kênh → cho phép

truyền 2n bit địa

† Tín hiệu chọn địa hàng RAS

(Row Address Select)

† Tín hiệu chọn địa cột CAS

(Column Address Select)

† Dung lượng DRAM = 22nxm 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ớ = 2nxm bit † Cần thiết kế để tăng dung lượng:

(69)

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 x4 bit

† Thiết kế mô-đun nhớ 4K x8 bit Giải:

† Dung lượng chip nhớ = 212x4 bit

† chip nhớ có: „ 12 chân địa „ chân liệu † mơ-đun nhớ cần có:

„ 12 chân địa „ chân 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

CS

WE OE

CS CS

OE

OE WE

WE

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 tốn tăng độ dài từ nhớ tổng quát † Cho chip nhớ 2nxm bit

† Thiết kế mô-đun nhớ 2nx(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 x8 bit

† Thiết kế mô-đun nhớ 8K x8 bit Giải:

† Dung lượng chip nhớ = 212x8 bit † chip nhớ có:

„ 12 chân địa „ chân liệu

† Dung lượng mô-đun nhớ = 213x8 bit: „ 13 chân địa

(70)

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 x

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 1 1

0 1 1 1 1 1 1 x x 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 lần:

„ Cho chip nhớ SRAM 4K x8 bit

„ Thiết kế mô-đun nhớ 16K x8 bit

2 Tăng số lượng từ nhớ gấp lần:

„ Cho chip nhớ SRAM 4K x8 bit

„ Thiết kế mô-đun nhớ 32K x8 bit

3 Thiết kế kết hợp:

„ Cho chip nhớ SRAM 4K x4 bit

„ Thiết kế mô-đun nhớ 8K x8 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

† Chứa chương trình thực

dữ liệu sử dụng

† Tồn hệ thống máy tính

† Bao gồm ngăn nhớ đánh địa trực tiếp

bởi CPU

† Dung lượng nhớ nhỏ không gian

địa nhớ mà CPU quản lý

† Việc quản lý logic nhớ tùy thuộc vào hệ

(71)

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 nhớ đan xen

† Độ rộng bus liệu để trao đổi với

nhớ: m = 8, 16, 32, 64, 128 … bit

† Các ngăn nhớ tổ chức theo byte

→ tổ chức nhớ vật lý khác

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 → 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 2i AN-1 ÷ A1

D7 ÷ D0

2i+1 Băng Băng BE0 BE1

D15 ÷ D8

Bộ tạo tín hiệu chọn byte BE1 BE0 A0 B W Chọn byte

0 Chọn byte Chọn byte cao Chọn byte thấp 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 12 16 4i AN-1 ÷ A2

D7 ÷ D0

13 17 4i+1 Băng Băng BE0 BE1

D15 ÷ D8

Bộ tạo tín hiệu chọn byte BE3 BE0 A0 B W 10 14 18 4i+2 Băng BE2 D23 ÷ D16

3 11 15 19 4i+3 Băng BE3 D31 ÷ D24

BE2 BE1 A1

(72)

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) Nguyên tắc chung

† Cache có tốc độ nhanh nhớ

† Cache đặt CPU nhớ nhằm tăng tốc

độ truy nhập nhớ CPU

† Cache đặt chip 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ụ thao tác cache

† CPU yêu cầu nội dung ngăn nhớ † CPU kiểm tra cache với liệu † Nếu có, CPU nhận liệu từ cache (nhanh) † Nếu khơng có, đọc block nhớ chứa liệu

từ nhớ vào cache

† Tiếp chuyển 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 cache/bộ nhớ chính

B0 B1 B2 B3 B4 B5 Bi

Bp-1 L0

L1 L2 L3 Li Lm-1

Bộ nhớ Cache

Tag

(73)

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 cache/bộ nhớ chính

† Một số Block nhớ nạp vào Line

của cache

† Nội dung Tag (thẻ nhớ) cho biết block nhớ

chính chứa line

† Khi CPU truy nhập (đọc/ghi) từ nhớ, có khả

năng xảy ra:

„ Từ nhớ có cache (cache hit) „ Từ nhớ khơng có cache (cache miss)

† Vì số line cache số block nhớ chính,

cần có thuật giải ánh xạ thơng tin 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 nhớ nạp vào

line 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

Ỉ Bjchỉ 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ớ Cache

Tag Line Byte

So sánh n1 n2 n3 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 CPU phát có N bit, chia thành

trường:

„ Trường Byte (có n1 bit) để xác định byte nhớ

trong Line (Block)

2n1= kích thước Line

„ Trường Line (có n2bit) để xác định Line

Cache

2n2= số Line Cache

Ỉ Dung lượng Cache = 2n1* 2n2= 2n1+n2 „ Trường Tag (có n3bit): số bit lại

(74)

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 nạp vào line

của cache

† Địa nhớ CPU phát chia thành

2 phần: tag byte

† Để kiểm tra xem block có cache hay

khơng, phải đồng thời kiểm tra tất tag line cache

Ỉ Cần 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 Mapping

† Là phương pháp dung hòa phương pháp † Chia cache thành tập: S0, S1, S2

† Mỗi Set có số Line (2, 4, 8, 16 Line)

vd Set có line: 2-way Set Associative Mapping

† Mỗi block nạp vào line Set

định:

B0→ S0 B1→ S1

Bk-1 → Sk-1 Bk → S0

† Địa CPU phát có 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

(75)

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ó: nhớ = 256 MB

Cache = 128 KB Line = 16 Byte

† Xác định số bit trường địa

„ Ánh xạ trực tiếp

„ Ánh xạ liên kết tập hợp 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 = 24Byte Ỉ n 1= bit

† Tính cho trường Line:

Số line Cache: 128.210/16 = 213 Ỉ n

2= 13 bit

† Tính cho trường Tag:

n3= N - (n1 + n2) = 28 - (4 + 13) = 11 bit 2) - Trường Byte: n1= bit

- Trường Set:

Số Set = Số line/4 = 213/4 = 211 Ỉ n

2 = 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 block cache

† Khi CPU truy nhập thông tin mà khơng

có cache (cache miss) nạp block chứa thơng tin vào cache để thay block cũ cache

† Ánh xạ trực tiếp Ỉ có cách nạp Ỉ

không cần thuật giải để nạp

† phương pháp ánh xạ liên kết Ỉ cần có

thuật giải để lựa chọn thay

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 block cache (tiếp)

1 Random: thay block cách ngẫu nhiên

2 FIFO (First In, First Out): thay block tồn lâu toàn cache ánh xạ liên kết

toàn phần, set ánh xạ liên kết tập hợp.

3 LFU (Least Frequently Used): thay block có số lần truy nhập

(76)

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 liệu cache hit † Ghi xuyên qua (Write through)

„ ghi cache nhớ

„ tốc độ chậm

† Ghi trả sau (Write back)

„ ghi cache

„ tốc độ nhanh

„ block cache bị thay cần phải

ghi trả block 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 xử lý Intel

† 80386: khơng có cache chip † 80486: 8KB

† Pentium: có cache L1 chip „ cache lệnh = 8KB

„ cache liệu = 8KB

† Pentium 4: hai mức cache L1 L2 chip „ Cache L1:

† cache L1, cache 8KB † kích thước Line = 64 byte

„ Cache L2:

† 256 KB - 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ớ ngồi Các kiểu nhớ

† Đĩa từ (Magnetic Disk) † Đĩa quang (Optical Disk) † Flash Disk

(77)

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

(78)

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ỏ: tới 1.44 MB † Tốc độ chậm (360 rpm)

† Thông dụng † Rẻ tiền

† Tương lai 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 nhiều đĩa † Thông dụng

† Dung lượng tăng lên 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 đĩa cứng vật lý HĐH coi ổ

logic

† Dữ liệu lưu trữ phân tán ổ đĩa vật lý † Có thể sử dụng dung lượng dư thừa để lưu trữ

thông tin kiểm tra chẵn lẻ, cho phép khôi phục lại thông tin trường hợp đĩa bị hỏng

† 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 phiên ghi nhiều phiên „ Ổ CD-RW

(79)

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: dùng ổ đĩa xem

video

„ Digital Versatile Disk: ổ máy tính

„ Ghi hai mặt

„ Một hai lớp 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 – 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ớ PC nay

† Bộ nhớ cache: tích hợp chip vi xử lý † Bộ nhớ chính: tồn dạng mơ-đun

nhớ RAM

„ SIMM – Single Inline Memory Module

† 30 chân: đường liệu † 72 chân: 32 đường liệu

„ DIMM - Dual Inline Memory Module

† 168 chân: 64 đường 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ớ PC (tiếp)

† ROM BIOS chứa 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 (BIOS) † CMOS RAM:

„ Cấu hình hệ thống „ Đồng hồ hệ thống „ Có pin ni riêng

(80)

Chương 6

HỆ 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 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 PC

Chương 6: Hệ thống vào-ra

6.1 Tổng quan hệ thống vào-ra

1 Giới thiệu chung

† Chức hệ thống vào-ra: Trao đổi

thông tin máy tính với giới bên ngồi

† Các thao tác bản: „ Vào liệu (Input) „ Ra liệu (Output) † Các thành phần

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

„ Các môđun vào-ra

Chương 6: Hệ thống vào-ra

Đặc điểm vào-ra

† Tồn đa dạng thiết bị ngoại vi (TBNV)

khác về:

„ Nguyên tắc hoạt động „ Tốc độ

„ Khuôn dạng liệu

† Tất TBNV chậm CPU RAM

(81)

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 liệu bên

trong bên ngồ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 thiết bị

theo dõi 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 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 TBNV

† Bộ chuyển đổi tín hiệu: chuyển đổi liệu

giữa bên bên máy tính

† Bộ đệm liệu: đệm liệu truyền

giữa môđun vào-ra 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 định thời „ Trao đổi thông tin với CPU „ Trao đổi thông tin với TBNV

(82)

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 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 môđun vào-ra

† Thanh ghi đệm liệu: đệm liệu

quá trình trao đổi

† Các cổng vào-ra (I/O Port): kết nối với

TBNV, cổng có địa 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ổng vào-ra

† Khối logic điều khiển: điều khiển môđun

vào-ra

Chương 6: Hệ thống vào-ra

4 Các phương pháp địa hóa cổng vào-ra

a Khơng gian địa xử lý

† Một số xử lý quản lý

một không gian địa nhất, gọi không gian địa nhớ

„ N bit địa → có 2N địa „ Ví dụ: xử lý 680x0

của Motorola

000 000

Không gian địa nhớ

000 001 000 010 000 011 000 100 000 101

111 111 N bit

Chương 6: Hệ thống vào-ra

Không gian địa xử lý (tiếp)

† Một số xử lý quản lý hai không gian địa

chỉ tách biệt

(83)

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 tách biệt xử lý

000 000

Không gian địa nhớ

000 001 000 010 000 011 000 100 000 101 111 111 N bit 00 00 Không gian địa vào-ra

00 01 00 10 00 11 11 11 N1bit

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 tách biệt xử lý (tiếp)

† Đặc điểm 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 nhớ hay không gian địa vào-ra

„ Tập lệnh có lệnh vào-ra chuyên dụng (IN, OUT)

† Ví dụ: Các xử lý 80x86 Pentium (Intel)

„ Pentium

† Không gian địa nhớ = 232 byte = GB † Không gian địa vào-ra = 216byte = 64 KB

† Tín hiệu điều khiển:

† Hai lệnh vào-ra chuyên dụng: IN, OUT

IO M/

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 hóa cổng vào-ra

† Vào-ra theo đồ 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 đồ nhớ

† Cổng vào-ra đánh địa theo không

gian địa nhớ

† Vào-ra giống đọc/ghi nhớ

† CPU trao đổi liệu với cổng vào-ra thông

qua lệnh truy nhập liệu nhớ

(84)

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 đánh địa theo không

gian địa vào-ra riêng biệt

† CPU trao đổi liệu với cổng vào-ra thông

qua lệnh vào-ra chuyên dụng (IN, OUT)

† Chỉ thực hệ thống có

không gian địa 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 chương trình

(Programmed IO)

† Vào-ra điều khiển ngắt

(Interrupt Driven IO)

† Truy nhập nhớ trực tiếp – DMA

(Direct Memory Access)

Chương 6: Hệ thống vào-ra

1 Vào-ra chương trình

† Nguyên tắc chung: CPU điều khiển trực tiếp

vào-ra chương trình „ Kiểm tra trạng thái TBNV „ Phát tín hiệu điều khiển đọc/ghi „ Trao đổi liệu

Chương 6: Hệ thống vào-ra

Lưu đồ chương trình

Đọc trạng thái mơđun vào-ra

Mơđun vào-ra có sẵn sàng?

Trao đổi liệu với môđun vào-ra

(85)

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 vào-ra chương trình

† CPU yêu cầu thao tác vào-ra

† Môđun vào-ra thực thao tác

† Môđun vào-ra thiết lập bit trạng thái

† CPU kiểm tra bit trạng thái:

„ Nếu chưa sẵn sàng quay lại kiểm tra „ Nếu sẵn sàng chuyển sang trao đổi

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 ý muốn 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 ngắt

† Nguyên tắc chung:

„ CPU đợi trạng thái sẵn sàng

môđun vào-ra, CPU thực chương trình

„ Khi mơđun vào-ra sẵn sàng phát tín

hiệu ngắt CPU

„ CPU thực chương trình vào-ra

tương ứng để trao đổi liệu

„ CPU trở lại tiếp tục thực 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 ngắt

lệnh lệnh lệnh lệnh

lệnh i

lệnh i+1

RETURN

lệnh

lệnh

Chương trình thực

lệnh

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

vụ vào-ra

lệnh lệnh

(86)

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 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 liệu từ TBNV,

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 liệu

† Môđun vào-ra chuyển 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 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 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 ghi) „ Thực chương trình ngắt để vào

liệu

„ Khôi phục ngữ cảnh chương trình

thực

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 phần mềm

(Software Poll)

† Kiểm tra vòng phần cứng

(Daisy Chain hayHardware Poll)

† Sử dụng điều khiển ngắt (PIC)

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

(87)

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 phần mềm

† CPU thực phần mềm hỏi

môđun vào-ra

† Chậm

† Thứ tự môđun hỏi vịng 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 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 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

† Nếu mơđun vào-ra khơng gây ngắt gửi

tín hiệu đến môđun xác định môđun gây ngắt

† Môđun vào-ra gây ngắt đặ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 điều khiển ngắt

† Thứ tự môđun vào-ra kết nối 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 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

(88)

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 vào-ra điều khiển ngắt

† Có kết hợp phần cứng phần

mềm

„ Phần cứng: gây ngắt CPU „ Phần mềm: trao đổi liệu

† CPU trực tiếp điều khiển vào-ra

† CPU đợ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 chương trình ngắt

CPU trực tiếp điều khiển: „ Chiếm thời gian CPU

„ Tốc độ bị hạn chế phải chuyển qua CPU

† Để khắc phục dùng DMA

„ Thêm môđun phần cứng bus → DMAC

(DMA Controller)

„ DMAC điều khiển vào-ra không thông qua

CPU

Chương 6: Hệ thống vào-ra

Sơ đồ cấu trúc DMAC

Chương 6: Hệ thống vào-ra

Các thành phần DMAC

† Thanh ghi liệu: chứa liệu trao đổi

† Thanh ghi địa chỉ: chứa địa ngăn nhớ dữ

liệu

† Bộ đếm liệu: chứa số từ liệu (word)

cần trao đổi

† Logic điều khiển: điều khiển hoạt động

(89)

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 liệu „ Địa thiết bị vào-ra

„ Địa đầu mảng nhớ chứa liệu → nạp vào

ghi địa

„ Số từ liệu cần truyền → nạp vào đếm liệu

† CPU làm việc khác

† DMAC điều khiển trao đổi liệu † Sau truyền word thì:

„ nội dung ghi địa tăng „ nội dung đếm liệu giảm

† Khi đếm 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 DMA

† DMA truyền theo khối (Block transfer DMA): DMAC

sử dụng bus để truyền xong khối liệu

† DMA lấy chu kỳ (Cycle Stealing DMA): DMAC cưỡng

bức CPU treo tạm thời chu kỳ bus, DMAC chiếm bus thực truyền word

† DMA suốt (Transparent DMA): DMAC nhận

biết chu kỳ CPU khơng sử dụng bus chiếm bus để trao đổi 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ần

„ Giữa môđun vào-ra với DMAC „ Giữa DMAC với 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 vài môđun vào-ra † Mỗi lần truyền, DMAC sử dụng bus lần:

(90)

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 thiết bị cho phép

DMA

† Mỗi lần truyền, DMAC sử dụng bus lần:

„ Giữa DMAC với 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 DMA

† CPU không tham gia trình trao

đổi liệu

† DMAC điều khiển trao đổi liệu bộ

nhớ với mơđun vào-ra (hồn tồn bằng phần cứng) → tốc độ nhanh

† Phù hợp với u cầu trao đổi mảng dữ

liệu có kích thước lớn

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 thực

một xử lý vào-ra chuyên dụng

† Bộ xử lý vào-ra hoạt động theo chương

trình riêng nó

† Chương trình xử lý vào-ra có thể

nằm nhớ nằm một nhớ riêng

† Hoạt động theo kiến trúc đa xử lý

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

(91)

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 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 bit

† Cần có chuyển đổi từ liệu song song sang nối tiếp

hoặc/và ngược lại

† Tốc độ chậm

† Cần đường truyền 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 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 cổng vào-ra cho phép nối

ghép với nhiều TBNV

„ Ví dụ:

† SCSI (Small Computer System Interface):

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 PC

† Các cổng PS/2: nối ghép bàn phím chuột

† Cổng nối ghép hình

† Cổng LPT (Line Printer): nối ghép với máy in,

cổng song song (Parallel Port) – 25 chân

† Cổng COM (Communication): nối ghép với modem,

chuột, cổng nối tiếp (Serial Port) – chân 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ờ USB Hub

Ngày đăng: 28/04/2021, 04:54

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan