Post on 22-Apr-2018
1
Chương 1GIỚI THIỆU CHUNG
Phạm Quang Dũng
Bộ môn Khoa học máy tính - Khoa CNTT
Trường Đại học Nông nghiệp I – Hà Nội
website: www.hau1.edu.vn/it/pqdung
ĐT: (04) 8766318 DĐ: 0988.149.189
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.2
Chương 1: Giới thiệu chung
Nội dung chương 1
1.1. Máy tính và phân loại
1.2. Kiến trúc máy tính
1.3. Sự tiến hoá của máy tính
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.3
Chương 1: Giới thiệu chung
1.1. Máy tính và phân loại
1. Máy tính
Máy tính (Computer) là thiết bị điện tử thực hiện các công việc sau:
Nhận thông tin vào,
Xử lý thông tin theo dãy các lệnh được nhớ sẵn bên trong,
Đưa thông tin ra.
Dãy các lệnh nằm trong bộ nhớ để yêu cầu máy tính thực hiện công việc cụ thể được gọi là chương trình (program)
Máy tính hoạt động theo chương trình.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.4
Chương 1: Giới thiệu chung
Mô hình máy tính cơ bản
2
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.5
Chương 1: Giới thiệu chung
Mô hình phân lớp của máy tính
Phần cứng: hệ thống vật lý của máy tính
Phần mềm: các chương trình và dữ liệu
Người sử dụng(End User) Người lập trình
(Programmer)
Người thiết kế HĐH(OS Designer)
Các chương trình ứng dụng(Application Programs)
Các phần mềm trung gian (Utilities)
Hệ điều hành (Operating System)
Phần cứng (Computer Hardware)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.6
Chương 1: Giới thiệu chung
2. Phân loại máy tính
Phân loại truyền thống:
Máy vi tính (Microcomputer)
Máy tính nhỏ (Minicomputer)
Máy tính lớn (Mainframe Computer)
Siêu máy tính (Supercomputer)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.7
Chương 1: Giới thiệu chung
Phân loại máy tính hiện đại
Máy tính để bàn (Desktop Computers)
Máy chủ (Servers)
Máy tính nhúng (Embedded Computers)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.8
Chương 1: Giới thiệu chung
Máy tính để bàn (Desktop)
Là loại máy tính phổ biến nhất
Các loại máy tính để bàn
Máy tính cá nhân (Personal Computer – PC)
Máy tính trạm làm việc (Workstation Computer)
1981 IBM giới thiệu máy tính IBM-PC sử
dụng bộ xử lý Intel 8088
1984 Apple đưa ra máy tính Macintosh sử
dụng bộ xử lý Motorola 68000
Giá thành: 300USD đến 10.000USD
3
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.9
Chương 1: Giới thiệu chung
Máy chủ (Server)
Thực chất là máy phục vụ
Dùng trong mạng theo mô hình
Client/Server (Khách hàng/Người phục vụ)
Tốc độ và hiệu năng tính toán cao
Dung lượng bộ nhớ lớn
Độ tin cậy cao
Giá thành: hàng chục nghìn đến hàng chục
triệu USD.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.10
Chương 1: Giới thiệu chung
Máy tính nhúng (Embedded Computer)
Được đặt trong thiết bị khác để điều khiển thiết bị đó làm việc
Được thiết kế chuyên dụng
Ví dụ:
Điện thoại di động
Bộ điều khiển trong máy giặt, điều hoà nhiệt độ
Router - bộ định tuyến trên mạng
Giá thành: Vài USD đến hàng trăm nghìn USD.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.11
Chương 1: Giới thiệu chung
1.2. Kiến trúc máy tính
Kiến trúc máy tính bao gồm hai khía cạnh:
Kiến trúc tập lệnh (Intruction Set Architecture): nghiên cứu
máy tính theo cách nhìn của người lập trình.
Tổ chức máy tính (Computer Organization): nghiên cứu cấu
trúc phần cứng máy tính.
Kiến trúc tập lệnh thay đổi chậm, tổ chức máy tính thay đổi
rất nhanh.
Ví dụ: Các máy tính PC dùng các bộ xử lý Intel 32-bit từ
80386 đến Pentium 4:
Cùng chung kiến trúc tập lệnh (IA-32)
Có tổ chức khác nhau
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.12
Chương 1: Giới thiệu chung
Kiến trúc tập lệnh
Kiến trúc tập lệnh của máy tính bao gồm:
Tập lệnh: tập hợp các chuỗi số nhị phân mã
hoá cho các thao tác mà máy tính có thể thực
hiện.
Các kiểu dữ liệu: các kiểu dữ liệu mà máy tính
có thể xử lý.
4
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.13
Chương 1: Giới thiệu chung
Cấu trúc cơ bản của máy tính
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.14
Chương 1: Giới thiệu chung
Các thành phần cơ bản của máy tính
Bộ xử lý trung tâm (Central Processing Unit):
Điều khiển hoạt động của máy tính và xử lý dữ liệu.
Bộ nhớ chính (Main Memory): Chứa các chương
trình và dữ liệu đang được sử dụng.
Hệ thống vào ra (Input/Output System): Trao
đổi thông tin giữa máy tính với bên ngoài.
Liên kết hệ thống (System Interconnection):
Kết nối và vận chuyển thông tin giữa các thành
phần với nhau.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.15
Chương 1: Giới thiệu chung
1.3. Sự tiến hoá của máy tính
Thế hệ thứ nhất: Máy tính dùng đèn điện tử
chân không (1943-1956)
Thế hệ thứ hai: Máy tính dùng transistor
(1957-1965)
Thế hệ thứ ba: Máy tính dùng vi mạch SSI,
MSI và LSI (1966-1980)
Thế hệ thứ tư: Máy tính dùng vi mạch VLSI,
SLSI (1981-nay)
http://www.computerhistory.org/timeline/timeline.php
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.16
Chương 1: Giới thiệu chung
1. Máy tính dùng đèn điện tử
ENIAC - Máy tính điện tử đầu tiên
Electronic Numerical Intergator And Computer
Dự án của Bộ Quốc phòng Mỹ
Do John Mauchly và John Presper Eckert ở Đại
học Pennsylvania thiết kế.
Bắt đầu từ năm 1943, hoàn thành năm 1946
5
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.17
Chương 1: Giới thiệu chung
ENIAC (tiếp)
Nặng 30 tấn
Kích thước 140 m2
18000 đèn điện tử và 1500 rơle
5000 phép cộng/giây
Xử lý theo số thập phân
Bộ nhớ chỉ lưu trữ dữ liệu
Lập trình bằng cách thiết lập vị trí của các
chuyển mạch và các cáp nối.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.18
Chương 1: Giới thiệu chung
ENIAC (tiếp)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.19
Chương 1: Giới thiệu chung
ENIAC (tiếp)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.20
Chương 1: Giới thiệu chung
Máy tính von Neumann
Còn gọi là máy tính IAS:
Princeton Institute for Advanced Studies
Được bắt đầu từ 1947, hoàn thành 1952
Do John von Neumann thiết kế
Được xây dựng theo ý tưởng “chương trình được
lưu trữ” (stored-program concept) của von
Neumann/Turing (1945)
6
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.21
Chương 1: Giới thiệu chung
Đặc điểm chính của máy tính IAS
Bao gồm các thành phần: đơn vị điều khiển, đơn vị số
học và logic (ALU), bộ nhớ chính và các thiết bị vào ra.
Bộ nhớ chính chứa chương trình và dữ liệu.
Bộ nhớ chính được đánh địa chỉ theo từng ngăn nhớ,
không phụ thuộc vào nội dung của nó.
ALU thực hiện các phép toán với số nhị phân.
Đơn vị điều khiển nhận lệnh từ bộ nhớ, giải mã và thực
hiện lệnh một cách tuần tự.
Đơn vị điều khiển điều khiển hoạt động của các thiết bị
vào-ra.
Trở thành mô hình cơ bản của máy tính.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.22
Chương 1: Giới thiệu chung
John von Neumann và máy tính IAS
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.23
Chương 1: Giới thiệu chung
Các máy tính thương mại ra đời
1947 - Eckert-Mauchly Computer Corporation
UNIVAC I (Universal Automatic Computer)
1950s - UNIVAC II
Nhanh hơn
Bộ nhớ lớn hơn
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.24
Chương 1: Giới thiệu chung
John Mauchly và UNIVAC
7
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.25
Chương 1: Giới thiệu chung
UNIVAC
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.26
Chương 1: Giới thiệu chung
Hãng IBM
IBM – International Business Machine
1952 – IBM 701
Máy tính lưu trữ chương trình đầu tiên của IBM
Sử dụng cho tính toán khoa học
1955 – IBM 702
Các ứng dụng thương mại
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.27
Chương 1: Giới thiệu chung
IBM 701 (1952) và IBM 702 (1955)
IBM 701
IBM 702
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.28
Chương 1: Giới thiệu chung
2. Máy tính dùng transistor
Máy tính PDP-1 của DEC (Digital Equipment
Corporation) máy tính mini đầu tiên
IBM 7000
Hàng trăm nghìn phép cộng trong một giây
Các ngôn ngữ lập trình bậc cao ra đời.
8
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.29
Chương 1: Giới thiệu chung
DEC's PDP-1 (1960)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.30
Chương 1: Giới thiệu chung
IBM 7030 (1961)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.31
Chương 1: Giới thiệu chung
3. Máy tính dùng vi mạch SSI, MSI và LSI
Vi mạch (Integrated Circuit – IC): nhiều transistor và các phần tử khác được tích hợp trên một chip bán dẫn.
SSI (Small Scale Integratinon)
MSI (Medium Scale Integration)
LSI (Large Scale Integration)
VLSI (Very Large Scale Integration) (dùng cho máy tính hệ thứ tư)
Siêu máy tính xuất hiện: CRAY-1, VAX
Bộ vi xử lý (microprocessor) ra đời
Bộ xử lý đầu tiên Intel 4004 (1971).
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.32
Chương 1: Giới thiệu chung
Luật Moore
Gordon Moore - người đồng sáng lập Intel
Số transistors trên chip sẽ gấp đôi sau 18 tháng
Giá thành của chip hầu như không thay đổi
Mật độ cao hơn, do vậy đường dẫn ngắn hơn
Kích thước nhỏ hơn dẫn tới độ phức tạp tăng lên
Điện năng tiêu thụ ít hơn
Hệ thống có ít các chip liên kết với nhau, do đó
tăng độ tin cậy
9
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.33
Chương 1: Giới thiệu chung
Tăng trưởng số transitor trong chip CPU
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.34
Chương 1: Giới thiệu chung
IBM 360 Family (1964-1968)
Có từ model 20 minicomputer (bộ nhớ 24 KB) đến model 91 supercomputer được xây dựng cho hệ thống phòng thủ tên lửa Bắc Mỹ.
http://www.beagle-ears.com/lars/engineer/comphist/ibm360.htm
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.35
Chương 1: Giới thiệu chung
IBM 360/40
Dùng HĐH DOS/360
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.36
Chương 1: Giới thiệu chung
IBM 360/67
Time sharing
system
Phần cứng hỗ trợ
virtual memory
Dùng HĐH CP-67
500 KB RAM
10
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.37
Chương 1: Giới thiệu chung
IBM 360/91
Được thiết kế để xử lý dữ liệu tốc độ cao cho các ứng dụng khoa học
như khám phá không gian, vật lý nguyên tử, dự báo thời tiết toàn cầu.
16.6 triệu phép cộng/giây → 1000 bài toán với 200 tỷ phép tính/ngày.
2-6 MB main memory, CPU có 5 đơn vị xử lý đồng thời.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.38
Chương 1: Giới thiệu chung
PDP-11 (1972)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.39
Chương 1: Giới thiệu chung
Siêu máy tính CRAY-1 (1976)
Saymour Cray
HĐH Cray Operating System (COS),100-160 triệu phép tính dấu chấm động/giây (megaflops)Xử lý dữ liệu vector8 MB main memory
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.40
Chương 1: Giới thiệu chung
1977 - PC có tích hợp màn hình
11
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.41
Chương 1: Giới thiệu chung
VAX 11/780 (1978) - máy tính 32-bit
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.42
Chương 1: Giới thiệu chung
Osborne 1 (1980) - máy tính khả chuyển
Máy tính "có thể di chuyển" đầu tiên, kích thước
nhỏ, nặng 24 pound (10,9 kg)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.43
Chương 1: Giới thiệu chung
4. Máy tính dùng vi mạch VLSI
Các sản phẩm chính của công nghệ VLSI:
Bộ vi xử lý (Microprocessor): CPU được chế tạo trên
một chip.
Vi mạch điều khiển tổng hợp (chipset): một hoặc
một vài vi mạch thực hiện được nhiều chức năng
điều khiển và nối ghép.
Bộ nhớ bán dẫn (Semiconductor Memory): ROM,
RAM
Các bộ vi điều khiển (Microcontroller): máy tính
chuyên dụng được chế tạo trên một chip.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.44
Chương 1: Giới thiệu chung
Các hệ thống máy tính hiện đại
Máy tính nhúng
Máy tính cá nhân (PC)
Máy trạm làm việc
Máy chủ (Servers)
Mạng máy tính
Internet - Mạng máy tính toàn cầu
12
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.45
Chương 1: Giới thiệu chung
Một số Hệ thống Máy tính nhúng
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.46
Chương 1: Giới thiệu chung
Siêu máy tính Earth Simulator của NEC (2002)
Earth Simulator tại Cơ quan Khoa
học và Công nghệ biển Nhật Bản
(JAMSTEC), Yokohama, Japan
5200 processor
35860-40960 GFlops
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.47
Chương 1: Giới thiệu chung
Siêu máy tính ASC Purple của IBM (2005)
ASC Purple at Lawrence Livermore National Laboratory
10240 processor
40960 GB main memory
63390-77824 GFlops
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.48
Chương 1: Giới thiệu chung
Siêu máy tính BlueGene L của IBM (2005)
131702 processor
32768 GB main memory
280600-367000 GFlops
1
Chương 2HỆ THỐNG MÁY TÍNH
Phạm Quang Dũng
Bộ môn Khoa học máy tính - Khoa CNTT
Trường Đại học Nông nghiệp I – Hà Nội
website: www.hau1.edu.vn/it/pqdung
ĐT: (04) 8766318 DĐ: 0988.149.189
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.2
Chương 2: Hệ thống máy tính
Nội dung chương 2
2.1. Các thành phần của máy tính
2.2. Hoạt động của máy tính
2.3. Liên kết hệ thống
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.3
Chương 2: Hệ thống máy tính
2.1. Các thành phần của máy tính
Bộ xử lý trung tâm (Central Processing Unit)
Bộ nhớ (Memory)
Hệ thống vào ra (Input/Output System)
Liên kết hệ thống (System Interconnection)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.4
Chương 2: Hệ thống máy tính
1. Bộ xử lý trung tâm (CPU)
Chức năng
điều khiển hoạt động của máy tính
xử lý dữ liệu
Nguyên tắc hoạt động cơ bản:
CPU hoạt động theo chương trình nằm trong bộ
nhớ chính.
2
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.5
Chương 2: Hệ thống máy tính
Cấu trúc cơ bản của CPU
Đơn vị điều khiển
(CU)
Đơn vị số học và logic(ALU)
Tập các thanh ghi
(RF)
Đơn vị phối ghép bus (BIU)
bus điều khiển bus dữ liệu bus địa chỉ
bus bên trong
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.6
Chương 2: Hệ thống máy tính
Các thành phần cơ bản của CPU
Đơn vị điều khiển (Control Unit – CU): điều khiển hoạt
động của máy tính theo chương trình đã định sẵn.
Đơn vị số học và logic (Arithmetic and Logic Unit –
ALU): thực hiện các phép toán số học và các phép toán
logic trên các dữ liệu cụ thể.
Tập thanh ghi (Register File - RF): lưu giữ các thông tin
tạm thời phục vụ cho hoạt động của CPU.
Đơn vị nối ghép bus (Bus interface Unit - BIU): kết nối
và trao đổi thông tin giữa bus bên trong (internal bus)
và bus bên ngoài (external bus)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.7
Chương 2: Hệ thống máy tính
Tốc độ của bộ xử lý
Tốc độ của bộ xử lý:
Tính bằng số lệnh được thực hiện trong 1 giây
MIPS (Millions of Instructions per Second)
Khó đánh giá chính xác
Tần số xung nhịp của bộ xử lý:
Bộ xử lý hoạt động theo một xung nhịp (Clock)
có tần số xác định
Tốc độ của bộ xử lý được đánh giá gián tiếp
thông qua tần số của xung nhịp.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.8
Chương 2: Hệ thống máy tính
Tốc độ của bộ xử lý (tiếp)
Dạng xung nhịp:
T0 - chu kỳ xung nhịp
Tần số xung nhịp: f0 = 1/T0
Mỗi thao tác của bộ xử lý cần kT0
T0 càng nhỏ bộ xử lý chạy càng nhanh
Ví dụ: Máy tính dùng bộ xử lý Pentium IV 2GHz
Ta có f0 = 2 GHz = 2x109 Hz
T0 = 1/f0 = 1/(2x109) = 0,5 ns.
3
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.9
Chương 2: Hệ thống máy tính
2. Bộ nhớ máy tính (Memory)
Chức năng: lưu trữ chương trình và dữ liệu.
Các thao tác cơ bản với bộ nhớ:
Đọc (Read)
Ghi (Write)
Các thành phần chính:
Bộ nhớ trong (Internal Memory)
Bộ nhớ ngoài (External Memory)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.10
Chương 2: Hệ thống máy tính
Các thành phần của bộ nhớ máy tính
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.11
Chương 2: Hệ thống máy tính
Bộ nhớ trong (Internal memory)
Chức năng và đặc điểm:
Chứa các thông tin mà CPU có thể trao đổi trực
tiếp
Tốc độ rất nhanh
Dung lượng không lớn
Sử dụng bộ nhớ bán dẫn: ROM, RAM
Các loại bộ nhớ trong:
Bộ nhớ chính
Bộ nhớ cache (bộ nhớ đệm nhanh)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.12
Chương 2: Hệ thống máy tính
Bộ nhớ chính (Main memory)
Chứa các chương trình và dữ
liệu đang được CPU sử dụng.
Tổ chức thành các ngăn nhớ
được đánh địa chỉ.
Ngăn nhớ thường được tổ chức
theo byte.
Nội dung của ngăn nhớ có thể
thay đổi, song địa chỉ vật lý của
ngăn nhớ luôn cố định.
0010101111010101000010100101100011111011
00000001001000110100
00001000 010111101010 011000000000 011110011101 100000101011 100111101011 101000101000 101111111111 110010101010 110100101011 111001010101 1111
Nội dung Địa chỉ
4
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.13
Chương 2: Hệ thống máy tính
Bộ nhớ đệm nhanh (Cache memory)
Bộ nhớ có tốc độ nhanh được đặt đệm giữa
CPU và bộ nhớ chính nhằm tăng tốc độ CPU
truy nhập bộ nhớ
Dung lượng nhỏ hơn bộ nhớ chính
Tốc độ nhanh hơn
Cache thường được chia thành một số mức
Cache có thể được tích hợp trên chip vi xử lý.
Cache có thể có hoặc không.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.14
Chương 2: Hệ thống máy tính
Bộ nhớ ngoài (External memory)
Chức năng và đặc điểm:
Lưu giữ tài nguyên phần mềm của máy tính
Được kết nối với hệ thống dưới dạng các thiết bịvào-ra
Dung lượng lớn
Tốc độ chậm
Các loại bộ nhớ ngoài:
Bộ nhớ từ: đĩa cứng, đĩa mềm
Bộ nhớ quang: đĩa CD, DVD
Bộ nhớ bán dẫn: Flash disk, memory card
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.15
Chương 2: Hệ thống máy tính
3. Hệ thống vào-ra (Input/Output System)
Chức năng: trao đổi thông tin giữa máy tính
với thế giới bên ngoài.
Các thao tác cơ bản:
Vào dữ liệu (Input)
Ra dữ liệu (Output)
Các thành phần chính:
Các thiết bị ngoại vi (Peripheral Devices)
Các môđun vào-ra (IO Modules)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.16
Chương 2: Hệ thống máy tính
Cấu trúc cơ bản của hệ thống vào-ra
Cổng vào-ra
Cổng vào-ra
Cổng vào-ra
Thiết bị ngoại vi
Thiết bị ngoại vi
Thiết bị ngoại vi
Môđun vào-ra
Nối ghép với CPU và bộ nhớ chính
5
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.17
Chương 2: Hệ thống máy tính
Các thiết bị ngoại vi
Chức năng: chuyển đổi dữ liệu giữa bên trong
và bên ngoài máy tính.
Các loại thiết bị ngoại vi (TBNV) cơ bản:
Thiết bị vào: bàn phím, chuột, máy quét …
Thiết bị ra: màn hình, máy in …
Thiết bị nhớ: các ổ đĩa …
Thiết bị truyền thông: MODEM …
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.18
Chương 2: Hệ thống máy tính
Môđun vào-ra
Chức năng: nối ghép các TBNV với máy tính.
Mỗi môđun vào-ra có một hoặc một vài cổng
vào-ra (I/O Port).
Mỗi cổng vào-ra được đánh một địa chỉ xác
định.
Các TBNV được kết nối và trao đổi dữ liệu với
máy tính thông qua các cổng vào-ra.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.19
Chương 2: Hệ thống máy tính
2.2. Hoạt động của máy tính
1. Thực hiện chương trình
Là hoạt động cơ bản của máy tính
Máy tính lặp đi lặp lại hai bước:
Nhận lệnh
Thực hiện lệnh
Thực hiện chương trình bị dừng nếu thực hiện
lệnh bị lỗi hoặc gặp lệnh dừng.
} chu trình lệnh
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.20
Chương 2: Hệ thống máy tính
Chu trình lệnh
Bắt đầu
Nhận lệnh
Thực hiện lệnh
Dừng
6
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.21
Chương 2: Hệ thống máy tính
Quá trình nhận lệnh
Bắt đầu mỗi chu trình lệnh, CPU nhận lệnh từ
bộ nhớ chính.
Bộ đếm chương trình PC (Program Counter)
của CPU giữ địa chỉ của lệnh sẽ được nhận.
CPU nhận lệnh từ ngăn nhớ được trỏ bởi PC.
Lệnh được nạp vào thanh ghi lệnh IR
(Instruction Register)
Sau khi lệnh được nhận vào, nội dung PC tự
động tăng để trỏ sang lệnh kế tiếp.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.22
Chương 2: Hệ thống máy tính
Minh họa quá trình nhận lệnh
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.23
Chương 2: Hệ thống máy tính
Quá trình thực hiện lệnh
Bộ xử lý giải mã lệnh đã được nhận và phát tín hiệu điều khiển thực hiện thao tác mà lệnh yêu cầu.
Các kiểu thao tác của lệnh:
Trao đổi dữ liệu giữa CPU và bộ nhớ chính
Trao đổi dữ liệu giữa CPU và môđun vào-ra
Xử lý dữ liệu: thực hiện các phép toán số học hoặc phép toán logic với các dữ liệu
Điều khiển rẽ nhánh
Kết hợp các thao tác trên
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.24
Chương 2: Hệ thống máy tính
2. Ngắt (Interrupt)
Khái niệm: Ngắt là cơ chế cho phép CPU tạm dừng chương trình đang thực hiện để chuyển sang thực hiện một chương trình khác, gọi làchương trình con phục vụ ngắt.
Các loại ngắt:
Ngắt do lỗi khi thực hiện chương trình, ví dụ: tràn số, chia cho 0 …
Ngắt do lỗi phần cứng, ví dụ: lỗi bộ nhớ RAM
Ngắt do môđun vào-ra phát tín hiệu ngắt đến CPU yêu cầu trao đổi dữ liệu.
7
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.25
Chương 2: Hệ thống máy tính
Hoạt động ngắt
Sau khi hoàn thành một lệnh, bộ xử lý kiểm tra tín hiệu ngắt.
Nếu không có ngắt bộ xử lý nhận lệnh tiếp theo của chương trình hiện tại.
Nếu có tín hiệu ngắt:
Tạm dừng chương trình đang thực hiện
Cất ngữ cảnh (các thông tin liên quan đến chương trình bịngắt)
Thiết lập PC trỏ đến chương trình con phục vụ ngắt
Chuyển sang thực hiện chương trình con phục vụ ngắt
Cuối chương trình con phục vụ ngắt, khôi phục ngữ cảnh vàtiếp tục chương trình đang bị tạm dừng.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.26
Chương 2: Hệ thống máy tính
Hoạt động ngắt (tiếp)
lệnhlệnhlệnhlệnhlệnh ilệnh i+1
RETURN
lệnh
lệnh
.
.
.
Chương trình đang thực hiện
.
.
.lệnh
Chương trình con phục vụ ngắt
lệnhlệnh
Ngắt ở đây
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.27
Chương 2: Hệ thống máy tính
Chu trình lệnh với ngắt
Bắt đầu
Nhận lệnh
Thực hiện lệnh
Dừng
Kiểm tracó ngắt hay
không?
Chuyển đến chương trình con
phục vụ ngắt
YN
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.28
Chương 2: Hệ thống máy tính
Xử lý với nhiều tín hiệu yêu cầu ngắt
Xử lý ngắt tuần tựKhi một ngắt đang được thực hiện, các ngắt khác sẽbị cấm
Bộ xử lý sẽ bỏ qua các ngắt tiếp theo trong khi đang xử lý một ngắt
Các ngắt vẫn đang đợi và được kiểm tra sau khi ngắt đầu tiên được xử lý xong
Các ngắt được thực hiện tuần tự
Xử lý ngắt ưu tiênCác ngắt được định nghĩa mức ưu tiên khác nhau
Ngắt có mức ưu tiên thấp hơn có thể bị ngắt bởi ngắt ưu tiên cao hơn xảy ra ngắt lồng nhau
8
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.29
Chương 2: Hệ thống máy tính
3. Hoạt động vào-ra
Hoạt động vào-ra: là hoạt động trao đổi dữ liệu
giữa TBNV với bên trong máy tính.
Các kiểu hoạt động vào-ra:
CPU trao đổi dữ liệu với môđun vào-ra
Môđun vào-ra trao đổi dữ liệu trực tiếp với bộ
nhớ chính.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.30
Chương 2: Hệ thống máy tính
2.3. Liên kết hệ thống
1. Khái niệm chung về busBus: tập hợp các đường kết nối dùng để vận chuyển thông tin giữa các thành phần của máy tính với nhau.
Độ rộng bus: là số đường dây của bus có thểtruyền các bit thông tin đồng thời (chỉ dùng cho bus địa chỉ và bus dữ liệu)
Phân loại cấu trúc bus:Cấu trúc đơn bus
Cấu trúc đa bus
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.31
Chương 2: Hệ thống máy tính
Bus đồng bộ và bus không đồng bộ
Bus đồng bộ
Bus có đường tín hiệu Clock
Các sự kiện trên bus được xác định bởi xung
nhịp Clock.
Bus không đồng bộ
Không có đường tín hiệu Clock
Kết thúc một sự kiện này trên bus sẽ kích hoạt
cho một sự kiện tiếp theo.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.32
Chương 2: Hệ thống máy tính
2. Cấu trúc đơn bus
9
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.33
Chương 2: Hệ thống máy tính
Bus địa chỉ
Chức năng: vận chuyển địa chỉ để xác định ngăn nhớ hay cổng vào-ra.
Độ rộng bus địa chỉ: xác định dung lượng bộnhớ cực đại của hệ thống.
Nếu độ rộng bus địa chỉ là N bit:
AN-1, AN-2, ... A2, A1, A0
dung lượng bộ nhớ cực đại là 2N byte
(còn gọi là không gian địa chỉ bộ nhớ)
Ví dụ: Bộ xử lý Intel Pentium có bus địa chỉ 32 bit không gian địa chỉ là 232 byte = 4 GB.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.34
Chương 2: Hệ thống máy tính
Bus dữ liệu
Chức năng:
vận chuyển lệnh từ bộ nhớ đến CPU
vận chuyển dữ liệu giữa CPU, các môđun nhớ và môđun vào-ra.
Độ rộng bus dữ liệu: xác định số bit dữ liệu cóthể được trao đổi đồng thời.
M bit: DM-1, DM-2, … D2, D1, D0
M thường là 8, 16, 32, 64, 128 bit
Ví dụ: Các bộ xử lý Pentium có bus dữ liệu là64 bit.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.35
Chương 2: Hệ thống máy tính
Bus điều khiển
Chức năng: vận chuyển các tín hiệu điều khiển
Các loại tín hiệu điều khiển:
Các tín hiệu phát ra từ CPU để điều khiển môđun
nhớ và môđun vào-ra
Các tín hiệu từ môđun nhớ hay môđun vào-ra
gửi đến yêu cầu CPU.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.36
Chương 2: Hệ thống máy tính
Một số tín hiệu điều khiển điển hình
Các tín hiệu phát ra từ CPU để điều khiển đọc-
ghi:
Memory Read (MEMR): điều khiển đọc dữ liệu từ
một ngăn nhớ có địa chỉ xác định lên bus dữ liệu
Memory Write (MEMW): điều khiển ghi dữ liệu
đến một ngăn nhớ có địa chỉ xác định
I/O Read (IOR): điều khiển đọc dữ liệu từ một
cổng vào-ra có địa chỉ xác định lên bus dữ liệu
I/O Write (IOW): điều khiển ghi dữ liệu có sẵn
trên bus dữ liệu ra một cổng có địa chỉ xác định.
10
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.37
Chương 2: Hệ thống máy tính
Một số tín hiệu điều khiển điển hình (tiếp)
Các tín hiệu điều khiển ngắt:
Interrupt Request (INTR): tín hiệu từ bộ điều khiển vào-ra gửi đến yêu cầu ngắt CPU để trao đổi vào-ra. Tín hiệu INTR có thể bị che.
Interrupt Acknowledge (INTA): tín hiệu phát ra từ CPU báo cho bộ điều khiển vào-ra biết CPU chấp nhận ngắt để trao đổi vào-ra.
Non Markable Interrupt (NMI): tín hiệu ngắt không che được gửi đến CPU.
Reset: tín hiệu từ bên ngoài gửi đến CPU và các thành phần khác để khởi động lại máy tính.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.38
Chương 2: Hệ thống máy tính
Một số tín hiệu điều khiển điển hình (tiếp)
Các tín hiệu điều khiển bus:
Bus Request (BRQ): hay là Hold: tín hiệu từ môđun điều khiển vào-ra gửi đến yêu cầu CPU chuyển nhượng quyền sử dụng bus.
Bus Grant (BGT) hay là Hold Acknowledge (HLDA): tín hiệu phát ra từ CPU chấp nhận quyền sử dụng bus.
Lock: tín hiệu khóa không cho xin chuyển nhượng bus.
Unlock: tín hiệu mở khóa cho xin chuyển nhượng bus.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.39
Chương 2: Hệ thống máy tính
Đặc điểm của cấu trúc đơn bus
Bus hệ thống chỉ phục vụ được một yêu cầu
trao đổi dữ liệu tại một thời điểm.
Bus hệ thống phải có tốc độ bằng tốc độ bus
của môđun nhanh nhất trong hệ thống.
Bus hệ thống phụ thuộc vào cấu trúc bus (các
tín hiệu) của bộ xử lý các môđun nhớ và các
môđun vào-ra cũng phụ thuộc vào bộ xử lý.
Vì vậy cần phải phân cấp bus đa bus
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.40
Chương 2: Hệ thống máy tính
3. Phân cấp bus trong máy tính
Phân cấp bus cho các thành phần:
Bus của bộ xử lý
Bus của bộ nhớ chính
Các bus vào-ra
Phân cấp bus khác nhau về tốc độ
Bus bộ nhớ chính và các bus vào-ra không phụ
thuộc vào bộ xử lý cụ thể.
11
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.41
Chương 2: Hệ thống máy tính
Các bus điển hình trong PC
Bus của bộ xử lý (Front Side Bus - FSB): có tốc độ nhanh
nhất.
Bus của bộ nhớ chính (nối ghép với các môđun RAM).
AGP bus (Accelerated Graphic Port) - Bus đồ họa tăng
tốc: nối ghép card màn hình tăng tốc.
PCI bus (Peripheral Component Interconnection): nối
ghép với các TBNV có tốc độ trao đổi dữ liệu nhanh.
USB (Universal Serial Bus): Bus nối tiếp đa năng
IDE (Integrated Driver Electronics): Bus kết nối với ổ đĩa
cứng hoặc ổ đĩa CD, DVD.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.42
Chương 2: Hệ thống máy tính
Phân cấp bus
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.43
Chương 2: Hệ thống máy tính
Máy tính Pentium IV dùng Chipset 925
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.44
Chương 2: Hệ thống máy tính
4. Phân xử bus
Có nhiều hơn một môđun điều khiển bus, vd CPU và
DMA controller, nhưng tại một thời điểm chỉ duy nhất 1
mođun có thể điều khiển bus cần phân xử bus.
Sự phân xử bus có thể là tập trung hoặc phân tán
Phân xử tập trung: có một thiết bị phần cứng điều
khiển sự truy nhập bus:
Được gọi là Bộ điều khiển bus (Bus Controller) hay
Trọng tài bus (Arbiter)
Có thể nằm trên CPU hoặc tách riêng
Phân xử phân tán: mỗi môđun có thể điều khiển bus,
nhưng có sự điều khiển logic trên tất cả các môđun.
1
Chương 3BIỂU DIỄN DỮ LIỆU VÀSỐ HỌC MÁY TÍNH
Phạm Quang Dũng
Bộ môn Khoa học máy tính - Khoa CNTT
Trường Đại học Nông nghiệp I – Hà Nội
website: www.hau1.edu.vn/it/pqdung
ĐT: (04) 8766318 DĐ: 0988.149.189
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.2
Chương 3: Biểu diễn dữ liệu và số học máy tính
Nội dung chương 3
3.1. Các hệ đếm cơ bản
3.2. Mã hoá và lưu trữ dữ liệu trong máy tính
3.3. Biểu diễn số nguyên
3.4. Thực hiện các phép toán số học với số nguyên
3.5. Số dấu chấm động
3.6. Biểu diễn ký tự
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.3
Chương 3: Biểu diễn dữ liệu và số học máy tính
3.1. Các hệ đếm cơ bản
Hệ thập phân (Decimal System)
Con người sử dụng
Hệ nhị phân (Binary System)
Máy tính sử dụng
Hệ mười sáu (Hexadecimal System)
Dùng để viết gọn số nhị phân
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.4
Chương 3: Biểu diễn dữ liệu và số học máy tính
1. Hệ thập phân
Cơ số 10
10 chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Dùng n chữ số thập phân có thể biểu diễn được
10n giá trị khác nhau:
00...000 = 0
99...999 = 10n - 1
2
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.5
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ số thập phân
472.38 = 4x102 + 7x101 + 2x100 + 3x10-1 + 8x10-2
Các chữ số của phần nguyên:
472 : 10 = 47 dư 2
47 : 10 = 4 dư 7
4 : 10 = 0 dư 4
Các chữ số của phần lẻ:
0.38 x 10 = 3.8 phần nguyên = 3
0.8 x 10 = 8.0 phần nguyên = 8
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.6
Chương 3: Biểu diễn dữ liệu và số học máy tính
2. Hệ nhị phân
Cơ số 2
2 chữ số nhị phân: 0 và 1
Chữ số nhị phân gọi là bit (binary digit)
Bit là đơn vị thông tin nhỏ nhất
Dùng n bit có thể biểu diễn được 2n giá trị khác nhau:
00...000 = 0
11...111 = 2n-1
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.7
Chương 3: Biểu diễn dữ liệu và số học máy tính
Dạng tổng quát của số nhị phân
Có một số nhị phân A như sau:
A = anan-1...a1a0.a-1...a-m
Giá trị của A được tính như sau:
A = an2n + an-12n-1 +...+ a020 + a-12-1 +...+ a-m2-m
∑−=
=n
mi
iiaA 2
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.8
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ số nhị phân
1101001.1011(2)6 5 4 3 2 1 0 -1 -2 -3 -4
= 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4
= 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625
= 105.6875(10)
3
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.9
Chương 3: Biểu diễn dữ liệu và số học máy tính
Chuyển đổi số nguyên thập phân sang nhị phân
Phương pháp 1: chia dần cho 2 rồi lấy phần dư
Phương pháp 2: phân tích thành tổng của các
số 2i nhanh hơn
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.10
Chương 3: Biểu diễn dữ liệu và số học máy tính
Phương pháp chia dần cho 2
Ví dụ: chuyển đổi 105(10)
105:2 = 52 dư 1
52:2 = 26 dư 0
26:2 = 13 dư 0
13:2 = 6 dư 1
6:2 = 3 dư 0
3:2 = 1 dư 1
1:2 = 0 dư 1
Kết quả: 105(10) = 1101001(2)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.11
Chương 3: Biểu diễn dữ liệu và số học máy tính
Phương pháp phân tích thành tổng của các 2i
Ví dụ 1: chuyển đổi 105(10)
105 = 64 + 32 + 8 + 1 = 26 + 25 + 23 + 20
Kết quả: 105(10) = 0110 1001(2)
Ví dụ 2: 17000(10) = 16384 + 512 + 64 + 32 + 8
= 214 + 29 + 26 + 25 + 23
17000(10) = 0100 0010 0110 1000(2)15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1
0 1 1 0 1 0 0 1
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.12
Chương 3: Biểu diễn dữ liệu và số học máy tính
Chuyển số lẻ thập phân sang nhị phân
Ví dụ 1: chuyển đổi 0.6875(10)
0.6875 x 2 = 1.375 phần nguyên = 1
0.375 x 2 = 0.75 phần nguyên = 0
0.75 x 2 = 1.5 phần nguyên = 1
0.5 x 2 = 1.0 phần nguyên = 1
Kết quả: 0.6875(10)=0.1011(2)
4
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.13
Chương 3: Biểu diễn dữ liệu và số học máy tính
Chuyển đổi số lẻ thập phân sang nhị phân (tiếp)
Ví dụ 2: chuyển đổi 0.81(10)
0.81 x 2 = 1.62 phần nguyên = 1
0.62 x 2 = 1.24 phần nguyên = 1
0.24 x 2 = 0.48 phần nguyên = 0
0.48 x 2 = 0.96 phần nguyên = 0
0.96 x 2 = 1.92 phần nguyên = 1
0.92 x 2 = 1.84 phần nguyên = 1
0.84 x 2 = 1.68 phần nguyên = 1
0.81(10) ≈ 0.1100111(2)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.14
Chương 3: Biểu diễn dữ liệu và số học máy tính
Chuyển đổi số lẻ thập phân sang nhị phân (tiếp)
Ví dụ 3: chuyển đổi 0.2(10)
0.2 x 2 = 0.4 phần nguyên = 0
0.4 x 2 = 0.8 phần nguyên = 0
0.8 x 2 = 1.6 phần nguyên = 1
0.6 x 2 = 1.2 phần nguyên = 1
0.2 x 2 = 0.4 phần nguyên = 0
0.4 x 2 = 0.8 phần nguyên = 0
0.8 x 2 = 1.6 phần nguyên = 1
0.6 x 2 = 1.2 phần nguyên = 1
0.2(10) ≈ 0.00110011(2)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.15
Chương 3: Biểu diễn dữ liệu và số học máy tính
3. Hệ mười sáu (Hexa)
Cơ số 16
16 chữ số: 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F
Dùng để viết gọn cho số nhị phân: cứ một
nhóm 4 bit sẽ được thay thế bằng 1 chữ số
Hexa
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.16
Chương 3: Biểu diễn dữ liệu và số học máy tính
Quan hệ giữa số nhị phân và số Hexa4-bit Chữ số Hexa0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
Ví dụ chuyển đổi số nhị phân số Hexa:
0000 00002 = 0016
1011 00112 = B316
0010 1101 1001 10102 = 2D9A16
1111 1111 1111 11112 = FFFF16
5
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.17
Chương 3: Biểu diễn dữ liệu và số học máy tính
3.2. Mã hoá và lưu trữ dữ liệu trong máy tính
1. Nguyên tắc chung về mã hoá dữ liệu
Mọi dữ liệu đưa vào máy tính đều được mã
hoá thành số nhị phân
Các loại dữ liệu
Dữ liệu nhân tạo: do con người quy ước
Dữ liệu tự nhiên: tồn tại khách quan với con
người
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.18
Chương 3: Biểu diễn dữ liệu và số học máy tính
Mã hoá dữ liệu nhân tạo
Dữ liệu số nguyên: mã hoá theo một số chuẩn
qui ước
Dữ liệu số thực: mã hoá bằng số dấu chấm
động
Dữ liệu ký tự: mã hoá theo bộ mã ký tự
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.19
Chương 3: Biểu diễn dữ liệu và số học máy tính
Mã hóa và tái tạo tín hiệu vật lý
Các dữ liệu vật lý thông dụng:
Âm thanh
Hình ảnh
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.20
Chương 3: Biểu diễn dữ liệu và số học máy tính
Độ dài từ dữ liệu (word)
Độ dài từ dữ liệu là số bit được sử dụng để mã
hoá loại dữ liệu tương ứng
Thường là bội của 8 bit
VD: 8, 16, 32, 64 bit
6
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.21
Chương 3: Biểu diễn dữ liệu và số học máy tính
2. Thứ tự lưu trữ các byte của dữ liệu
Bộ nhớ chính thường được tổ chức theo byte
Độ dài từ dữ liệu có thể chiếm từ một đến nhiều byte
cần phải biết thứ tự lưu trữ các byte trong bộ nhớchính với các dữ liệu nhiều byte.
Có 2 cách lưu trữ:
Lưu trữ đầu nhỏ (Little-endian): Byte thấp được lưu trữ ở ngăn nhớ có địa chỉ nhỏ hơn, byte cao được lưu trữ ở ngăn nhớ có địa chỉ lớn hơn.
Lưu trữ đầu to (Big-endian): Byte cao được lưu trữ ở ngăn nhớ có địa chỉ nhỏ hơn, byte thấp được lưu trữở ngăn nhớ có địa chỉ lớn hơn.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.22
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ lưu trữ dữ liệu 32-bit
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.23
Chương 3: Biểu diễn dữ liệu và số học máy tính
Lưu trữ của các bộ xử lý điển hình
Intel 80x86 và các Pentium:
⇒ Little-endian
Motorola 680x0 và các bộ xử lý RISC:
⇒ Big-endian
Power PC và Itanium: cả hai
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.24
Chương 3: Biểu diễn dữ liệu và số học máy tính
3.3. Biểu diễn số nguyên
Có hai loại số nguyên:
Số nguyên không dấu (Unsigned Integer)
Số nguyên có dấu (Signed Integer)
7
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.25
Chương 3: Biểu diễn dữ liệu và số học máy tính
1. Biểu diễn số nguyên không dấu
Nguyên tắc tổng quát: Dùng n bit biểu diễn số
nguyên không dấu A:
an-1an-2…..a2a1a0
Giá trị của A được tính như sau:
Dải biểu diễn của A: từ 0 đến 2n-1
∑−
=
=1
02
n
i
iiaA
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.26
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các ví dụ
Ví dụ 1: Biểu diễn các số nguyên không dấu sau đây bằng 8-bit:
A=41 ; B=150
Giải:
A = 41 = 32 + 8 + 1 = 25 + 23 + 20
41 = 0010 1001
B = 150 = 128 + 16 + 4 + 2 = 27+24+22+21
150 = 1001 0110
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.27
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các ví dụ (tiếp)
Ví dụ 2: Cho các số nguyên không dấu M, N được biểu diễn bằng 8-bit như sau:
M = 0001 0010
N = 1011 1001
Xác định giá trị của chúng?
Giải:
M = 0001 0010 = 24 + 21 = 16 + 2 = 18
N = 1011 1001 = 27 + 25 + 24 + 23 + 20
= 128 + 32 + 16 + 8 + 1 = 185
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.28
Chương 3: Biểu diễn dữ liệu và số học máy tính
Với n = 8 bit
Biểu diễn được các giá trị từ 0 đến 255
0000 0000 = 0 Chú ý:
0000 0001 = 1 1111 1111
0000 0010 = 2 + 0000 0001
0000 0011 = 3 1 0000 0000
… Vậy: 255 + 1 = 0?
1111 1111 = 255 do tràn nhớ ra ngoài
8
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.29
Chương 3: Biểu diễn dữ liệu và số học máy tính
Trục số học số nguyên không dấu với n = 8 bit
Trục số học:
Trục số học máy tính:0
255254
12
3
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.30
Chương 3: Biểu diễn dữ liệu và số học máy tính
Với n = 16 bit, 32 bit, 64 bit
n = 16 bit: dải biểu diễn từ 0 đến 65535 (216-1)
0000 0000 0000 0000 = 0
…
0000 0000 1111 1111 = 255
0000 0001 0000 0000 = 256
…
1111 1111 1111 1111 = 65535
n= 32 bit: dải biểu diễn từ 0 đến 232-1
n= 64 bit: dải biểu diễn từ 0 đến 264-1
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.31
Chương 3: Biểu diễn dữ liệu và số học máy tính
2. Biểu diễn số nguyên có dấu
a. Số bù một và Số bù hai:Giả sử A là một số nhị phân, ta có:
Số bù một của A nhận được bằng cách đảo giá trị các bit của A
(Số bù hai của A) = (Số bù một của A) + 1
Ví dụ: với n= 8 bitGiả sử có A = 0010 0101
Số bù một của A = 1101 1010
+ 1
Số bù hai của A = 1101 1011
Vì A + (Số bù hai của A) = 0 dùng số bù hai đểbiểu diễn cho số âm
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.32
Chương 3: Biểu diễn dữ liệu và số học máy tính
b. Biểu diễn số nguyên có dấu bằng mã bù hai
Nguyên tắc tổng quát: Dùng n bit biểu diễn số
nguyên có dấu A:
an-1an-2…a2a1a0
Với A là số dương: bit an-1 = 0, các bit còn lại
biểu diễn độ lớn như số không dấu
Với A là số âm: được biểu diễn bằng số bù hai
của số dương tương ứng, vì vậy bit an-1 = 1
9
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.33
Chương 3: Biểu diễn dữ liệu và số học máy tính
Biểu diễn số dương
Dạng tổng quát của số dương A:
0an-2…a2a1a0
Giá trị của số dương A:
Dải biểu diễn cho số dương: 0 đến 2n-1-1
∑−
=
=2
02
n
i
iiaA
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.34
Chương 3: Biểu diễn dữ liệu và số học máy tính
Biểu diễn số âm
Dạng tổng quát của số âm A:
1an-2…a2a1a0
Giá trị của số âm A:
Dải biểu diễn cho số âm: -1 đến -2n-1
∑−
=
− +−=2
0
1 22n
i
ii
n aA
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.35
Chương 3: Biểu diễn dữ liệu và số học máy tính
Biểu diễn tổng quát cho số nguyên có dấu
Dạng tổng quát của số nguyên A:
an-1an-2…a2a1a0
Giá trị của A được xác định như sau:
Dải biểu diễn: từ -(2n-1) đến +(2n-1-1)
∑−
=
−− +−=
2
0
11 22
n
i
ii
nn aaA
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.36
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các ví dụ
Ví dụ 1. Biểu diễn các số nguyên có dấu sau đây bằng 8 bit:
A = +58 ; B = -80
Giải:A = +58 = 0011 1010
B = -80
Ta có: +80 = 0101 0000
Số bù một = 1010 1111
+ 1
Số bù hai = 1011 0000
Vậy: B = -80 = 1011 0000
10
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.37
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các ví dụ
Ví dụ 2: Hãy xác định giá trị của các số nguyên
có dấu được biểu diễn dưới đây:
P = 0110 0010
Q = 1101 1011
Giải:
P = 0110 0010 = 64 + 32 + 2 = +98
Q = 1101 1011 = -128+64+16+8+2+1 = -37
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.38
Chương 3: Biểu diễn dữ liệu và số học máy tính
Với n = 8 bit
Biểu diễn được các giá trị từ -128 đến +1270000 0000 = 00000 0001 = +10000 0010 = +2 Chú ý:0000 0011 = +3 +127 + 1 = -128
… -128 - 1 = +1270111 1111 = +127 do tràn xảy ra1000 0000 = - 1281000 0001 = - 127
…1111 1110 = -21111 1111 = -1
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.39
Chương 3: Biểu diễn dữ liệu và số học máy tính
Trục số học số nguyên có dấu với n = 8 bit
Trục số học:
Trục số học máy tính:
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.40
Chương 3: Biểu diễn dữ liệu và số học máy tính
Với n=16 bit, 32 bit, 64 bit
Với n=16 bit: biểu diễn từ -32768 đến +32767
0000 0000 0000 0000 = 0
0000 0000 0000 0001 = +1
…
0111 1111 1111 1111 = +32767
1000 0000 0000 0000 = - 32768
…
1111 1111 1111 1111 = -1
Với n=32 bit: biểu diễn từ -231 đến 231-1
Với n=64 bit: biểu diễn từ -263 đến 263-1
11
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.41
Chương 3: Biểu diễn dữ liệu và số học máy tính
Chuyển đổi từ byte thành word
Đối với số dương:
+19 = 0001 0011 (8 bit)
+19 = 0000 0000 0001 0011 (16 bit)
thêm 8 bit 0 bên trái
Đối với số âm:
- 19 = 1110 1101 (8 bit)
- 19 = 1111 1111 1110 1101 (16 bit)
thêm 8 bit 1 bên trái
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.42
Chương 3: Biểu diễn dữ liệu và số học máy tính
3. Biểu diễn số nguyên theo mã BCD
Binary Coded Decimal Code
Dùng 4 bit để mã hoá cho các chữ số thập phân từ 0 đến 9
0 0000 5 0101
1 0001 6 0110
2 0010 7 0111
3 0011 8 1000
4 0100 9 1001
Có 6 tổ hợp không sử dụng:
1010, 1011, 1100, 1101, 1110, 1111
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.43
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ số BCD
35 0011 0101BCD
61 0110 0001BCD
1087 0001 0000 1000 0111BCD
9640 1001 0110 0100 0000BCD
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.44
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các kiểu lưu trữ số BCD
BCD không gói (Unpacked BCD): Mỗi số BCD
4-bit được lưu trữ trong 4-bit thấp của mỗi
byte.
Ví dụ: Số 35 được lưu trữ như sau:
BCD gói (Packed BCD): Hai số BCD được lưu
trữ trong 1 byte.
Ví dụ: số 35 được lưu trữ như sau:
0 0 1 1 0 1 0 1
0 0 1 1 0 1 0 1
12
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.45
Chương 3: Biểu diễn dữ liệu và số học máy tính
3.4. Thực hiện các phép toán số học với số nguyên
1. Phép cộng số nguyên không dấuBộ cộng n-bit
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.46
Chương 3: Biểu diễn dữ liệu và số học máy tính
Nguyên tắc cộng số nguyên không dấu
Khi cộng hai số nguyên không dấu n-bit, kết
quả nhận được là n-bit:
Nếu không có nhớ ra khỏi bit cao nhất thì kết quả
nhận được luôn luôn đúng (Cout = 0).
Nếu có nhớ ra khỏi bit cao nhất thì kết quả nhận
được là sai, ⇔ có tràn nhớ ra ngoài (Cout = 1).
Tràn nhớ ra ngoài (Carry Out) xảy ra khi tổng >2n-1
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.47
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ cộng số nguyên không dấu
57 = 0011 1001+ 34 = + 0010 0010
91 0101 1011 = 64+16+8+2+1= 91 đúng
209 = 1101 0001+ 73 = 0100 1001282 1 0001 1010 = 16 + 8 + 2 = 26 sai
có tràn nhớ ra ngoài (Cout = 1)
Để có kết quả đúng ta thực hiện cộng theo 16-bit:209 = 0000 0000 1101 0001
+ 73 = + 0000 0000 0100 10010000 0001 0001 1010 = 256+16+8+2 = 282
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.48
Chương 3: Biểu diễn dữ liệu và số học máy tính
2. Phép đảo dấu
Ta có:+ 37 = 0010 0101
bù một = 0101 1010+ 1
bù hai = 1101 1011 = -37
Lấy bù hai của số âm:- 37 = 1101 1011
bù một = 0010 0100+ 1
bù hai = 0010 0101 = +37
Kết luận: Phép đảo dấu trong máy tính thực chất là lấy bù 2
13
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.49
Chương 3: Biểu diễn dữ liệu và số học máy tính
3. Cộng số nguyên có dấu
Khi cộng 2 số nguyên có dấu n-bit không quan
tâm đến bit Cout và kết quả nhận được là n-bit:
Cộng 2 số khác dấu: kết quả luôn luôn đúng.
Cộng 2 số cùng dấu:
Nếu dấu kết quả cùng dấu với các số hạng thì kết quả
là đúng.
Nếu kết quả có dấu ngược lại, khi đó có tràn xảy ra
(Overflow) và kết quả là sai.
Tràn xảy ra khi tổng nằm ngoài dải biểu diễn
[-(2n-1),+(2n-1-1)]
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.50
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ cộng số nguyên có dấu không tràn
(+70) = 0100 0110+ (+42) = 0010 1010
+112 0111 0000 = +112
(+97) = 0110 0001+ (- 52) = 1100 1100
+45 1 0010 1101 = +45
(- 90) = 1010 0110+ (+36) = 0010 0100
- 54 1100 1010 = -54
(- 74) = 1011 0110+ (- 30) = 1110 0010
- 104 1 1001 1000 = -104
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.51
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ cộng số nguyên có dấu bị tràn
(+75) = 0100 1011+ (+82) = 0101 0010
+157 1001 1101= -128 + 16 + 8 + 4 + 1 = -99 sai
(- 104) = 1001 1000+ (- 43) = 1101 0101
- 147 1 0110 1101= 64 + 32 + 8 + 4 + 1 = +109 sai
Cả 2 ví dụ trên đều tràn vì tổng nằm ngoài dải biểu diễn [-128, +127]
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.52
Chương 3: Biểu diễn dữ liệu và số học máy tính
4. Nguyên tắc thực hiện phép trừ
Phép trừ 2 số nguyên: X – Y = X + (-Y)
Nguyên tắc: Lấy bù hai của Y để được –Y, rồi cộng với X
14
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.53
Chương 3: Biểu diễn dữ liệu và số học máy tính
5. Nhân số nguyên không dấu
Các thanh ghi M,
Q, A: n bit
C: 1 bit
2 thừa số là n-bit
tích là số 2n-bit
được chứa trong
cặp thanh ghi A, Q
Bắt đầu
Dừng
C 0; A 0M số bị nhân
Q số nhân; BĐ = n
Q0 = 1
C, A A + M
Dịch phải C, A, QBĐ BĐ - 1
BĐ = 0
YN
Y
N
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.54
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ 1011 x 1101 (11 x 13 = 143)
n = 4
Số bị nhân = 1011 M
Số nhân = 1101 Q
C A Q
0 0000 1101 / các giá trị khởi đầu /
1011
0 1011 1101 C, A A + M
0 0101 1110 Dịch phải 1 bit n = 3
0 0010 1111 Dịch phải 1 bit n = 2
1011
0 1101 1111 C, A A + M
0 0110 1111 Dịch phải 1 bit n = 1
1011
1 0001 1111 C, A A + M
0 1000 1111 Dịch phải 1 bit n = 0
+
+
+
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.55
Chương 3: Biểu diễn dữ liệu và số học máy tính
6. Nhân số nguyên có dấu
Phương pháp 1:
1. Chuyển đổi các thừa số thành số dương
2. Nhân 2 số dương như số nguyên không dấu
3. Hiệu chỉnh dấu của kết quả:
Nếu 2 thừa số cùng dấu không cần hiệu chỉnh
Nếu 2 thừa số khác dấu đảo dấu kết quả bằng
cách lấy bù 2.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.56
Chương 3: Biểu diễn dữ liệu và số học máy tính
Nhân số nguyên có dấu (tiếp)
Phương pháp 2:
Sử dụng thuật
toán nhân nhanh
Booth
15
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.57
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ (+7) x (-3) = (-21) theo Booth
n = 4
Số bị nhân =
0111 M
-M = 1001
310 = 0011
-310 = 1101
(Số nhân) Q
A Q Q-1
0000
1001
1001
1100
0111
0011
0001
1001
1010
1101
1110
0 / các giá trị khởi đầu /1101
1101
1110
1110
1111
1111
0111
0 A A - M = A + (-M)
1 Dịch phải, giữ dấu A, n = 3
1 A A + M
0 Dịch phải, giữ dấu A, n = 2
0 A A - M
1 Dịch phải, giữ dấu A, n = 1
1011 1 Dịch phải, giữ dấu A, n = 0
+
+
+
1
Bỏ đi
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.58
Chương 3: Biểu diễn dữ liệu và số học máy tính
7. Chia số nguyên không dấu
Khôi phục A
Thương chứa trong Q,
Phần dư chứa trong A
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.59
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ 7:3 = 2 dư 1
n = 4
Số bị chia =
0111 Q
Số chia = 310
= 0011 M
-M = 1101
A Q
0000
0000
1101
0000
0001
1110
0001
0011
0000
0000
0001
1110 A A - M
0001 0010 Khôi phục A, n = 0
/ các giá trị khởi đầu /0111
1110
1110
1100
1100
1000
1001
Dịch trái
A A - M = A + (-M)
Khôi phục A, n = 3
Dịch trái
A A - M
Khôi phục A, n = 2
Dịch trái
A A - M
Q0 1, n = 1
Dịch trái0010
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.60
Chương 3: Biểu diễn dữ liệu và số học máy tính
8. Chia số nguyên có dấu
Sử dụng thuật giải chia số nguyên không dấu
Đổi số bị chia và số chia dương
Chia như số nguyên không dấu thương và
phần dư (đều là số dương)
Hiệu chỉnh dấu:
(+) : (+) không hiệu chỉnh dấu kết quả
(+) : (-) đảo dấu thương
(-) : (+) đảo dấu thương và phần dư
(-) : (-) đảo dấu phần dư
16
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.61
Chương 3: Biểu diễn dữ liệu và số học máy tính
3.5. Số dấu chấm động
1. Nguyên tắc chung
Floating Point Number biểu diễn cho số thực
Tổng quát: một số thực X được biểu diễn theo
kiểu số dấu chấm động như sau:
X = M * RE
M là phần định trị (Mantissa),
R là cơ số (Radix),
E là phần mũ (Exponent).
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.62
Chương 3: Biểu diễn dữ liệu và số học máy tính
2. Chuẩn IEEE754/85
Cơ số R = 2
Các dạng:
Dạng 32-bit
Dạng 44-bit
Dạng 64-bit
Dạng 80-bit
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.63
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các dạng biểu diễn chính
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.64
Chương 3: Biểu diễn dữ liệu và số học máy tính
Dạng 32-bit
S là bit dấu:
S = 0 Số dương
S = 1 Số âm
e (8 bit) là mã excess-127 của phần mũ E:
e = E + 127 E = e – 127
giá trị 127 được gọi là độ lệch (bias)
m (23 bit) là phần lẻ của phần định trị M:
M = 1.m
Công thức xác định giá trị của số thực:
X = (-1)S*1.m*2e-127
17
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.65
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ 1
Xác định giá trị của số thực được biểu diễn bằng 32-bit như sau:
1100 0001 0101 0110 0000 0000 0000 0000
S = 1 Số âm
e = 1000 00102 = 130 E = 130 – 127 = 3
Vậy:
X = -1.10101100 * 23 = -1101.011 = -13.375
0011 1111 1000 0000 0000 0000 0000 0000 = ?
= +1.0
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.66
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ 2
Biểu diễn số thực X = 83.75 về dạng số dấu
chấm động IEEE754 32-bit
Giải:
X = 83.7510 = 1010011.112 = 1.01001111 x 26
Ta có:
S = 0 vì đây là số dương
E = e-127=6 e = 127+6=13310 = 1000 01012
Vậy:
X = 0100 0010 1010 0111 1000 0000 0000 0000
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.67
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các quy ước đặc biệt
Các bit của e bằng 0, các bit của m bằng 0, thì X= ± 0
x000 0000 0000 0000 0000 0000 0000 0000 X= ± 0
Các bit của e bằng 1, các bit của m bằng 0, thì X= ± ∞
x111 1111 1000 0000 0000 0000 0000 0000 X= ± ∞
Các bit của e bằng 1, còn m có ít nhất 1 bit bằng 1, thì
nó không biểu diễn cho số nào cả (NaN – not a number)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.68
Chương 3: Biểu diễn dữ liệu và số học máy tính
Dải giá trị biểu diễn
2-127 đến 2+127
10-38 đến 10+38
18
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.69
Chương 3: Biểu diễn dữ liệu và số học máy tính
Dạng 64-bit
S là bit dấu
e (11 bit) là mã excess-1023 của phần mũ E:
E = e – 1023
m (52 bit) là phần lẻ của phần định trị M:
Giá trị của số thực:
X = (-1)S*1.m*2e-1023
Dải giá trị biểu diễn: 10-308 đến 10+308
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.70
Chương 3: Biểu diễn dữ liệu và số học máy tính
Dạng 80-bit
S là bit dấu
e (15 bit) là mã excess-16383 của phần mũ E:
E = e – 16383
m (64 bit) là phần lẻ của phần định trị M:
Giá trị của số thực:
X = (-1)S*1.m*2e-16383
Dải giá trị biểu diễn: 10-4932 đến 10+4932
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.71
Chương 3: Biểu diễn dữ liệu và số học máy tính
3.6. Biểu diễn ký tự
Bộ mã ASCII (American Standard Code for
Information Interchange)
Bộ mã Unicode
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.72
Chương 3: Biểu diễn dữ liệu và số học máy tính
1. Bộ mã ASCII
Do ANSI (American National Standard
Institute) thiết kế
Bộ mã 8 bit có thể mã hóa được 28 =256 ký
tự, có mã từ: 0016 ÷ FF16 , trong đó:
128 ký tự chuẩn, có mã từ 0016 ÷ 7F16
128 ký tự mở rộng, có mã từ 8016 ÷ FF16
19
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.73
Chương 3: Biểu diễn dữ liệu và số học máy tính
ASCII Character
Code128 ký tự
chuẩn
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.74
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các ký tự chuẩn
26 chữ cái hoa ‘A’ đến ‘Z’ có mã từ 4116 đến 5A16 (65 đến 90)
‘A’ 0100 0001 = 4116
‘B’ 0100 0010 = 4216
...
‘Z’ 0101 1010 = 5A16
26 chữ cái thường ‘a’ đến ‘z’ có mã từ 6116 đến 7A16 (97 đến 122)
‘a’ 0110 0001 = 6116
‘b’ 0110 0010 = 6216
...
‘z’ 0111 1010 = 7A16
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.75
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các ký tự chuẩn (tiếp)
10 chữ số thập phân từ 0 đến 9 có mã từ 3016
đến 3916 (48 đến 57)
‘0’ 0011 0000 = 3016
‘1’ 0011 0001 = 3116
‘2’ 0011 0010 = 3216
...
‘9’ 0011 1001 = 3916
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.76
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các ký tự chuẩn (tiếp)
Các ký hiệu khác:
Các dấu câu: . , : ; ...
Các dấu phép toán: + - * / % ...
một số ký hiệu thông dụng: &, $, @, #
dấu cách (space)
20
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.77
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các mã điều khiển: có mã 0016 ÷ 1F16 và 7F16
Các mã ký tự điều khiển định dạng (điều khiển màn
hình, máy in …):
BS, HT, LF, VT, FF, CR
Các mã ký tự điều khiển truyền tin:
SOH, STX, ETX, EOT, ENQ, ACK, NAK, SYN, ETB
Các mã ký tự điều khiển phân cách thông tin:
FS, GS, RS, US
Các mã ký tự điều khiển khác:
NUL, BEL, SO, SI, DLE, DC1+DC4, CAN, EM, SUB,
ESC, DEL
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.78
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các ký tự mở rộng: có mã 8016 ÷ FF16
Các ký tự mở rộng được định nghĩa bởi:
nhà chế tạo máy tính
người phát triển phần mềm
Ví dụ:
Bộ mã ký tự mở rộng của IBM IBM-PC.
Bộ mã ký tự mở rộng của Apple Macintosh.
Có thể thay đổi các ký tự mở rộng để mã hóa
cho các ký tự riêng của tiếng Việt, ví dụ như bộ
mã TCVN3.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.79
Chương 3: Biểu diễn dữ liệu và số học máy tính
2. Bộ mã hợp nhất Unicode
Do các hãng máy tính hàng đầu thiết kế
Bộ mã 16-bit
Bộ mã đa ngôn ngữ
Có hỗ trợ các ký tự tiếng Việt
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.80
Chương 3: Biểu diễn dữ liệu và số học máy tính
Unicode Character
Code256 ký tự
chuẩn
1
Chương 4BỘ XỬ LÝ TRUNG TÂM(Central Processing Unit - CPU)
Phạm Quang Dũng
Bộ môn Khoa học máy tính - Khoa CNTT
Trường Đại học Nông nghiệp I – Hà Nội
website: www.hau1.edu.vn/it/pqdung
ĐT: (04) 8766318 DĐ: 0988.149.189
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.2
Chương 4: CPU
Nội dung chương 4
4.1. Cấu trúc cơ bản của CPU
4.2. Tập lệnh
4.3. Hoạt động của CPU
4.4. Cấu trúc của các bộ xử lý tiên tiến
4.5. Kiến trúc Intel
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.3
Chương 4: CPU
4.1. Cấu trúc cơ bản của CPU
1. Nhiệm vụ và cấu trúc của CPU
Nhiệm vụ của CPU
Nhận lệnh (Fetch Instruction): CPU đọc lệnh từ bộnhớ
Giải mã lệnh (Decode Instruction): Xác định thao tác mà lệnh yêu cầu
Nhận dữ liệu (Fetch Data): nhận dữ liệu từ bộ nhớhoặc các cổng vào-ra
Xử lý dữ liệu (Process Data): thực hiện phép toán sốhọc hay phép toán logic với các dữ liệu
Ghi dữ liệu (Write Data): ghi dữ liệu ra bộ nhớ hay cổng vào-ra
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.4
Chương 4: CPU
Sơ đồ cấu trúc cơ bản của CPU
2
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.5
Chương 4: CPU
Các thành phần cơ bản của CPU
Đơn vị điều khiển (Control Unit – CU)
Đơn vị số học và logic (Arithmetic and
Logic Unit - ALU)
Tập thanh ghi (Register File - RF)
Đơn vị nối ghép bus (Bus Interface Unit -
BIU)
Bus bên trong (Internal Bus)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.6
Chương 4: CPU
2. Đơn vị số học và logic
Chức năng: Thực hiện các phép toán sốhọc và phép toán logic:
Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo dấu
Logic: AND, OR, XOR, NOT, phép dịch bit.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.7
Chương 4: CPU
Mô hình kết nối ALU
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.8
Chương 4: CPU
3. Đơn vị điều khiển
Chức năngĐiều khiển nhận lệnh từ bộ nhớ đưa vào thanh ghi lệnhTăng nội dung của PC để trỏ sang lệnh kếtiếpGiải mã lệnh đã được nhận để xác định thao tác mà lệnh yêu cầuPhát ra các tín hiệu điều khiển thực hiện lệnhNhận các tín hiệu yêu cầu từ bus hệ thống và đáp ứng với các yêu cầu đó.
3
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.9
Chương 4: CPU
Mô hình kết nối đơn vị điều khiển
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.10
Chương 4: CPU
Các tín hiệu đưa đến đơn vị điều khiển
Clock: tín hiệu nhịp từ mạch tạo dao động
bên ngoài.
Mã lệnh từ thanh ghi lệnh đưa đến để giải
mã.
Các cờ từ thanh ghi cờ cho biết trạng thái
của CPU.
Các tín hiệu yêu cầu từ bus điều khiển
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.11
Chương 4: CPU
Các tín hiệu phát ra từ đơn vị điều khiển
Các tín hiệu điều khiển bên trong CPU:
Điều khiển các thanh ghi
Điều khiển ALU
Các tín hiệu điều khiển bên ngoài CPU:
Điều khiển bộ nhớ
Điều khiển các môđun vào-ra
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.12
Chương 4: CPU
4. Tập thanh ghi
Chức năng và đặc điểm:Tập hợp các thanh ghi nằm trong CPUChứa các thông tin tạm thời phục vụ cho hoạt động ở thời điểm hiện tại của CPUĐược coi là mức đầu tiên của hệ thống nhớTuỳ thuộc vào bộ xử lý cụ thểSố lượng thanh ghi nhiều tăng hiệu năng của CPUCó hai loại thanh ghi
Các thanh ghi lập trình đượcCác thanh ghi không lập trình được
4
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.13
Chương 4: CPU
Phân loại thanh ghi theo chức năng
Thanh ghi địa chỉ: quản lý địa chỉ của ngăn
nhớ hay cổng vào-ra.
Thanh ghi dữ liệu: chứa tạm thời các dữ liệu
Thanh ghi đa năng: có thể chứa địa chỉ hoặc
dữ liệu.
Thanh ghi điều khiển/trạng thái: chứa các
thông tin điều khiển và trạng thái của CPU.
Thanh ghi lệnh: chứa lệnh đang được thực hiện
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.14
Chương 4: CPU
Một số thanh ghi điển hình
Các thanh ghi địa chỉ
Bộ đếm chương trình PC (Program Counter)
Con trỏ dữ liệu DP (Data Pointer)
Con trỏ ngăn xếp SP (Stack Pointer)
Thanh ghi cơ sở và thanh ghi chỉ số
(Base Register & Index Register)
Các thanh ghi dữ liệu
Thanh ghi trạng thái
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.15
Chương 4: CPU
Bộ đếm chương trình PC
Còn được gọi là con trỏ lệnh IP
(Instruction Pointer)
Giữ địa chỉ của lệnh tiếp theo sẽ được
nhận vào.
Sau khi một lệnh được nhận vào, nội dung
PC tự động tăng để trỏ sang lệnh kế tiếp.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.16
Chương 4: CPU
Minh họa bộ đếm chương trình
5
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.17
Chương 4: CPU
Thanh ghi con trỏ dữ liệu
Chứa địa chỉ của ngăn nhớ dữ liệu mà
CPU muốn truy nhập
Thường có một số thanh ghi con trỏ dữ
liệu
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.18
Chương 4: CPU
Minh họa thanh ghi con trỏ dữ liệu
DP
Dữ liệu
Dữ liệu cần đọc/ghi
Dữ liệu
Dữ liệu
Dữ liệu
Dữ liệu
Dữ liệu
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.19
Chương 4: CPU
Ngăn xếp (Stack)
Ngăn xếp là vùng nhớ có cấu trúc LIFO
(Last In – First Out)
Ngăn xếp thường dùng để phục vụ cho chương trình con
Đáy ngăn xếp là một ngăn nhớ xác định
Đỉnh ngăn xếp là thông tin nằm ở vị trítrên cùng trong ngăn xếp
Đỉnh ngăn xếp có thể bị thay đổi
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.20
Chương 4: CPU
Con trỏ ngăn xếp SP (Stack Pointer)
SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếp
Khi cất một thông tin vào ngăn xếp:
Nội dung của SP tự động giảm
Thông tin được cất vào ngăn nhớ được trỏ bởi SP
Khi lấy một thông tin ra khỏi ngăn xếp:
Thông tin được đọc từ ngăn nhớ được trỏ bởi SP
Nội dung của SP tự động tăng
Khi ngăn xếp rỗng, SP trỏ vào đáy
6
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.21
Chương 4: CPU
Minh họa con trỏ ngăn xếp SP
SP Đỉnh Stack
Đáy Stack
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.22
Chương 4: CPU
Thanh ghi cơ sở và thanh ghi chỉ số
Thanh ghi cơ sở: chứa địa chỉ của ngăn
nhớ cơ sở (địa chỉ cơ sở)
Thanh ghi chỉ số: chứa độ lệch địa chỉ giữa
ngăn nhớ mà CPU cần truy nhập so với
ngăn nhớ cơ sở (chỉ số)
Địa chỉ của ngăn nhớ cần truy nhập = địa
chỉ cơ sở + chỉ số
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.23
Chương 4: CPU
Minh họa thanh ghi cơ sở và thanh ghi chỉ số
Thanh ghi cơ sở
Thanh ghi chỉ số
Ngăn nhớ cơ sở
Ngăn nhớ cần truy nhập
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.24
Chương 4: CPU
Các thanh ghi dữ liệu
Chứa các dữ liệu tạm thời hoặc các kết
quả trung gian
Cần có nhiều thanh ghi dữ liệu
Các thanh ghi số nguyên: 8, 16, 32, 64
bit
Các thanh ghi số dấu chấm động
7
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.25
Chương 4: CPU
Thanh ghi trạng thái (Status Register)
Còn gọi là thanh ghi cờ (Flag Register)
Chứa các thông tin trạng thái của CPU
Các cờ phép toán: báo hiệu trạng thái của kết quả
phép toán
Các cờ điều khiển: biểu thị trạng thái điều khiển của
CPU
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.26
Chương 4: CPU
Ví dụ cờ phép toán
Cờ Zero (cờ rỗng): được thiết lập lên 1 khi kết
quả của phép toán bằng 0.
Cờ Sign (cờ dấu): được thiết lập lên 1 khi kết quả
phép toán nhỏ hơn 0
Cờ Carry (cờ nhớ): được thiết lập lên 1 nếu phép
toán có nhớ ra ngoài bit cao nhất cờ báo tràn
với số không dấu.
Cờ Overflow (cờ tràn): được thiếp lập lên 1 nếu
cộng hai số nguyên cùng dấu mà kết quả có dấu
ngược lại cờ báo tràn với số có dấu.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.27
Chương 4: CPU
Ví dụ cờ điều khiển
Cờ Interrupt (Cờ cho phép ngắt)
Nếu IF = 1 CPU ở trạng thái cho phép ngắt với tín
hiệu yêu cầu ngắt từ bên ngoài gửi tới
Nếu IF = 0 CPU ở trạng thái cấm ngắt với tín hiệu
yêu cầu ngắt từ bên ngoài gửi tới
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.28
Chương 4: CPU
4.2. Tập lệnh
1. Giới thiệu chung về tập lệnh
Mỗi bộ xử lý có một tập lệnh xác định
Tập lệnh thường có hàng chục đến hàng trăm lệnh
Mỗi lệnh là một chuỗi số nhị phân mà bộ xử lý hiểu
được để thực hiện một thao tác xác định
Các lệnh được mô tả bằng các ký hiệu gợi nhớ
chính là các lệnh của hợp ngữ
8
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.29
Chương 4: CPU
Các thành phần của lệnh máy
Mã thao tác (operation code → opcode): mã hóa cho thao tác mà bộ xử lý phải thực hiện
Địa chỉ toán hạng: chỉ ra nơi chứa các toán hạng mà thao tác sẽ tác động
Toán hạng nguồn: dữ liệu vào của thao tác
Toán hạng đích: dữ liệu ra của thao tác
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.30
Chương 4: CPU
2. Các kiểu thao tác
Chuyển dữ liệu
Xử lý số học với số nguyên
Xử lý logic
Điều khiển vào-ra
Chuyển điều khiển (rẽ nhánh)
Điều khiển hệ thống
Xử lý số dấu chấm động
Xử lý các dữ liệu chuyên dụng
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.31
Chương 4: CPU
Các lệnh chuyển dữ liệu
MOVE Copy dữ liệu từ nguồn đến đích
LOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lý
STORE Cất dữ liệu từ bộ xử lý đến bộ nhớ
EXCHANGE Trao đổi nội dung của nguồn và đích
CLEAR Chuyển các bit 0 vào toán hạng đích
SET Chuyển các bit 1 vào toán hạng đích
PUSH Cất nội dung toán hạng nguồn vào
ngăn xếp
POP Lấy nội dung đỉnh ngăn xếp đưa đến
toán hạng đích
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.32
Chương 4: CPU
Các lệnh số học
ADD Cộng hai toán hạng
SUBTRACT Trừ hai toán hạng
MULTIPLY Nhân hai toán hạng
DIVIDE Chia hai toán hạng
ABSOLUTE Lấy trị tuyệt đối toán hạng
NEGATE Đổi dấu toán hạng (lấy bù 2)
INCREMENT Tăng toán hạng thêm 1
DECREMENT Giảm toán hạng đi 1
COMPARE Trừ 2 toán hạng để lập cờ
9
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.33
Chương 4: CPU
Các lệnh logic
AND Thực hiện phép AND hai toán hạng
OR Thực hiện phép OR hai toán hạng
XOR Thực hiện phép XOR hai toán hạng
NOT Đảo bit của toán hạng (lấy bù 1)
TEST Thực hiện phép AND 2 toán hạng để lập cờ
SHIFT Dịch trái (phải) toán hạng
ROTATE Quay trái (phải) toán hạng
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.34
Chương 4: CPU
Minh hoạ các lệnh AND, OR, XOR
Giả sử có hai thanh ghi chứa dữ liệu như sau:
(R1) = 1010 1010
(R2) = 0000 1111
R1 (R1) AND (R2) = 0000 1010
Phép toán AND dùng để xoá một số bit và giữ nguyên một số bit còn lại của toán hạng.
R1 (R1) OR (R2) = 1010 1111
Phép toán OR dùng để thiết lập một số bit và giữnguyên một số bit còn lại của toán hạng.
R1 (R1) XOR (R2) = 1010 0101
Phép toán XOR dùng để đảo một số bit và giữ nguyên một số bit còn lại của toán hạng.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.35
Chương 4: CPU
Các lệnh vào ra chuyên dụng
INPUT Copy dữ liệu từ một cổng xác
định đến đích
OUTPUT Copy dữ liệu từ nguồn đến
một cổng xác định
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.36
Chương 4: CPU
Các lệnh chuyển điều khiển
JUMP (BRANCH) - Lệnh nhảy không điều kiện:
Nạp vào PC một địa chỉ xác định
JUMP CONDITIONAL - Lệnh nhảy có điều kiện:
Điều kiện đúng nạp PC một địa chỉ xác định
Điều kiện sai không làm gì cả
CALL - Lệnh gọi chương trình con:
Cất nội dung của PC (địa chỉ trở về) ra một vị trí xác định (thường ở Stack)
Nạp vào PC địa chỉ của lệnh đầu tiên của chương trình con
RETURN - Lệnh trở về từ chương trình con:
Khôi phục địa chỉ trở về trả lại cho PC để trở về chương trình chính
10
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.37
Chương 4: CPU
Lệnh rẽ nhánh không điều kiện
Chuyển tới thực hiện lệnh
ở vị trí có địa chỉ XXX:
PC XXX
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.38
Chương 4: CPU
Lệnh rẽ nhánh có điều kiện
Trong lệnh có kèm theo điều kiện
Kiểm tra điều kiện trong lệnh:
Nếu điều kiện đúng chuyển tới thực hiện lệnh ở vị
trí có địa chỉ XXX
PC XXX
Nếu điều kiện sai chuyển sang thực hiện lệnh kế
tiếp
Điều kiện thường được kiểm tra thông qua các cờ
Có nhiều lệnh rẽ nhánh có điều kiện
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.39
Chương 4: CPU
Minh họa lệnh rẽ nhánh có điều khiện
Lệnh
Lệnh kế tiếp
Lệnh rẽ nhánh XXX
Lệnh
Lệnh
Lệnh
Lệnh
...
LệnhXXX
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.40
Chương 4: CPU
Lệnh CALL và RETURN
Lệnh gọi chương trình con: lệnh CALLCất nội dung PC (chứa địa chỉ của lệnh kế tiếp) ra Stack
Nạp vào PC địa chỉ của lệnh đầu tiên của chương trình con được gọi
Bộ xử lý được chuyển sang thực hiện chương trình con tương ứng
Lệnh trở về từ chương trình con: lệnh RETURNLấy địa chỉ của lệnh kế tiếp được cất ở Stack nạp trả lại cho PC Bộ xử lý được điều khiển quay trởvề thực hiện tiếp lệnh nằm sau lệnh CALL
11
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.41
Chương 4: CPU
Minh họa lệnh CALL và RETURN
Lệnh
Lệnh kế tiếp
CALL CTcon
Lệnh
RETURN
Lệnh
...
LệnhCTconLệnh đầu tiên của CTcon
...
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.42
Chương 4: CPU
Các lệnh điều khiển hệ thống
NO OPERATION Không thực hiện gì cả
HALT Dừng thực hiện chương trình
WAIT Tạm dừng thực hiện chương trình, lặp
kiểm tra điều kiện cho đến khi thoả mãn
thì tiếp tục thực hiện
LOCK Cấm không cho xin chuyển nhượng bus
UNLOCK Cho phép xin chuyển nhượng bus
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.43
Chương 4: CPU
3. Các phương pháp định địa chỉ (addressing modes)
Khái niệm về định địa chỉ (addressing)
Toán hạng của lệnh có thể là:
Một giá trị cụ thể
Nội dung của thanh ghi
Nội dung của ngăn nhớ hoặc cổng vào-ra
Phương pháp định địa chỉ là cách thức địa
chỉ hoá trong trường địa chỉ của lệnh để
xác định toán hạng.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.44
Chương 4: CPU
Các phương pháp định địa chỉ thông dụng
Định địa chỉ tức thì
Định địa chỉ thanh ghi
Định địa chỉ trực tiếp
Định địa chỉ gián tiếp qua thanh ghi
Định địa chỉ gián tiếp qua ngăn nhớ
Định địa chỉ dịch chuyển
12
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.45
Chương 4: CPU
Định địa chỉ tức thì
Toán hạng nằm ngay trong Trường địa chỉ của lệnh
Chỉ có thể là toán hạng nguồn
Ví dụ:
ADD R1,5 ; R1 R1+5
Không tham chiếu bộ nhớ
Truy nhập toán hạng rất nhanh
Dải giá trị của toán hạng bị hạn chế
Sơ đồ định địa chỉ tức thì:
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.46
Chương 4: CPU
Định địa chỉ thanh ghi
Toán hạng được chứa trong thanh ghi có tên trong
Trường địa chỉ của lệnh
Ví dụ:
ADD R1, R2 ; R1 R1+R2
Số lượng thanh ghi ít Trường địa chỉ chỉ cần ít bit
Không tham chiếu bộ nhớ
Truy nhập toán hạng nhanh
Tăng số lượng thanh ghi hiệu quả hơn
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.47
Chương 4: CPU
Sơ đồ định địa chỉ thanh ghi
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.48
Chương 4: CPU
Định địa chỉ trực tiếp
Toán hạng là ngăn nhớ có địa chỉ được chỉ
ra trực tiếp trong Trường địa chỉ của lệnh
Ví dụ: ADD R1, A ; R1 R1+(A)
Cộng nội dung thanh ghi R1 với nội dung
của ngăn nhớ có địa chỉ là A
Tìm toán hạng trong bộ nhớ ở địa chỉ A
CPU tham chiếu bộ nhớ một lần để truy
nhập dữ liệu
13
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.49
Chương 4: CPU
Sơ đồ định địa chỉ trực tiếp
Mã thao tác Địa chỉ
Toán hạng
Bộ nhớ
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.50
Chương 4: CPU
Định địa chỉ gián tiếp qua thanh ghi
Toán hạng là ngăn nhớ có địa chỉ nằm
trong thanh ghi
Trường địa chỉ của lệnh cho biết tên thanh
ghi đó
Thanh ghi có thể là ngầm định
Thanh ghi này được gọi là thanh ghi con trỏ
Vùng nhớ có thể được tham chiếu là lớn
(2n), (với n là độ dài của thanh ghi)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.51
Chương 4: CPU
Sơ đồ định địa chỉ gián tiếp qua thanh ghi
Mã thao tác Tên thanh ghi
Toán hạng
Bộ nhớ
Địa chỉ
Tập thanh ghi
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.52
Chương 4: CPU
Định địa chỉ gián tiếp qua ngăn nhớ
Ngăn nhớ được trỏ bởi Trường địa chỉ của
lệnh chứa địa chỉ của toán hạng
Có thể gián tiếp nhiều lần
Giống như khái niệm biến con trỏ và biến
động trong lập trình
CPU phải thực hiện tham chiếu bộ nhớ
nhiều lần để tìm toán hạng chậm
Vùng nhớ có thể được tham chiếu là lớn
14
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.53
Chương 4: CPU
Sơ đồ định địa chỉ gián tiếp qua ngăn nhớ
Mã thao tác Địa chỉ
Địa chỉ
Toán hạng
Bộ nhớ
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.54
Chương 4: CPU
Định địa chỉ dịch chuyển
Để xác định toán hạng Trường địa chỉ của
lệnh chứa hai thành phần:
Tên thanh ghi
Hằng số
Địa chỉ của toán hạng = nội dung thanh ghi
+ hằng số
Thanh ghi có thể được ngầm định
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.55
Chương 4: CPU
Sơ đồ định địa chỉ dịch chuyển
Mã thao tác Tên thanh ghi
Toán hạng
Bộ nhớ
Tập thanh ghi
Hằng số
+
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.56
Chương 4: CPU
Các dạng của định địa chỉ dịch chuyển
Địa chỉ hoá tương đối với PC
Thanh ghi là Bộ đếm chương trình PC
Toán hạng có địa chỉ cách ngăn nhớ được trỏ bởi PC
một độ lệch xác định
Định địa chỉ cơ sở
Thanh ghi chứa địa chỉ cơ sở
Hằng số là chỉ số
Định địa chỉ chỉ số
Hằng số là địa chỉ cơ sở
Thanh ghi chứa chỉ số
15
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.57
Chương 4: CPU
4.3. Hoạt động của CPU
1. Chu trình lệnh
Nhận lệnh
Giải mã lệnh
Nhận toán hạng
Thực hiện lệnh
Cất toán hạng
Ngắt
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.58
Chương 4: CPU
Nhận lệnh
CPU đưa địa chỉ của lệnh cần nhận từ bộ
đếm chương trình PC ra bus địa chỉ
CPU phát tín hiệu điều khiển đọc bộ nhớ
Lệnh từ bộ nhớ được đặt lên bus dữ liệu và
được CPU copy vào thanh ghi lệnh IR
CPU tăng nội dung PC để trỏ sang lệnh kế
tiếp
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.59
Chương 4: CPU
Sơ đồ mô tả quá trình nhận lệnh
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.60
Chương 4: CPU
Giải mã lệnh
Lệnh từ thanh ghi lệnh IR được đưa đến
đơn vị điều khiển
Đơn vị điều khiển tiến hành giải mã lệnh để
xác định thao tác phải thực hiện
Giải mã lệnh xảy ra bên trong CPU
16
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.61
Chương 4: CPU
Nhận dữ liệu
CPU đưa địa chỉ của toán hạng ra bus địa
chỉ
CPU phát tín hiệu điều khiển đọc
Toán hạng được đọc vào CPU
Tương tự như nhận lệnh
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.62
Chương 4: CPU
Nhận dữ liệu gián tiếp
CPU đưa địa chỉ ra bus địa chỉ
CPU phát tín hiệu điều khiển đọc
Nội dung ngăn nhớ được đọc vào CPU, đóchính là địa chỉ của toán hạng
Địa chỉ này được CPU phát ra bus địa chỉ đểtìm ra toán hạng
CPU phát tín hiệu điều khiển đọc
Toán hạng được đọc vào CPU
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.63
Chương 4: CPU
Sơ đồ nhận toán hạng gián tiếp
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.64
Chương 4: CPU
Thực hiện lệnh
Có nhiều dạng tuỳ thuộc vào lệnh
Có thể là:
Đọc/Ghi bộ nhớ
Vào/Ra
Chuyển giữa các thanh ghi
Thao tác số học/logic
Chuyển điều khiển (rẽ nhánh)
…
17
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.65
Chương 4: CPU
Ghi toán hạng
CPU đưa địa chỉ ra bus địa chỉ
CPU đưa dữ liệu cần ghi ra bus dữ liệu
CPU phát tín hiệu điều khiển ghi
Dữ liệu trên bus dữ liệu được copy đến vị trí
xác định
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.66
Chương 4: CPU
Sơ đồ mô tả quá trình ghi toán hạng
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.67
Chương 4: CPU
Ngắt
Nội dung của bộ đếm chương trình PC (địa chỉ trở
về sau khi ngắt) được đưa ra bus dữ liệu
CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn
xếp SP) ra bus địa chỉ
CPU phát tín hiệu điều khiển ghi bộ nhớ
Địa chỉ trở về trên bus dữ liệu được ghi ra vị trí xác
định (ở ngăn xếp)
Địa chỉ lệnh đầu tiên của chương trình con điều
khiển ngắt được nạp vào PC
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.68
Chương 4: CPU
Sơ đồ mô tả chu trình ngắt
18
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.69
Chương 4: CPU
2. Đường ống lệnh (Instruction Pipelining)
Chia chu trình lệnh thành các công đoạn và cho phép
thực hiện gối lên nhau (như dây chuyền lắp ráp)
Chẳng hạn có 6 công đoạn:
Nhận lệnh (Fetch Instruction – FI)
Giải mã lệnh (Decode Instruction – DI)
Tính địa chỉ toán hạng (Calculate Operand Address – CO)
Nhận toán hạng (Fetch Operands – FO)
Thực hiện lệnh (Execute Instruction – EI)
Ghi toán hạng (Write Operands – WO)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.70
Chương 4: CPU
Biểu đồ thời gian của đường ống lệnh
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.71
Chương 4: CPU
Các xung đột của đường ống lệnh
Xung đột cấu trúc: do nhiều công đoạn
dùng chung một tài nguyên
Xung đột dữ liệu: lệnh sau sử dụng dữ liệu
kết quả của lệnh trước
Xung đột điều khiển: do rẽ nhánh gây ra
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.72
Chương 4: CPU
4.4. Cấu trúc chung của các bộ xử lý tiên tiến
19
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.73
Chương 4: CPU
Các đơn vị xử lý dữ liệu
Các đơn vị số nguyên
Các đơn vị số dấu chấm động
Các đơn vị chức năng đặc biệt
Đơn vị xử lý dữ liệu âm thanh
Đơn vị xử lý dữ liệu hình ảnh
Đơn vị xử lý dữ liệu vector
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.74
Chương 4: CPU
Bộ nhớ cache
Được tích hợp trên chip vi xử lý
Bao gồm hai mức cache
Cache L1 gồm hai phần tách rời:
Cache lệnh
Cache dữ liệu
Giải quyết xung đột khi nhận lệnh và dữ liệu
Cache L2
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.75
Chương 4: CPU
Đơn vị quản lý bộ nhớ
Chuyển đổi địa chỉ ảo thành địa chỉ vật lý
Cung cấp cơ chế phân trang/phân đoạn
Cung cấp chế độ bảo vệ bộ nhớ
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.76
Chương 4: CPU
4.5. Kiến trúc Intel
Kiến trúc 4-bit: 4004
Kiến trúc 8-bit: 8008, 8080, 8085
Kiến trúc 16-bit: 8086/8088, 80186, 80286
Kiến trúc 32-bit: 80386, 80486,
Pentium, Pentium II
Celeron, Pentium III,
Pentium IV
Kiến trúc 64-bit: Itanium
128 bit?
20
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.77
Chương 4: CPU
1. Kiến trúc 16-bit (IA-16)
Các thanh ghi bên trong: 16-bit
Xử lý các phép toán số nguyên với 16-bit
Quản lý bộ nhớ theo đoạn 64 KBytes
Mở đầu cho dòng máy tính IBM-PC
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.78
Chương 4: CPU
2. Kiến trúc 32-bit (IA-32)
Các thanh ghi bên trong: 32 bitXử lý các phép toán số nguyên với 32-bitCó 3 chế độ làm việc
Chế độ 8086 thực (Real 8086 mode): làm việc như một bộ xử lý 8086Chế độ 8086 ảo (Virtual 8086 mode): làm việc như nhiều bộ xử lý 8086 (đa nhiệm 16-bit)Chế độ bảo vệ (Protected mode)Đa nhiệm 32-bitQuản lý bộ nhớ ảo
Xử lý các phép toán số dấu chấm động (từ80486)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.79
Chương 4: CPU
3. Kiến trúc 64-bit (IA-64)
Các thanh ghi bên trong: 64 bit
Xử lý các phép toán số nguyên với 64-bit
Xử lý các phép toán số dấu chấm động
Không tương thích phần cứng với các bộ xử
lý trước đó
Tương thích phần mềm bằng cách giả lập
môi trường
1
Chương 5BỘ NHỚ MÁY TÍNH
Phạm Quang Dũng
Bộ môn Khoa học máy tính - Khoa CNTT
Trường Đại học Nông nghiệp I – Hà Nội
website: www.hau1.edu.vn/it/pqdung
ĐT: (04) 8766318 DĐ: 0988.149.189
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.2
Chương 5: Bộ nhớ máy tính
Nội dung chương 5
5.1. Tổng quan về hệ thống nhớ
5.2. Bộ nhớ bán dẫn
5.3. Bộ nhớ chính
5.4. Bộ nhớ cache
5.5. Bộ nhớ ngoài
5.6. Hệ thống nhớ trên máy tính cá nhân
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.3
Chương 5: Bộ nhớ máy tính
5.1. Tổng quan về hệ thống nhớ
1. Các đặc trưng của hệ thống nhớ
Vị trí
Bên trong CPU:
tập thanh ghi
Bộ nhớ trong
bộ nhớ chính
bộ nhớ cache
Bộ nhớ ngoài: các thiết bị nhớ
Dung lượng
Độ dài từ nhớ (tính bằng bit: 16, 32 bit)
Số lượng từ nhớ
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.4
Chương 5: Bộ nhớ máy tính
Các đặc trưng của hệ thống nhớ (tiếp)
Đơn vị truyền
Từ nhớ (word)
Khối nhớ (block)
Phương pháp truy nhập
Truy nhập tuần tự (băng từ)
Truy nhập trực tiếp (các loại đĩa)
Truy nhập ngẫu nhiên (bộ nhớ bán dẫn)
Truy nhập liên kết (cache)
2
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.5
Chương 5: Bộ nhớ máy tính
Các đặc trưng của hệ thống nhớ (tiếp)
Hiệu năng
Thời gian truy nhập
Chu kỳ nhớ
Tốc độ truyền
Kiểu vật lý
Bộ nhớ bán dẫn
Bộ nhớ từ
Bộ nhớ quang
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.6
Chương 5: Bộ nhớ máy tính
Các đặc trưng của hệ thống nhớ (tiếp)
Các đặc tính vật lý
Khả biến/Không khả biến
(volatile/nonvolatile)
Xóa được/Không xóa được
Tổ chức
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.7
Chương 5: Bộ nhớ máy tính
2. Phân cấp hệ thống nhớ
Từ trái sang phải:
dung lượng tăng dần
tốc độ giảm dần
giá thành/1 bit giảm dần
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.8
Chương 5: Bộ nhớ máy tính
5.2. Bộ nhớ bán dẫn
1. Phân loại
Kiểu bộ nhớTiêu
chuẩnKhả năng
xóaCơ chế ghi
Tính khảbiến
Read Only Memory (ROM)
Mặt nạ
Programmable ROM (PROM)
Erasable PROM (EPROM)
Bằng tia cực tím, cả chip
Electrically Erasable PROM (EEPROM)
Bằng điện, mức từng byte
Flash MemoryBằng điện,
mức từng khối
Random Access Memory (RAM)
Bằng điện, mức từng byte
Khả biến
Bộ nhớ đọc-ghi
Bộ nhớhầu như chỉ đọc Bằng điện
Không khảbiến
Bộ nhớchỉ đọc
Không xóa được
3
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.9
Chương 5: Bộ nhớ máy tính
ROM (Read Only Memory)
Bộ nhớ không khả biến
Lưu trữ các thông tin sau:
Thư viện các chương trình con
Các chương trình điều khiển hệ thống (BIOS)
Các bảng chức năng
Vi chương trình
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.10
Chương 5: Bộ nhớ máy tính
Các kiểu ROM
ROM mặt nạ:thông tin được ghi khi sản xuất
rất đắt
PROM (Programmable ROM)Cần thiết bị chuyên dụng để ghi bằng chương trình → chỉ ghi được 1 lần
EPROM (Erasable PROM)Cần thiết bị chuyên dụng để ghi bằng chương trình → ghi được nhiều lần
Trước khi ghi lại, xóa bằng tia cực tím
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.11
Chương 5: Bộ nhớ máy tính
Các kiểu ROM (tiếp)
EEPROM (Electrically Erasable PROM)
Có thể ghi theo từng byte
Xóa bằng điện
Flash Memory (Bộ nhớ cực nhanh)
Ghi theo khối
Xóa bằng điện
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.12
Chương 5: Bộ nhớ máy tính
RAM (Random Access Memory)
Bộ nhớ đọc-ghi (Read/Write Memory)
Khả biến
Lưu trữ thông tin tạm thời
Có 2 loại: SRAM và DRAM
4
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.13
Chương 5: Bộ nhớ máy tính
SRAM (Static RAM) - RAM tĩnh
Các bit được lưu trữ bằng các Flip-Flop
→ thông tin ổn định
Cấu trúc phức tạp
Dung lượng chip nhỏ
Tốc độ nhanh
Đắt tiền
Dùng làm bộ nhớ cache
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.14
Chương 5: Bộ nhớ máy tính
DRAM (Dynamic RAM) - RAM động
Các bit được lưu trữ trên tụ điện
→ cần phải có mạch làm tươi
Cấu trúc đơn giản
Dung lượng lớn
Tốc độ chậm hơn
Rẻ tiền hơn
Dùng làm bộ nhớ chính
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.15
Chương 5: Bộ nhớ máy tính
Các DRAM tiên tiến
Enhanced DRAM
Cache DRAM
Synchronous DRAM (SDRAM): làm việc được đồng bộ bởi xung đồng hồ
DDR-SDRAM (Double Data Rate SDRAM)
Rambus DRAM (RDRAM)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.16
Chương 5: Bộ nhớ máy tính
2. Tổ chức của chip nhớ
Sơ đồ cơ bản của chip nhớ
5
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.17
Chương 5: Bộ nhớ máy tính
Các tín hiệu của chip nhớ
Các đường địa chỉ: An-1 ÷ A0 → có 2n từ nhớ
Các đường dữ liệu: Dm-1 ÷ D0 → độ dài từnhớ = m bit
Dung lượng chip nhớ = 2n x m bit
Các đường điều khiển:
Tín hiệu chọn chip CS (Chip Select)
Tín hiệu điều khiển đọc OE (Output Enable)
Tín hiệu điều khiển ghi WE (Write Enable)
Các tín hiệu điều khiển tích cực với mức 0
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.18
Chương 5: Bộ nhớ máy tính
Tổ chức của DRAM
Dùng n đường địa chỉ dồn kênh → cho phép truyền 2n bit địa chỉ
Tín hiệu chọn địa chỉ hàng RAS (Row Address Select)
Tín hiệu chọn địa chỉ cột CAS (Column Address Select)
Dung lượng của DRAM = 22n x m bit
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.19
Chương 5: Bộ nhớ máy tính
Chip nhớ
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.20
Chương 5: Bộ nhớ máy tính
3. Thiết kế mô-đun nhớ bán dẫn
Dung lượng chip nhớ = 2n x m bit
Cần thiết kế để tăng dung lượng:
Thiết kế tăng độ dài từ nhớ
Thiết kế tăng số lượng từ nhớ
Thiết kế kết hợp
6
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.21
Chương 5: Bộ nhớ máy tính
Tăng độ dài từ nhớ
VD1:
Cho chip nhớ SRAM 4K x 4 bit
Thiết kế mô-đun nhớ 4K x 8 bit
Giải:
Dung lượng chip nhớ = 212 x 4 bit
chip nhớ có:12 chân địa chỉ
4 chân dữ liệu
mô-đun nhớ cần có:12 chân địa chỉ
8 chân dữ liệu
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.22
Chương 5: Bộ nhớ máy tính
Ví dụ tăng độ dài từ nhớ
A11÷A0
D3÷D0
A11÷A0
A11÷A0
D3÷D0 D3÷D0
D7÷D4
CSWEOE
CS CSOEOE WEWE
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.23
Chương 5: Bộ nhớ máy tính
Bài toán tăng độ dài từ nhớ tổng quát
Cho chip nhớ 2n x m bit
Thiết kế mô-đun nhớ 2n x (k.m) bit
Dùng k chip nhớ
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.24
Chương 5: Bộ nhớ máy tính
Tăng số lượng từ nhớ
VD2:
Cho chip nhớ SRAM 4K x 8 bit
Thiết kế mô-đun nhớ 8K x 8 bit
Giải:
Dung lượng chip nhớ = 212 x 8 bit
chip nhớ có:12 chân địa chỉ
8 chân dữ liệu
Dung lượng mô-đun nhớ = 213 x 8 bit:13 chân địa chỉ
8 chân dữ liệu
7
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.25
Chương 5: Bộ nhớ máy tính
Ví dụ tăng số lượng từ nhớ
A
0
0
0
1
0 1
1 0
1 x 1 1
G Y0 Y1
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.26
Chương 5: Bộ nhớ máy tính
Bộ giải mã 2→4
B A
0
0
0
0
0 0
0 1
1 0
1 1
0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0
1 x x 1 1 1 1
G Y0 Y1 Y2 Y3
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.27
Chương 5: Bộ nhớ máy tính
Bài tập
1. Tăng số lượng từ nhớ gấp 4 lần:
Cho chip nhớ SRAM 4K x 8 bit
Thiết kế mô-đun nhớ 16K x 8 bit
2. Tăng số lượng từ nhớ gấp 8 lần:
Cho chip nhớ SRAM 4K x 8 bit
Thiết kế mô-đun nhớ 32K x 8 bit
3. Thiết kế kết hợp:
Cho chip nhớ SRAM 4K x 4 bit
Thiết kế mô-đun nhớ 8K x 8 bit
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.28
Chương 5: Bộ nhớ máy tính
5.3. Bộ nhớ chính
1. Các đặc trưng cơ bản
Chứa các chương trình đang được thực hiện và các dữ liệu đang được sử dụng
Tồn tại trên mọi hệ thống máy tính
Bao gồm các ngăn nhớ được đánh địa chỉ trực tiếp bởi CPU
Dung lượng của bộ nhớ chính nhỏ hơn không gian địa chỉ bộ nhớ mà CPU quản lý
Việc quản lý logic bộ nhớ chính tùy thuộc vào hệ điều hành
8
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.29
Chương 5: Bộ nhớ máy tính
2. Tổ chức bộ nhớ đan xen
Độ rộng của bus dữ liệu để trao đổi với bộnhớ: m = 8, 16, 32, 64, 128 … bit
Các ngăn nhớ được tổ chức theo byte
→ tổ chức bộ nhớ vật lý khác nhau
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.30
Chương 5: Bộ nhớ máy tính
m=8 bit → một băng nhớ tuyến tính
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.31
Chương 5: Bộ nhớ máy tính
m=16 bit → hai băng nhớ đan xen
02468
2iAN-1 ÷ A1
D7 ÷ D0
. . .
. . .
13579
2i+1
. . .
. . .
Băng 0Băng 1
BE0BE1D15 ÷ D8
Bộ tạo tín hiệu chọn
byte
BE1
BE0A0
B
W
Chọn byte
0 0 Chọn cả 2 byte
0 1 Chọn byte cao
1 0 Chọn byte thấp
1 1 Không chọn
BE1 BE0
Các tín hiệu chọn byte:
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.32
Chương 5: Bộ nhớ máy tính
m=32 bit → bốn băng nhớ đan xen
0481216
4iAN-1 ÷ A2
D7 ÷ D0
. . .
. . .
1591317
4i+1
. . .
. . .
Băng 0Băng 1
BE0BE1D15 ÷ D8
Bộ tạo tín hiệu chọn
byte
BE3
BE0A0
B
W
26101418
4i+2
. . .
. . .
Băng 2
BE2D23 ÷ D16
37111519
4i+3
. . .
. . .
Băng 3
BE3D31 ÷ D24
BE2
BE1A1
DW
9
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.33
Chương 5: Bộ nhớ máy tính
m=64 bit → tám băng nhớ đan xen
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.34
Chương 5: Bộ nhớ máy tính
5.4. Bộ nhớ đệm nhanh (cache memory)
1. Nguyên tắc chung
Cache có tốc độ nhanh hơn bộ nhớ chính
Cache được đặt giữa CPU và bộ nhớ chính nhằm tăng tốc độ truy nhập bộ nhớ của CPU
Cache có thể được đặt trên chip của CPU
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.35
Chương 5: Bộ nhớ máy tính
Ví dụ về thao tác của cache
CPU yêu cầu nội dung của ngăn nhớ
CPU kiểm tra trên cache với dữ liệu này
Nếu có, CPU nhận dữ liệu từ cache (nhanh)
Nếu không có, đọc block nhớ chứa dữ liệu
từ bộ nhớ chính vào cache
Tiếp đó chuyển dữ liệu từ cache vào CPU
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.36
Chương 5: Bộ nhớ máy tính
Cấu trúc chung của cache/bộ nhớ chính
B0
B1
B2
B3
B4
B5
Bi
Bp-1
. . .
. . .
L0
L1
L2
L3
Li
Lm-1
. . .
. . .
Bộ nhớ chính
CacheTag
CPU
10
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.37
Chương 5: Bộ nhớ máy tính
Cấu trúc chung của cache/bộ nhớ chính
Một số Block của bộ nhớ chính được nạp vào các Line của cache.
Nội dung Tag (thẻ nhớ) cho biết block nào của bộ nhớchính hiện đang được chứa ở line đó.
Khi CPU truy nhập (đọc/ghi) một từ nhớ, có 2 khả năng xảy ra:
Từ nhớ đó có trong cache (cache hit)
Từ nhớ đó không có trong cache (cache miss)
Vì số line của cache ít hơn số block của bộ nhớ chính, cần có một thuật giải ánh xạ thông tin trong bộ nhớchính vào cache.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.38
Chương 5: Bộ nhớ máy tính
2. Các phương pháp ánh xạ địa chỉ
a) Ánh xạ trực tiếp (Direct mapping)Mỗi block của bộ nhớ chính chỉ có thể được nạp vào 1 line duy nhất của cache.
Quy ước nạp: B0 → L0
B1 → L1
......
Bm-1 → Lm-1
Bm → L0
Bm+1 → L1
L0 : B0, Bm, B2m ...
L1 : B1, Bm+1, B2m+1 ..
Bj chỉ có thể được nạp vào Lj mod m
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.39
Chương 5: Bộ nhớ máy tính
Ánh xạ trực tiếp (tiếp)
B0
B1
B2
B3
B4
B5
Bi
Bp-1
. . .
. . .
L0
L1
L2
L3
Li
Lm-1
. . .
. . .
Bộ nhớ chính
Cache
Tag Line Byte
So sánh
n1n2n3
N bit
cache hit
cache miss
=
(2)
(3.1)
(3.2)
(1)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.40
Chương 5: Bộ nhớ máy tính
Ánh xạ trực tiếp (tiếp)
Địa chỉ CPU phát ra có N bit, được chia thành 3 trường:
Trường Byte (có n1 bit) để xác định byte nhớtrong Line (Block)
2n1 = kích thước 1 Line
Trường Line (có n2 bit) để xác định Line trong Cache
2n2 = số Line trong Cache
Dung lượng Cache = 2n1 * 2n2 = 2n1+n2
Trường Tag (có n3 bit): số bit còn lại
n3 = N - (n1 + n2) > 0 vì 2N >> 2n1+n2
11
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.41
Chương 5: Bộ nhớ máy tính
b) Ánh xạ liên kết toàn phần
Fully Associative Mapping
Mỗi block có thể được nạp vào bất kỳ line nào
của cache.
Địa chỉ bộ nhớ do CPU phát ra được chia thành
2 phần: tag và byte.
Để kiểm tra xem một block có trong cache hay
không, phải đồng thời kiểm tra tất cả tag của
các line trong cache.
Cần các mạch phức tạp để kiểm tra.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.42
Chương 5: Bộ nhớ máy tính
Ánh xạ liên kết toàn phần (tiếp)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.43
Chương 5: Bộ nhớ máy tính
c) Ánh xạ liên kết tập hợp
Set Associative MappingLà phương pháp dung hòa của 2 phương pháp trênChia cache thành các tập: S0, S1, S2 ...Mỗi Set có một số Line (2, 4, 8, 16 Line)vd mỗi Set có 2 line: 2-way Set Associative MappingMỗi block được nạp vào 1 line nào đó trong Set nhất định:
B0 → S0
B1 → S1
......Bk-1 → Sk-1
Bk → S0
Địa chỉ do CPU phát ra có 3 trường: Tag, Set, Byte
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.44
Chương 5: Bộ nhớ máy tính
Ánh xạ liên kết tập hợp (tiếp)
12
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.45
Chương 5: Bộ nhớ máy tính
Ví dụ
Hệ thống có: bộ nhớ chính = 256 MB
Cache = 128 KB
Line = 16 Byte
Xác định số bit của các trường địa chỉ khi
Ánh xạ trực tiếp
Ánh xạ liên kết tập hợp 4 Line/Set
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.46
Chương 5: Bộ nhớ máy tính
Ví dụ (tiếp)
1) 2N = 256.220 = 228 N = 28 bit
Tính cho trường Byte:
Kích thước line = 16 = 24 Byte n1 = 4 bit
Tính cho trường Line:
Số line trong Cache: 128.210/16 = 213 n2 = 13 bit
Tính cho trường Tag:
n3 = N - (n1 + n2) = 28 - (4 + 13) = 11 bit
2) - Trường Byte: n1 = 4 bit
- Trường Set:
Số Set = Số line/4 = 213/4 = 211 n2 = 11 bit
- Trường Tag: n3 = N - (n1 + n2) = 28 - (4 + 11) = 13 bit
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.47
Chương 5: Bộ nhớ máy tính
3. Các thuật giải thay thế block trong cache
Khi CPU truy nhập một thông tin mà không
có trong cache (cache miss) thì nạp block
chứa thông tin đó vào trong cache để thay
thế block cũ trong cache.
Ánh xạ trực tiếp chỉ có 1 cách nạp
không cần thuật giải để nạp.
2 phương pháp ánh xạ liên kết cần có
thuật giải để lựa chọn thay thế.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.48
Chương 5: Bộ nhớ máy tính
Các thuật giải thay thế block trong cache (tiếp)
1. Random: thay block một cách ngẫu nhiên.
2. FIFO (First In, First Out): thay thế block đã tồn tại
lâu nhất trong toàn cache đối với ánh xạ liên kết
toàn phần, trong set đối với ánh xạ liên kết tập hợp.
3. LFU (Least Frequently Used): thay block có số lần
truy nhập ít nhất.
4. LRU (Least Recently Used): thay block có khoảng
thời gian dài nhất không được truy nhập được
đánh giá là hiệu quả nhất.
13
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.49
Chương 5: Bộ nhớ máy tính
4. Phương pháp ghi dữ liệu khi cache hit
Ghi xuyên qua (Write through)
ghi cả cache và bộ nhớ chính
tốc độ chậm
Ghi trả sau (Write back)
chỉ ghi ra cache
tốc độ nhanh
khi block trong cache bị thay thế cần phải ghi trả cả block về bộ nhớ chính
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.50
Chương 5: Bộ nhớ máy tính
5. Cache trên các bộ xử lý Intel
80386: không có cache trên chip
80486: 8KB
Pentium: có 2 cache L1 trên chipcache lệnh = 8KB
cache dữ liệu = 8KB
Pentium 4: hai mức cache L1 và L2 trên chipCache L1:
2 cache L1, mỗi cache 8KB
kích thước Line = 64 byte
Cache L2:256 KB - 2 MB
kích thước Line = 128 byte
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.51
Chương 5: Bộ nhớ máy tính
Sơ đồ Pentium 4
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.52
Chương 5: Bộ nhớ máy tính
5.5. Bộ nhớ ngoài
1. Các kiểu bộ nhớ ngoài
Đĩa từ (Magnetic Disk)
Đĩa quang (Optical Disk)
Flash Disk
Băng từ (Magnetic Tape)
14
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.53
Chương 5: Bộ nhớ máy tính
2. Đĩa từ (Platter)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.54
Chương 5: Bộ nhớ máy tính
Các đặc tính đĩa từ
Đầu từ cố định hay đầu từ di động
Đĩa cố định hay thay đổi
Một mặt hay hai mặt
Một đĩa hay nhiều đĩa
Cơ chế đầu từ
Tiếp xúc (đĩa mềm)
Không tiếp xúc
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.55
Chương 5: Bộ nhớ máy tính
Nhiều đĩa (Multiple Platters)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.56
Chương 5: Bộ nhớ máy tính
Cylinders
15
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.57
Chương 5: Bộ nhớ máy tính
Đĩa mềm
8”, 5.25”, 3.5”
Dung lượng nhỏ: chỉ tới 1.44 MB
Tốc độ chậm (360 rpm)
Thông dụng
Rẻ tiền
Tương lai có thể không dùng nữa?
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.58
Chương 5: Bộ nhớ máy tính
Đĩa cứng
Một hoặc nhiều đĩa
Thông dụng
Dung lượng tăng lên rất nhanh
1993: 200 MB
2005: 30 GB, 40 GB, 80 GB, 120 GB …
Tốc độ đọc/ghi nhanh (5400, 7200 rpm)
Rẻ tiền
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.59
Chương 5: Bộ nhớ máy tính
RAID
Redundant Array of Inexpensive Disks
Redundant Array of Independent Disks
Tập các đĩa cứng vật lý được HĐH coi như một ổ
logic duy nhất
Dữ liệu được lưu trữ phân tán trên các ổ đĩa vật lý
Có thể sử dụng dung lượng dư thừa để lưu trữ các
thông tin kiểm tra chẵn lẻ, cho phép khôi phục lại
thông tin trong trường hợp đĩa bị hỏng
7 loại phổ biến (RAID 0-6)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.60
Chương 5: Bộ nhớ máy tính
3. Đĩa quang
CD-ROM (Compact Disk ROM)
CD-R (Recordable CD)
CD-RW (Rewriteable CD)
Dung lượng thông dụng 700 MB
Ổ đĩa CD:
Ổ đĩa CD-ROM
Ổ CD-Writer: ghi một phiên hoặc ghi nhiều phiên
Ổ CD-RW
Tốc độ đọc cơ sở 150 KB/s
Tốc độ bội, ví dụ: 48x, 52x, …
16
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.61
Chương 5: Bộ nhớ máy tính
Đĩa quang (tiếp)
DVD
Digital Video Disk: chỉ dùng trên ổ đĩa xem video
Digital Versatile Disk: ổ trên máy tính
Ghi một hoặc hai mặt
Một hoặc hai lớp trên một mặt
Thông dụng: 4,7 GB/lớp
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.62
Chương 5: Bộ nhớ máy tính
4. Flash Disk
Bộ nhớ bán dẫn cực nhanh (flash memory)
Thường kết nối qua cổng USB
Không phải dạng đĩa
Dung lượng tăng nhanh (64 MB – 2 GB)
Thuận tiện
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.63
Chương 5: Bộ nhớ máy tính
5.6. Hệ thống nhớ trên PC hiện nay
Bộ nhớ cache: tích hợp trên chip vi xử lý
Bộ nhớ chính: tồn tại dưới dạng các mô-đun nhớ RAM
SIMM – Single Inline Memory Module30 chân: 8 đường dữ liệu
72 chân: 32 đường dữ liệu
DIMM - Dual Inline Memory Module168 chân: 64 đường dữ liệu
RIMM – Rambus DRAM
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.64
Chương 5: Bộ nhớ máy tính
Hệ thống nhớ trên PC (tiếp)
ROM BIOS chứa các chương trình sau:Chương trình POST (Power On Self Test)
Chương trình CMOS Setup
Chương trình Bootstrap loader
Các trình điều khiển vào-ra cơ bản (BIOS)
CMOS RAM:Cấu hình hệ thống
Đồng hồ hệ thống
Có pin nuôi riêng
Video RAM: quản lý thông tin của màn hình
Các loại bộ nhớ ngoài
1
Chương 6HỆ THỐNG VÀO-RA
Phạm Quang Dũng
Bộ môn Khoa học máy tính - Khoa CNTT
Trường Đại học Nông nghiệp I – Hà Nội
website: www.hau1.edu.vn/it/pqdung
ĐT: (04) 8766318 DĐ: 0988.149.189
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.2
Chương 6: Hệ thống vào-ra
Nội dung chương 6
6.1. Tổng quan về hệ thống vào-ra
6.2. Các phương pháp điều khiển vào-ra
6.3. Nối ghép thiết bị ngoại vi
6.4. Các cổng vào-ra thông dụng trên PC
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.3
Chương 6: Hệ thống vào-ra
6.1. Tổng quan về hệ thống vào-ra
1. Giới thiệu chung
Chức năng của hệ thống vào-ra: Trao đổi thông tin giữa máy tính với thế giới bên ngoài
Các thao tác cơ bản:
Vào dữ liệu (Input)
Ra dữ liệu (Output)
Các thành phần chính
Các thiết bị ngoại vi
Các môđun vào-ra
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.4
Chương 6: Hệ thống vào-ra
Đặc điểm của vào-ra
Tồn tại đa dạng các thiết bị ngoại vi (TBNV) khác nhau về:
Nguyên tắc hoạt động
Tốc độ
Khuôn dạng dữ liệu
Tất cả các TBNV đều chậm hơn CPU và RAM
→ Cần có các môđun vào-ra để nối ghép các TBNV với CPU và bộ nhớ chính
2
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.5
Chương 6: Hệ thống vào-ra
2. Các TBNV
Chức năng: chuyển đổi dữ liệu giữa bên trong và bên ngoài máy tính
Phân loại:TBNV giao tiếp người-máy: chuột, bàn phím, màn hình, máy in,…
TBNV giao tiếp máy-máy: gồm các thiết bịtheo dõi và kiểm tra
TBNV truyền thông: modem (modulator/demodulator),
Network Interface Card (NIC, card mạng)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.6
Chương 6: Hệ thống vào-ra
Cấu trúc chung của TBNV
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.7
Chương 6: Hệ thống vào-ra
Các thành phần của TBNV
Bộ chuyển đổi tín hiệu: chuyển đổi dữ liệu
giữa bên ngoài và bên trong máy tính
Bộ đệm dữ liệu: đệm dữ liệu khi truyền
giữa môđun vào-ra và TBNV
Khối logic điều khiển: điều khiển hoạt động
của TBNV đáp ứng theo yêu cầu từ môđun
vào-ra
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.8
Chương 6: Hệ thống vào-ra
3. Môđun vào-ra
Chức năng:
Điều khiển và định thời
Trao đổi thông tin với CPU
Trao đổi thông tin với TBNV
Đệm giữa bên trong máy tính với TBNV
Phát hiện lỗi của TBNV
3
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.9
Chương 6: Hệ thống vào-ra
Cấu trúc chung của môđun vào-ra
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.10
Chương 6: Hệ thống vào-ra
Các thành phần của môđun vào-ra
Thanh ghi đệm dữ liệu: đệm dữ liệu trong quá trình trao đổi
Các cổng vào-ra (I/O Port): kết nối với TBNV, mỗi cổng có một địa chỉ xác định
Thanh ghi trạng thái/điều khiển: lưu giữthông tin trạng thái/điều khiển cho các cổng vào-ra
Khối logic điều khiển: điều khiển môđun vào-ra
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.11
Chương 6: Hệ thống vào-ra
4. Các phương pháp địa chỉ hóa cổng vào-ra
a. Không gian địa chỉ của bộ xử lý
Một số bộ xử lý chỉ quản lý
một không gian địa chỉ
duy nhất, gọi là không
gian địa chỉ bộ nhớ.
N bit địa chỉ → có 2N địa chỉ
Ví dụ: các bộ xử lý 680x0
của Motorola
000...000
.
.
.
Không gian địa chỉ bộ nhớ
.
.
.
000...001000...010000...011000...100000...101
111...111
N bit
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.12
Chương 6: Hệ thống vào-ra
Không gian địa chỉ của bộ xử lý (tiếp)
Một số bộ xử lý quản lý hai không gian địa
chỉ tách biệt
Không gian địa chỉ bộ nhớ: 2N địa chỉ
Không gian địa chỉ vào-ra: 2N1 địa chỉ
4
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.13
Chương 6: Hệ thống vào-ra
Hai không gian địa chỉ tách biệt của bộ xử lý
000...000
.
.
.
Không gian địa chỉ bộ nhớ
.
.
.
000...001000...010000...011000...100000...101
111...111
N bit00...00
.
.
.
Không gian địa chỉ vào-ra
.
.
.
00...0100...1000...11
11...11
N1 bit
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.14
Chương 6: Hệ thống vào-ra
Hai không gian địa chỉ tách biệt của bộ xử lý (tiếp)
Đặc điểm của bộ xử lý có hai không gian địa chỉ:
Có tín hiệu điều khiển phân biệt truy nhập không
gian địa chỉ bộ nhớ hay không gian địa chỉ vào-ra
Tập lệnh có các lệnh vào-ra chuyên dụng (IN, OUT)
Ví dụ: Các bộ xử lý 80x86 và Pentium (Intel)
Pentium
Không gian địa chỉ bộ nhớ = 232 byte = 4 GB
Không gian địa chỉ vào-ra = 216 byte = 64 KB
Tín hiệu điều khiển:
Hai lệnh vào-ra chuyên dụng: IN, OUT
IOM/
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.15
Chương 6: Hệ thống vào-ra
b. Các phương pháp địa chỉ hóa cổng vào-ra
Vào-ra theo bản đồ bộ nhớ
(Memory mapped IO)
Vào-ra riêng biệt
(Isolated IO hay IO mapped IO)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.16
Chương 6: Hệ thống vào-ra
Vào-ra theo bản đồ bộ nhớ
Cổng vào-ra được đánh địa chỉ theo không
gian địa chỉ bộ nhớ
Vào-ra giống như đọc/ghi bộ nhớ
CPU trao đổi dữ liệu với cổng vào-ra thông
qua các lệnh truy nhập dữ liệu bộ nhớ
Có thể thực hiện trên mọi hệ thống
5
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.17
Chương 6: Hệ thống vào-ra
Vào-ra riêng biệt
Cổng vào-ra được đánh địa chỉ theo không
gian địa chỉ vào-ra riêng biệt
CPU trao đổi dữ liệu với cổng vào-ra thông
qua các lệnh vào-ra chuyên dụng (IN, OUT)
Chỉ có thể thực hiện trên các hệ thống có
không gian địa chỉ vào-ra riêng biệt
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.18
Chương 6: Hệ thống vào-ra
6.2. Các phương pháp điều khiển vào-ra
Vào-ra bằng chương trình
(Programmed IO)
Vào-ra điều khiển bằng ngắt
(Interrupt Driven IO)
Truy nhập bộ nhớ trực tiếp – DMA
(Direct Memory Access)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.19
Chương 6: Hệ thống vào-ra
1. Vào-ra bằng chương trình
Nguyên tắc chung: CPU điều khiển trực tiếp
vào-ra bằng chương trình
Kiểm tra trạng thái của TBNV
Phát tín hiệu điều khiển đọc/ghi
Trao đổi dữ liệu
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.20
Chương 6: Hệ thống vào-ra
Lưu đồ chương trình
Đọc trạng thái của môđun vào-ra
Môđun vào-ra có sẵn sàng?
Trao đổi dữ liệu với môđun vào-ra
N
Y
6
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.21
Chương 6: Hệ thống vào-ra
Hoạt động của vào-ra bằng chương trình
CPU yêu cầu thao tác vào-ra
Môđun vào-ra thực hiện thao tác
Môđun vào-ra thiết lập các bit trạng thái
CPU kiểm tra các bit trạng thái:
Nếu chưa sẵn sàng thì quay lại kiểm tra
Nếu sẵn sàng thì chuyển sang trao đổi dữ
liệu với môđun vào-ra
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.22
Chương 6: Hệ thống vào-ra
Đặc điểm
Vào-ra do ý muốn của người lập trình
CPU trực tiếp điều khiển vào-ra
CPU đợi môđun vào-ra → tiêu tốn thời gian
của CPU
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.23
Chương 6: Hệ thống vào-ra
2. Vào-ra điều khiển bằng ngắt
Nguyên tắc chung:
CPU không phải đợi trạng thái sẵn sàng của môđun vào-ra, CPU thực hiện một chương trình nào đó
Khi môđun vào-ra sẵn sàng thì nó phát tín hiệu ngắt CPU
CPU thực hiện chương trình con vào-ra tương ứng để trao đổi dữ liệu
CPU trở lại tiếp tục thực hiện chương trình đang bị ngắt
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.24
Chương 6: Hệ thống vào-ra
Chuyển điều khiển đến chương trình con ngắt
lệnhlệnhlệnhlệnhlệnh ilệnh i+1
RETURN
lệnh
lệnh
.
.
.
Chương trình đang thực hiện
.
.
.lệnh
Chương trình con ngắt phục
vụ vào-ra
lệnhlệnh
Ngắt
7
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.25
Chương 6: Hệ thống vào-ra
Hoạt động vào dữ liệu: nhìn từ môđun vào-ra
Môđun vào-ra nhận tín hiệu điều khiển đọc
từ CPU
Môđun vào-ra nhận dữ liệu từ TBNV, trong
khi đó CPU làm việc khác
Môđun vào-ra phát tín hiệu ngắt CPU
CPU yêu cầu dữ liệu
Môđun vào-ra chuyển dữ liệu đến CPU
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.26
Chương 6: Hệ thống vào-ra
Hoạt động vào dữ liệu: nhìn từ CPU
Phát tín hiệu điều khiển đọc
Làm việc khác
Cuối mỗi chu kỳ lệnh, kiểm tra tín hiệu ngắt
Nếu bị ngắt:
Cất ngữ cảnh (nội dung các thanh ghi)
Thực hiện chương trình con ngắt để vào dữliệu
Khôi phục ngữ cảnh của chương trình đang thực hiện
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.27
Chương 6: Hệ thống vào-ra
Các phương pháp nối ghép ngắt
Sử dụng nhiều đường yêu cầu ngắt
Kiểm tra vòng bằng phần mềm
(Software Poll)
Kiểm tra vòng bằng phần cứng
(Daisy Chain hay Hardware Poll)
Sử dụng bộ điều khiển ngắt (PIC)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.28
Chương 6: Hệ thống vào-ra
Nhiều đường yêu cầu ngắt
CPU phải có nhiều đường tín hiệu yêu cầu ngắt
Hạn chế số lượng môđun vào-ra
Các đường ngắt được quy định mức ưu tiên
8
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.29
Chương 6: Hệ thống vào-ra
Kiểm tra vòng bằng phần mềm
CPU thực hiện phần mềm hỏi lần lượt từng môđun vào-ra
Chậm
Thứ tự các môđun được hỏi vòng chính là thứtự ưu tiên
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.30
Chương 6: Hệ thống vào-ra
Kiểm tra vòng bằng phần cứng
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.31
Chương 6: Hệ thống vào-ra
Kiểm tra vòng bằng phần cứng (tiếp)
CPU phát tín hiệu chấp nhận ngắt (INTA) đến môđun vào-ra đầu tiên
Nếu môđun vào-ra đó không gây ra ngắt thì nó gửi tín hiệu đến môđun kế tiếp cho đến khi xác định được môđun gây ngắt
Môđun vào-ra gây ngắt sẽ đặt vector ngắt lên bus dữ liệu
CPU sử dụng vector ngắt để xác định nơi chứa chương trình con điều khiển ngắt
Thứ tự các môđun vào-ra kết nối trong chuỗi xác định thứ tự ưu tiên
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.32
Chương 6: Hệ thống vào-ra
Bộ điều khiển ngắt lập trình được
PIC – Programmable Interrupt Controller
PIC có nhiều đường vào yêu cầu ngắt có quy định mức ưu tiên
PIC chọn một yêu cầu ngắt không bị cấm có mức ưu tiên cao nhất gửi tới CPU
Ví dụ: PIC 8259A
9
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.33
Chương 6: Hệ thống vào-ra
Đặc điểm của vào-ra điều khiển bằng ngắt
Có sự kết hợp giữa phần cứng và phần
mềm
Phần cứng: gây ngắt CPU
Phần mềm: trao đổi dữ liệu
CPU trực tiếp điều khiển vào-ra
CPU không phải đợi môđun vào-ra → hiệu
quả sử dụng CPU tốt hơn
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.34
Chương 6: Hệ thống vào-ra
3. DMA (Direct Memory Access)
Vào-ra bằng chương trình và bằng ngắt do CPU trực tiếp điều khiển:
Chiếm thời gian của CPU
Tốc độ bị hạn chế vì phải chuyển qua CPU
Để khắc phục dùng DMA
Thêm môđun phần cứng trên bus → DMAC
(DMA Controller)
DMAC điều khiển vào-ra không thông qua CPU
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.35
Chương 6: Hệ thống vào-ra
Sơ đồ cấu trúc của DMAC
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.36
Chương 6: Hệ thống vào-ra
Các thành phần của DMAC
Thanh ghi dữ liệu: chứa dữ liệu trao đổi
Thanh ghi địa chỉ: chứa địa chỉ ngăn nhớ dữ
liệu
Bộ đếm dữ liệu: chứa số từ dữ liệu (word)
cần trao đổi
Logic điều khiển: điều khiển hoạt động của
DMAC
10
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.37
Chương 6: Hệ thống vào-ra
Hoạt động DMA
CPU “nói” cho DMAC:Vào hay ra dữ liệu
Địa chỉ thiết bị vào-ra
Địa chỉ đầu của mảng nhớ chứa dữ liệu → nạp vào thanh ghi địa chỉ
Số từ dữ liệu cần truyền → nạp vào bộ đếm dữ liệu
CPU làm việc khác
DMAC điều khiển trao đổi dữ liệu
Sau khi truyền được một word thì:nội dung thanh ghi địa chỉ tăng
nội dung bộ đếm dữ liệu giảm
Khi bộ đếm dữ liệu = 0, DMAC gửi tín hiệu ngắt CPU đểbáo kết thúc DMA
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.38
Chương 6: Hệ thống vào-ra
Các kiểu thực hiện DMA
DMA truyền theo khối (Block transfer DMA): DMAC
sử dụng bus để truyền xong cả khối dữ liệu
DMA lấy chu kỳ (Cycle Stealing DMA): DMAC cưỡng
bức CPU treo tạm thời từng chu kỳ bus, DMAC
chiếm bus thực hiện truyền một word
DMA trong suốt (Transparent DMA): DMAC nhận
biết những chu kỳ nào CPU không sử dụng bus thì
chiếm bus để trao đổi một word
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.39
Chương 6: Hệ thống vào-ra
Cấu hình DMA (1)
Mỗi lần truyền, DMA sử dụng bus hai lầnGiữa môđun vào-ra với DMAC
Giữa DMAC với bộ nhớ
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.40
Chương 6: Hệ thống vào-ra
Cấu hình DMA (2)
DMAC điều khiển một hoặc vài môđun vào-ra
Mỗi lần truyền, DMAC sử dụng bus một lần:Giữa DMAC với bộ nhớ
11
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.41
Chương 6: Hệ thống vào-ra
Cấu hình DMA (3)
Bus vào-ra tách rời hỗ trợ tất cả các thiết bị cho phép DMA
Mỗi lần truyền, DMAC sử dụng bus một lần:
Giữa DMAC với bộ nhớ
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.42
Chương 6: Hệ thống vào-ra
Đặc điểm của DMA
CPU không tham gia trong quá trình trao
đổi dữ liệu
DMAC điều khiển trao đổi dữ liệu giữa bộ
nhớ chính với môđun vào-ra (hoàn toàn
bằng phần cứng) → tốc độ nhanh
Phù hợp với các yêu cầu trao đổi mảng dữ
liệu có kích thước lớn
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.43
Chương 6: Hệ thống vào-ra
4. Bộ xử lý vào-ra
Việc điều khiển vào-ra được thực hiện bởi
một bộ xử lý vào-ra chuyên dụng
Bộ xử lý vào-ra hoạt động theo chương
trình của riêng nó
Chương trình của bộ xử lý vào-ra có thể
nằm trong bộ nhớ chính hoặc nằm trong
một bộ nhớ riêng
Hoạt động theo kiến trúc đa xử lý
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.44
Chương 6: Hệ thống vào-ra
6.3. Nối ghép TBNV
1. Các kiểu nối ghép vào-ra
Nối ghép song song
Nối ghép nối tiếp
12
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.45
Chương 6: Hệ thống vào-ra
Nối ghép song song
Truyền nhiều bit song song
Tốc độ nhanh
Cần nhiều đường truyền dữ liệu
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.46
Chương 6: Hệ thống vào-ra
Nối ghép nối tiếp
Truyền lần lượt từng bit
Cần có bộ chuyển đổi từ dữ liệu song song sang nối tiếp hoặc/và ngược lại
Tốc độ chậm hơn
Cần ít đường truyền dữ liệu
Môđun vào-ra nối tiếp
Đến bus hệ
thống
Đến TBNV
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.47
Chương 6: Hệ thống vào-ra
2. Các cấu hình nối ghép
Điểm tới điểm (Point to Point)Thông qua một cổng vào-ra nối ghép với một TBNV
Điểm tới đa điểm (Point to Multi-point)Thông qua một cổng vào-ra cho phép nối ghép được với nhiều TBNV
Ví dụ:SCSI (Small Computer System Interface): 7 hoặc 15 thiết bị
USB (Universal Serial Bus): 127 thiết bị
IEEE 1394 (FireWire): 63 thiết bị
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.48
Chương 6: Hệ thống vào-ra
6.4. Các cổng vào-ra thông dụng trên PC
Các cổng PS/2: nối ghép bàn phím và chuột
Cổng nối ghép màn hình
Cổng LPT (Line Printer): nối ghép với máy in, làcổng song song (Parallel Port) – 25 chân
Cổng COM (Communication): nối ghép với modem, chuột, là cổng nối tiếp (Serial Port) – 9 chân hoặc 25 chân
Cổng USB (Universal Serial Bus): Cổng nối tiếp đa năng, cho phép nối ghép tối đa 127 thiết bị, nhờcác USB Hub
...