Bài giảng Khoa học máy tính - ĐH Nông nghiệp I với kết cấu gồm 6 chương giới thiệu những nội dung chính về máy tính và phân loại, hệ thống máy tính, biểu diễn dữ liệu và số học máy tính, bộ xử lý trung tâm, bộ nhớ máy tính và hệ thống vào - ra. Với các bạn đang học chuyên ngành công nghệ thông tin thì đây là tài liệu tham khảo hữu ích dành cho các bạn.
Trang 1Chương 1
GIỚI THIỆU CHUNG
Phạm Quang Dũng
Bộ môn Khoa học máy tính - Khoa CNTT
Trường Đại học Nông nghiệp I – Hà Nội
website: www.hau1.edu.vn/it/pqdung
ĐT: (04) 8766318 DĐ: 0988.149.189
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.2
Nội dung chương 1
1.1 Máy tính và phân loại1.2 Kiến trúc máy tính1.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
Trang 2Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.5
Mô hình phân lớp của máy tính
(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
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
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)
Trang 3Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.9
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.10
Máy tính nhúng (Embedded Computer)
Được đặt trong thiết bị khác để điều khiển thiết
Router - bộ định tuyến trên mạng
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
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
Trang 4Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.13
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
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
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
Trang 5Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.17
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)
Trang 6Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.21
Đặ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
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
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
Trang 7Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.25
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
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
Corporation) máy tính mini đầu tiên
Các ngôn ngữ lập trình bậc cao ra đời.
Trang 8Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.29
DEC's PDP-1 (1960)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.30
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
Trang 9Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.33
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
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
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
virtual memory
Trang 10Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.37
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
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 vector
8 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
Trang 11Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.41
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
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
Trang 12Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.45
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
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
Trang 13Chương 2
HỆ THỐNG MÁY TÍNH
Phạm Quang Dũng
Bộ môn Khoa học máy tính - Khoa CNTT
Trường Đại học Nông nghiệp I – Hà Nội
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)
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
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
Trang 14Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.5
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
động của máy tính theo chương trình đã định sẵn.
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)
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)
Tần số xung nhịp của bộ xử lý:
có tần số xác định
thông qua tần số của xung nhịp
Trang 15Phạ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ớ:
Ghi (Write)
Các thành phần chính:
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.10
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
00101011 11010101 00001010 01011000 11111011
0000 0001 0010 0011 0100
Trang 16Phạ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:
Được kết nối với hệ thống dưới dạng các thiết bịvào-ra
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)
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
Trang 17Phạ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 …
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:
Trang 18Phạ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
Các kiểu thao tác của lệnh:
Trao đổi dữ liệu giữa CPU và bộ nhớ chính
hoặc phép toán logic với các dữ liệu
chương trình con phục vụ ngắt.
Các loại ngắt:
tràn số, chia cho 0 …
Ngắt do lỗi phần cứng, ví dụ: lỗi bộ nhớ RAM
CPU yêu cầu trao đổi dữ liệu
Trang 19Phạ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ệnh lệnh 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ệnh lệnh Ngắt ở đây
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.27
Chuyển đến chương trình con phục vụ ngắt
Y N
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.28
Cá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
Trang 20Phạ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
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ề bus
Bus: 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:
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
nhịp Clock
Bus không đồng bộ
cho một sự kiện tiếp theo
Chương 2: Hệ thống máy tính
2 Cấu trúc đơn bus
Trang 21Phạ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à 232byte = 4 GB
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.34
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
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 ghi:
đọc- 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
Trang 22Phạ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
Đặ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
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:
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ể
Trang 23Phạ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
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.
Trang 24Chương 3
BIỂU DIỄN DỮ LIỆU VÀ
SỐ HỌC MÁY TÍNH
Phạm Quang Dũng
Bộ môn Khoa học máy tính - Khoa CNTT
Trường Đại học Nông nghiệp I – Hà Nội
website: www.hau1.edu.vn/it/pqdung
ĐT: (04) 8766318 DĐ: 0988.149.189
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.2
Chương 3: Biểu diễn 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ản3.2 Mã hoá và lưu trữ dữ liệu trong máy tính3.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ên3.5 Số dấu chấm động
Trang 25Phạ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
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:
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:
i i
a
A 2
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.8
Chương 3: Biểu diễn dữ liệu và số học máy tính
Trang 26Phạ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
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
Chương 3: Biểu diễn dữ liệu và số học máy tính
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
Trang 27Phạ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)
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)
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ố Hexa
Trang 28Phạ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
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ự
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:
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
Trang 29Phạ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
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
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)
Trang 30Phạ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
a A
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.26
Chương 3: Biểu diễn dữ liệu và số học máy tính
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:
Trang 31Phạ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 255 254
1 2 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)
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
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:
Trang 32Phạ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:
0a n-2 …a 2 a 1 a 0
Giá trị của số dương A:
Dải biểu diễn cho số dương: 0 đến 2n-1-1
a A
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.34
Chương 3: Biểu diễn 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:
1a n-2 …a 2 a 1 a 0
Giá trị của số âm A:
Dải biểu diễn cho số âm: -1 đến -2n-1
n
i
i i n
a A
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:
a n-1 a n-2 …a 2 a 1 a 0
Giá trị của A được xác định như sau:
Dải biểu diễn: từ -(2n-1) đến +(2n-1-1)
a A
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 = -80Giải:
Trang 33Phạ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:
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
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
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
Trang 34Phạ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 = 0000 0000 0001 0011 (16 bit)
Æ thêm 8 bit 0 bên trái
Đối với số âm:
Æ 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
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
Trang 35Phạ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ấu
Bộ cộng n-bit
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.46
Chương 3: Biểu diễn dữ liệu và số học máy tính
Nguyên tắc cộng số nguyên không dấuKhi cộng hai số nguyên không dấu n-bit, kết quả nhận được là n-bit:
nhận được luôn luôn đúng (Cout = 0)
đượ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
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
Trang 36Phạ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 Coutvà kết quả nhận được là n-bit:
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.
[-(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
Trang 37Phạ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
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
0 1101 1111 C, A Å A + M
0 0110 1111 Dịch phải 1 bit n = 1 1011
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
Trang 38Phạ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
1110
0 / các giá trị khởi đầu / 1101
1101 1110 1110 1111 1111 0111
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
Chương 3: Biểu diễn dữ liệu và số học máy tính
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ái
0010
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
phần dư (đều là số dương)
(+) : (+) Æ 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ư
Trang 39Phạ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),
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
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
Trang 40Phạ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:
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
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)
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