Tải bản đầy đủ (.pdf) (147 trang)

Đề cương kiến trúc máy tính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (7.84 MB, 147 trang )

MỤC LỤC
MỤC LỤC ................................................................................................................ 1
Bài 1: GIỚI THIỆU CHUNG VỀ KIẾN TRÚC MÁY TÍNH ................................. 6
1.1. Máy tính và phân loại máy tính.......................................................................... 6
1.1.1. Máy tính ....................................................................................................... 6
1.1.2. Phân loại máy tính ....................................................................................... 6
1.1.2.1. Theo đặc trƣng thiết kế............................................................................ 6
1.1.2.2. Theo kích cỡ/năng lực xử lý .................................................................... 7
1.1.2.3. Phân loại theo kiến trúc ........................................................................... 7
1.2. Kiến trúc máy tính .............................................................................................. 8
1.2.1. Kiến trúc tập lệnh ........................................................................................ 9
1.2.2. Tổ chức của máy tính .................................................................................. 9
1.2.3. Mô hình phân lớp của máy tính ................................................................. 12
1.3. Sự phát triển của máy tính ............................................................................... 14
1.4. Hiệu năng máy tính .......................................................................................... 20
Bài 2: MÃ HOÁ THÔNG TIN TRONG MÁY TÍNH ........................................... 23
2.1. Các hệ đếm cơ bản ........................................................................................... 23
2.1.1. Hệ thập phân (Decimal)............................................................................ 23
2.1.2. Hệ nhị phân (Binary) ................................................................................. 23
2.1.3. Hệ thập lục phân (Hexa) ............................................................................ 23
2.1.4. Quan hệ giữa các hệ đếm ........................................................................... 23
2.2. Mã hoá thông tin trong máy tính ...................................................................... 24
2.2.1. Nguyên tắc chung về mã hoá dữ liệu ........................................................ 24
2.2.2. Nguyên tắc lƣu trữ dữ liệu trong máy tính ................................................ 24
2.3. Biểu diễn số nguyên ......................................................................................... 25
2.3.1. Số nguyên không dấu ................................................................................ 25
2.3.2. Số nguyên có dấu ....................................................................................... 25
2.3.3. Các phép toán với số nguyên ..................................................................... 26
2.3.4. Biểu diễn số nguyên theo mã BCD (Binary Coded Decimal) ................... 27

1




2.4. Biểu diễn số thực .............................................................................................. 28
2.4.1. Số thực dấu phảy tĩnh ................................................................................ 28
2.4.2. Số thực dấu phảy động .............................................................................. 28
2.5. Mã hoá ký tự .................................................................................................... 29
2.5.1. Bảng mã ASCII ......................................................................................... 29
2.5.2. Bảng mã UniCode ..................................................................................... 30
2.6. Mã hoá hình ảnh ............................................................................................... 30
2.6.1. Mã hoá hình ảnh tĩnh ................................................................................. 30
2.6.2. Mã hoá ảnh động ....................................................................................... 31
2.7. Mã hoá âm thanh .............................................................................................. 32
Bài 3: Bài tập và thảo luận về chuyển đổi hệ đếm và các phép toán số học, logic 32
Bài 4 : CƠ BẢN VỀ LOGIC SỐ ............................................................................ 32
4.1. Các cổng logic cơ bản ...................................................................................... 32
4.2. Đại số Boole ..................................................................................................... 34
4.3. Mạch tổ hợp ..................................................................................................... 35
4.3.1. Mạch cộng (Adder) ................................................................................. 35
4.3.2. Mạch trừ (Subtractor) .............................................................................. 36
4.3.3. Mạch so sánh (Comparator) .................................................................... 37
4.3.4. Mạch dồn kênh (MUX) ........................................................................... 38
4.3.5. Mạch phân kênh (Demux) ....................................................................... 39
4.3.6. Mạch mã hoá ........................................................................................... 39
4.3.7. Mạch giải mã ........................................................................................... 40
4.3.8. Mạch dịch bit (Shifter) ............................................................................ 40
4.3.9. Mạch tạo tín hiệu thời gian (Clock)......................................................... 41
4.4. Mạch dãy (Sequential Circuit) ....................................................................... 41
4.4.1. Flip-Flop .................................................................................................. 42
4.4.2. Thanh ghi (Register) ................................................................................ 44
4.4.3. Bộ đếm (Counter) .................................................................................... 46

Bài 5: TỔNG QUAN VỀ HỆ THỐNG MÁY TÍNH ............................................. 47
5.1. Các thành phần cơ bản của máy tính ............................................................. 47
2


5.1.1. Vỏ thùng máy (Case) ............................................................................... 47
5.1.2. Bộ nguồn (Power Supply) ....................................................................... 47
5.1.3. Bo mạch chủ (Mainboard) ....................................................................... 49
5.1.4. Bộ xử lý trung tâm (CPU) ....................................................................... 56
5.1.5. RAM (Random Access Memory) ........................................................... 57
5.1.6. Các thiết bị lƣu trữ (Storage Devices) ..................................................... 58
5.1.7. Các loại Card giao tiếp ............................................................................ 61
5.2. Các hoạt động cơ bản của máy tính ............................................................... 63
5.2.1. Thực hiện chƣơng trình ........................................................................... 63
5.2.2. Ngắt (Interrupt)........................................................................................ 64
5.2.3. Vào-Ra (Input/Output) ............................................................................ 65
5.3. Bus máy tính .................................................................................................. 65
5.3.1. Cấu trúc Bus ............................................................................................ 65
5.3.2. Các loại bus cơ bản trong máy tính ......................................................... 66
5.3.3. Phân cấp đa bus trong máy tính............................................................... 67
Bài 06: Bài tập và thảo luận về các phần tử logic cơ bản và mạch logic tổ hợp .... 68
Bài 7: BỘ XỬ LÝ TRUNG TÂM .......................................................................... 69
7.1. Tổ chức của CPU ........................................................................................... 69
7.1.1. Cấu trúc cơ bản ........................................................................................ 69
7.1.2. Hoạt động của chu trình lệnh................................................................... 70
7.2. Thiết kế đơn vị điều khiển ............................................................................. 74
7.2.1. Thực hiện bằng mạch điện tử .................................................................. 74
7.2.2. Thực hiện bằng vi chƣơng trình .............................................................. 75
7.3. Kỹ thuật đƣờng ống (pipelining) ................................................................... 76
7.3.1. Nguyên tắc chung .................................................................................... 76

7.3.2. Các Hazard (trở ngại) của đƣờng ống ..................................................... 77
7.4. Các kiến trúc song song mức lệnh ................................................................. 79
7.4.1. Siêu đƣờng ống (Superpipeline và Hyperpipeline) ................................. 79
7.4.2. Bộ xử lý siêu vô hƣớng (Superscalar) ..................................................... 80
7.5. Bộ xử lý đa luồng và đa lõi ............................................................................ 81
3


7.5.1. Công nghệ siêu phân luồng (Hyper Threading) ...................................... 81
7.5.2. Công nghệ đa lõi...................................................................................... 81
Bài 8: KIẾN TRÚC TẬP LỆNH ............................................................................ 88
8.1. Mô hình lập trình của máy tính ...................................................................... 88
8.2. Các đặc trƣng của lệnh máy............................................................................ 91
8.2.1. Các thành phần của lệnh máy: ................................................................. 91
8.2.2. Đánh giá về số địa chỉ toán hạng: ............................................................ 93
8.3. Các kiểu định vị ............................................................................................. 93
8.4. Các kiểu toán hạng ......................................................................................... 95
8.5. Các vấn đề khi thiết kế lệnh máy ................................................................... 95
8.6. Các kiểu thao tác của lệnh ............................................................................. 95
8.6.1. Các lệnh chuyển dữ liệu .......................................................................... 95
8.6.2. Các lệnh số học........................................................................................ 95
8.6.3. Các lệnh logic .......................................................................................... 95
8.6.4. Các lệnh điều khiển vào-ra ...................................................................... 96
8.6.5. Các lệnh chuyển điều khiển .................................................................... 96
8.6.6. Các lệnh điều khiển hệ thống .................................................................. 96
8.7. Khái niệm về lập trình hợp ngữ ..................................................................... 96
8.8. RISC và CISC ................................................................................................ 97
8.9. Kiến trúc tập lệnh của Intel 8086 ................................................................... 97
8.9.1. Tập thanh ghi của 8086 ........................................................................... 97
8.9.2. Tập lệnh của 8086 ................................................................................. 100

8.9.3. Các kiểu định vị của 8086 ..................................................................... 107
Bài 09: Bài tập và thảo luận về bộ xử lý trung tâm, kiến trúc tập lệnh ................ 110
Bài 10: Tổng quan về hệ thống nhớ của máy tính ................................................ 111
10.1. Các đặc trƣng của hệ thống nhớ ................................................................ 111
10.2. Phân cấp hệ thống nhớ ............................................................................... 111
10.3. Phát hiện và hiệu chỉnh lỗi của bộ nhớ ...................................................... 111
Bài 11: Bộ nhớ bán dẫn và bộ nhớ chính ............................................................. 113
11.1. Phân loại bộ nhớ bán dẫn........................................................................... 113
4


11.2. Tổ chức của chip nhớ bán dẫn ................................................................... 115
11.3. Bộ nhớ chính .............................................................................................. 118
11.3.1. Đặc trƣng ............................................................................................. 118
11.3.2. Tổ chức các băng nhớ đan xen ............................................................ 119
Bài 12: Bộ nhớ Cache và bộ nhớ ngoài ................................................................ 121
12.1. Nguyên tắc chung của cache ..................................................................... 121
12.2. Các phƣơng pháp ánh xạ địa chỉ................................................................ 121
12.3. Các thuật giải thay thế thông dụng ............................................................ 121
12.4. Các phƣơng pháp ghi dữ liệu ..................................................................... 121
12.5. Bộ nhớ từ ................................................................................................... 122
12.6. Bộ nhớ quang ............................................................................................. 127
12.7. Bộ nhớ ảo ................................................................................................... 133
Bài 13: Thảo luận về hệ thống nhớ máy tính ....................................................... 145
Bài 14: Hệ thống vào ra ........................................................................................ 137
14.1. Giới thiệu chung về hệ thống vào-ra ......................................................... 137
14.2. Thiết bị ngoại vi ......................................................................................... 137
14.3. Mô-đun vào-ra ........................................................................................... 137
14.4. Đánh địa chỉ cho cổng vào-ra .................................................................... 138
14.5. Các phƣơng pháp điều khiển vào-ra .......................................................... 139

14.5.1. Vào-ra bằng chƣơng trình ................................................................... 139
14.5.2. Vào-ra điều khiển bằng ngắt ............................................................... 140
14.5.3. Truy nhập trực tiếp bộ nhớ (DMA)..................................................... 141
14.5.4. Kênh vào-ra và bộ xử lý vào-ra........................................................... 141
Bài 15: Thảo luận về hệ thống vào ra ................................................................... 141
Bài 16: MÁY TÍNH SONG SONG ...................................................................... 142
16.1. Giới thiệu ................................................................................................... 142
16.2. Các loại máy tính ....................................................................................... 142
Bài 17: Thảo luận về hệ thống vào ra, máy tính song song, tổng kết môn .......... 147

5


Bài 1: GIỚI THIỆU CHUNG VỀ KIẾN TRÚC MÁY TÍNH
1.1. Máy tính và phân loại máy tính
1.1.1. Máy tính
Máy tính: 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ý các thông tin theo các dãy lệnh đƣợc nhớ sẵn bên trong.
- Đƣa thông tin ra.
Chương trình: Gồm dãy các lệnh có quy luật, đƣợc đƣa vào bộ nhớ để yêu
cầu máy tính thực hiện một công việc cụ thể.
=> Máy tính hoạt động theo chương trình.
1.1.2. Phân loại máy tính
Có rất nhiều cách (tiêu chí) để có thể phân loại máy tính. Thông thƣờng
máy tính đƣợc phân loại theo một số cách sau:
1.1.2.1. Theo đặc trưng thiết kế
1. Máy tính số (Digital Computer): Sử dụng các đại lƣợng vật lý biến
thiên một cách rời rạc để mã hoá và xử lý thông tin. Chúng đƣợc chia thành nhiều
loại:

a) Máy tính số tuần tự: Các công việc (nhiệm vụ) đƣợc thực hiện tuần tự
(hết công việc này đến công việc khác). Tốc độc thực thi chậm, hiện nay gần nhƣ
không còn tồn tại.
b) Máy tính số song song: Các nhiệm vụ đƣợc thực hiện song song, tốc
độc thực thi cao và yêu cầu về phần cứng cao. Máy tính loại này thƣờng là các siêu
máy tính.
c) Máy tính số chuyên dụng: Máy tính đƣợc thiết kế để giải một lớp bài
toán (thực hiện công việc) thuộc một lĩnh vực cụ thể. Nó thƣờng đơn giản và rẻ hơn
máy tính đa năng nhờ việc có thể giảm bớt các thành phần phần cứng hoặc thậm chí
cả việc rút gọn tập lệnh của bộ vi xử lý.
d) Máy tính số đa năng: Loại máy tính đƣợc thiết kế không có mục đích
nhất định, nó có thể thực hiện bất cứ nhiệm vụ thuộc lĩnh vực nào. Các máy tính
ngày nay thuộc loại máy tính này.
2. Máy tính tương tự (Analog Computer): Sử dụng các đại lƣợng vật lý
biến thiên liên tục để mã hoá và xử lý thông tin. Nó có ƣu điểm là vận hành rất
thuận tiện, kết quả đƣa ra thƣờng dƣới dạng đồ thị trong thời gian cực ngắn. Nhƣợc
điểm của nó là kết quả không có độ chính xác cao, hoạt động không mềm dẻo nhƣ
máy tính số và khả năng giải bài toán phụ thuộc vào chính phần cứng của máy. Một
số máy tính tƣơng tự nhƣ: Máy phân tích nƣớc, máy đo diện tích, máy định vị bom,
6


hệ thống kiểm soát bắn,…
1.1.2.2. Theo kích cỡ/năng lực xử lý
1. Máy tính nhúng (Embedded Computer): Là máy tính đặt ẩn trong một
thiết bị khác để điều khiển thiết bị đó làm việc. Chúng đƣợc thiết kế chuyên dụng để
làm việc với thiết bị đó. Ví dụ: Điện thoại di động; máy ảnh số; hệ thống điều khiển
trong TV, máy giặt, điều hoà, ô tô; các bộ định tuyến (router),…
2. Máy tính cá nhân (Personal Computer): Là những máy tính nhỏ,
thƣờng có một bộ vi xử lý và một số thiết bị ngoại vi. Thƣờng dùng cho một ngƣời

dùng độc lập hoặc dùng trong hệ thống mạng máy tính. Vd: Máy tính để bàn, máy
tính xách tay.
3. Máy tính nhỏ (Mini Computer): Có kích thƣớc lớn hơn PC nhiều. Nó
có khả năng hỗ trợ hàng chục hoặc hàng trăm ngƣời làm việc. Chúng thƣờng đƣợc
sử dụng rộng rãi trong các ứng dụng thời gian thực: Điều khiển hàng không, tự
động hoá sản xuất,…
4. Máy tính lớn (MainFrame Computer): Là những máy tính cỡ lớn, có
thể đáp ứng hàng ngàn hoặc hàng triệu ngƣời sử dụng. Chúng thƣờng đƣợc sử dụng
trong hệ thống có khối lƣợng tính toán hoặc giao dịch lớn. Ngày nay, các Mainframe
thƣờng đƣợc sử dụng làm các File Server trên hệ thống mạng hoặc xử lý giao dịch
trong ngân hàng.
5. Siêu máy tính (Super Computer): Đƣợc thiết kế đặc biệt để đạt đƣợc
tốc độ tính toán các phép tính dầu phảy động cao nhất. Chúng thƣờng có kiến trúc
song song, tuy nhiên chỉ hoạt động hiệu quả trong một số lĩnh vực.
1.1.2.3. Phân loại theo kiến trúc
1. Kiến trúc Von Neumann
Đặc điểm của kiến trúc Von Neumann:
- Lệnh và dữ liệu đƣợc lƣu
chung trên cùng một bộ nhớ. Do
vậy, hai quá trình đọc lệnh và dữ
liệu không thể xảy ra đồng thời.
- Bộ nhớ đƣợc đánh địa chỉ
theo từng ngăn nhớ, không phụ
thuộc vào nội dung của nó.
- Các lệnh đƣợc thực hiện
tuần tự. Quá trình thực hiện lệnh
thƣờng diễn ra qua 3 giai đoạn: (1)
Đọc lệnh từ bộ nhớ;
7


Hình 1.1: Kiến trúc Von
Neumann


(2) Giải mã và thực hiện lệnh, nếu lệnh có yêu cầu dữ liệu sẽ phải đọc dữ liệu từ bộ
nhớ; (3) Ghi kết quả thực hiện lệnh vào bộ nhớ (nếu có).
2. Kiến trúc Havard

Hình 1.2: Kiến trúc Havard
Đặc điểm của kiến trúc Havard:
- Bộ nhớ đƣợc chia thành 2 phần riêng biệt: Bộ nhớ chƣơng trình và bộ nhớ dữ
liệu.
- Hai hệ thống bus riêng để kết nối bộ nhớ chƣơng trình và bộ nhớ dữ liệu với
CPU.
- Hỗ trợ truy cập nhiều lệnh đồng thời, giảm xung đột truy cập.
1.2. Kiến trúc máy tính
Định nghĩa Kiến trúc máy tính (Hennessy và Patterson) đầy đủ bao gồm:
- Hệ thống phần cứng (Hardware): Bao gồm tất cả các thành phần phần
cứng trong hệ thống, quá trình xử lý dữ liệu của CPU, xử lý đồ hoạ, truy cập trực
tiếp bộ nhớ. Nó cũng bao gồm điều khiển bộ nhớ, luồng dữ liệu và thậm chí cả đa
xử lý và ảo hoá.
- Kiến trúc tập lệnh (ISA - Instruction Set Architecture): Là ngôn ngữ của
bộ vi xử lý. Nó thể hiện khả năng, năng lực của CPU mà ngôn ngữ lập trình có thể
đánh giá và thực hiện trên nó. Nó bao gồm: kích thƣớc của từ máy, các loại thanh
ghi, các chế độ địa chỉ bộ nhớ, định dạng dữ liệu và tập lệnh cung cấp cho lập trình
viên.
- Vi kiến trúc (MicroArichtecture): Hay còn gọi là tổ chức máy tính:
Nghiên cứu thiết kế máy tính ở mức cao, chẳng hạn nhƣ: Hệ thống nhớ, cấu trúc
bus, thiết kế bên trong CPU,…


8


1.2.1. Kiến trúc tập lệnh
Một tập lệnh (IS - Instruction Set) hoặc kiến trúc tập lệnh (ISA) là một phần
của Kiến trúc máy tính, nó liên quan đến việc lập trình, bản chất các kiểu dữ liệu,
các chỉ thị lệnh, các thanh ghi, các chế độ địa chỉ, tổ chức bộ nhớ, hệ thống ngắt và
xử lý ngoại lệ và các thao tác vào/ra. Kiến trúc một tập lệnh bao gồm:
- Mã lệnh (Opcode): Là 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ể hiểu và thực hiện đƣợc.
- Các kiểu dữ liệu (Data Type): Các kiểu dữ liệu mà máy tính có thể xử lý
đƣợc.
1.2.2. Tổ chức của máy tính
Một máy tính tối thiểu phải thực hiện đƣợc 5 chức năng sau:
1. Nhập liệu: Đƣa chƣơng trình và dữ liệu vào trong máy tính
2. Lưu trữ: Quá trình lƣu trữ dữ liệu và lệnh đƣợc gọi chung là lƣu trữ. Dữ
liệu phải đƣợc đƣa vào hệ thống trƣớc quá trình xử lý, bởi vì tốc độ xử lý của CPU
lớn hơn rất nhiều so với tốc độ đáp ứng dữ liệu. Bởi vậy, dữ liệu phải đƣợc đƣa vào
bộ nhớ để quá trình xử lý đƣợc nhanh hơn. Bộ nhớ chính đảm nhiệm vai trò trên, nó
lƣu trữ dữ liệu và lệnh và cho phép:
- Chứa toàn bộ dữ liệu và lệnh trƣớc khi thực hiện xử lý.
- Lƣu trữ kết quả của quá trình xử lý.
3. Xử lý: Việc thực hiện các phép toán số học và logic đƣợc gọi là quá trình
xử lý. CPU thực hiện các lệnh theo chƣơng trình với dữ liệu tƣơng ứng và trả kết
quả về bộ nhớ chính.
4. Xuất tín hiệu: Là quá trình kết xuất kết quả để có đƣợc dữ liệu mong
muốn. Dữ liệu luôn luôn đƣợc lƣu trữ, tổng hợp trƣớc khi cung cấp đến ngƣời sử
dụng và luôn lƣu trữ trong bộ nhớ để phục vụ cho quá trình xử lý kế tiếp.
5. Điều khiển: Các chỉ thị để điều khiển hoạt động, kiểm soát toàn bộ hoạt
động của hệ thống bao gồm: Đầu vào, xử lý, đầu ra. Nó giám sát từng bƣớc của quá

trình xử lý.

Hình 1.3: Cấu trúc chung một máy tính điện tử
9


Để thực hiện tất cả các nhiệm vụ trên, máy tính giao quyền cho các đơn vị
chức năng thực hiện các hoạt động tƣơng ứng, cụ thể:
a. CPU: Là bộ não của hệ thống máy tính. Nó luôn ra các quyết định quan
trọng, điều khiển tính toán và điều khiển toàn bộ các thành phần trong hệ thống. Nó
bao gồm 4 thành phần: Đơn vị điều khiển (CU-Control Unit), khối số học và logic
(ALU-Arthimetic and Logic Unit), các thanh ghi (Registers) và tín hiệu xung đồng
hồ (Clock).

Hình 1.4: Cấu trúc bên trong CPU
- CU: Lấy lệnh từ bộ nhớ, giải mã và thực thi lệnh.
- ALU: Thực hiện các phép toán số học và logic trên dữ liệu nhị phân.
- Registers: Là nơi lƣu trữ tạm thời dữ liệu của CPU. Một số thanh ghi nhƣ:
bộ đếm chƣơng trình, thanh ghi lệnh có công dụng riêng. Một số thanh ghi khác
nhƣ: thanh ghi tích luỹ (thanh chứa) đƣợc sử dụng chung.
- Clock: Mạch trong bộ vi xử lý tạo ra một chuỗi các xung điện tử đều nhau
để đồng bộ hoạt động của các thành phần bên trong bộ vi xử lý. Thời gian giữa các
xung gọi là chu kỳ và số xung phát ra trong một giây gọi là tần số (tốc độ). Thời
gian thực hiện một lệnh đƣợc đo bằng một số chu kỳ đồng hồ chứ không đo bằng
giây. Tốc độ xung đồng hồ càng cao, thời gian hoàn thành một lệnh càng ngắn.
b. Memory: Dùng để lƣu trữ dữ liệu, đƣợc chia làm 2 loại:
- Bộ nhớ trong: Là loại bộ nhớ đƣợc truy cập bởi bộ vi xử lý không thông
qua các kênh vào/ra. Nó bao gồm: Rom, Ram, Cache, một số thanh ghi đặc biệt.
+ RAM (Random Access Memory - Bộ nhớ truy cập ngẫu nhiên): Chứa các chƣơng
trình và dữ liệu đƣợc nạp vào trong quá trình thực hiện. Ram có các đặc điểm sau:

 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
10


nhớ luôn cố định.
+ ROM (Read Only Memory - Bộ nhớ chỉ
đọc): Chứa chƣơng trình đã đƣợc lập trình sẵn phục
vụ cho việc điều khiển vào ra cơ sở (BIOS - Basic
Input/Output System).
+ Cache: là bộ nhớ đệm có dung lƣợng nhỏ
nhƣng tốc độ nhanh hơn bộ nhớ chính. Đƣợc sử
dụng để lƣu trữ một bản sao của lệnh và dữ liệu
trong Ram có khả năng sẽ đƣợc dùng lại.
- Bộ nhớ ngoài: Lƣu trữ dữ liệu, chƣơng
trình ngay cả khi máy không hoạt động nhƣ các đĩa
cứng, đĩa quang (CD, DVD), các ổ đĩa Flash. Bộ
nhớ ngoài có đặc điểm sau:
 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 độ truy xuất thông tin chậm.
c. Các thiết bị vào ra: Trao đổi thông tin giữa máy tính với thế giới bên
ngoài.

Hình 1.5: Một số thiết bị vào ra

- 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)
11


+ Các module vào-ra (IO Modules)

Hình 1.6: Cấu trúc cơ bản hệ thống vào ra
d. Hệ thống Bus: Ghép nối các thành phần khác nhau trong một hệ thống.
Thông thƣờng bao gồm:
- Data BUS: Vận chuyển các tín hiệu dữ liệu trao đổi giữa các thành phần.
- Address BUS: Truyền tín hiệu địa chỉ từ CPU đến bộ nhớ và các thiết bị
ngoại vi.
- Control BUS: Truyền tín hiệu điều khiển từ CPU đến các thành phần
khác, đồng thời truyền tín hiệu trạng thái từ các thành phần khác đến CPU.
1.2.3. Mô hình phân lớp của máy tính

Hình 1.7: Trừu tượng hoá mô hình phân lớp của máy tính
1. Lớp 0 (Level 0): Mức logic số
- Là mức thấp nhất trong hệ thống.
- Đối tƣợng của mức này là các cổng (gates) logic và hệ thống dây nối các
cổng. Mỗi cổng đƣợc xây dựng từ các phần tử tƣơng tự (transistors). Mỗi cổng có
12


một
hoặc nhiều lối vào tín hiệu, nó tính toán để đƣa ra một giá trị là một hàm đơn giản

của các đầu vào nhƣ AND, OR, NOT,…
- Cổng logic đƣợc điều khiển bởi các tín hiệu điện, đƣợc trừu tƣợng hoá
bằng các giá trị logic “0” hoặc “1”, mỗi giá trị này ứng với một miền giá trị nhất
định của tín hiệu điện.
- Mức này chƣa có khái niệm về chƣơng trình
2. Lớp 1 (Level 1): Mức vi chƣơng trình
- Là lớp ngôn ngữ máy thực sự. Có một chƣơng trình hoạt động gọi là vi
chƣơng trình.
- Nhiệm vụ của chƣơng trình là thông dịch các chỉ thị ở lớp 2.
- Mức vi chƣơng trình ở các hãng sản xuất máy tính khác nhau có những
điểm giống nhau, tuy nhiên không giống nhau hoàn toàn.
- Mỗi máy tính có thể có một hoặc một vài vi chƣơng trình chạy ở mức 1.
Mỗi một vi chƣơng trình đảm nhiệm một ngôn ngữ ở mức 2 (L2) và một máy ảo với
ngôn ngữ là L2.
3. Lớp 2 (Level 2): Mức quy ƣớc máy
- Các lệnh trên máy cấp 2 đƣợc thực thi bằng cách thông dịch bởi vi
chƣơng trình mà không phải thực thi trực tiếp bằng phần cứng..
4. Lớp 3 (Level 3): Phần mềm hệ thống
- Hầu hết các lệnh trong ngôn ngữ của cấp máy này cũng có trong ngôn
ngữ cấp 2 và đổng thời có thêm một tập lệnh mới, một tổ chức bộ nhớ khác và khả
năng chạy 2 hay nhiều chƣơng trình song song. Các lệnh mới thêm vào sẽ đƣợc
thực thi bằng một trình thông dịch chạy trên cấp 2, gọi là hệ điều hành. Nhiều lệnh
cấp 3 đƣợc thực thi trực tiếp do vi chƣơng trình và một số lệnh khác đƣợc thông
dịch bằng hệ điều hành (do đó, cấp này là cấp hỗn hợp).
5. Cấp 4 (Level 4): Cấp ngôn ngữ máy
Cấp này cung cấp một phƣơng pháp viết chƣơng trình cho các cấp 1, 2, 3 dễ
dàng hơn. Các chƣơng trình viết bằng hợp ngữ đƣợc dịch sang các ngôn ngữ của
cấp 1, 2, 3 và sau đó đƣợc thông dịch bằng các máy ảo hay thực tƣơng ứng.
6. Cấp 5 (Level 5): Ngôn ngữ lập trình cấp cao.
Cấp này bao gồm các ngôn ngữ đƣợc thiết kế cho ngƣời lập trình nhằm giải

quyết một vấn đề cụ thể. Các ngôn ngữ này đƣợc gọi là cấp cao. Một số ngôn ngữ
cấp cao nhƣ Basic, C, Cobol, Fortran, Lisp, Prolog, Pascal và các ngôn ngữ lập trình
hƣớng đối tƣợng nhƣ C++, J++, … Các chƣơng trình viết bằng các ngôn ngữ này
thƣờng đƣợc dịch sang cấp 3 hay 4 bằng các trình biên dịch (Compiler).

13


1.3. Sự phát triển của máy tính
1. Thế hệ thứ nhất (1940-1955): Máy tính dùng đèn điện tử chân không

Hình 1.8: Một số loại đèn điện tử chân không
- ENIAC (Electronic Numerical Intergator And Computer)
+ Máy tính điện tử đầu tiên
+ 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

Hình 1.9: Máy ENIAC (30 tấn, 18000 đèn điện tử, 1500 rơle, 140KWh)
- Máy tính von Neumann
+ Đó là máy tính IAS:
 Princeton Institute for Advanced Studies
 Đƣợc bắt đầu từ 1947, hoàn thành1952
14


 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)


Hình 1.10: Von Neumann với máy tính IAS
+ Đặ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
- 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
15


- Hãng IBM (International Business Machine)
+ 1953 - 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
2. Thế hệ thứ 2 (1956-1963): Máy tính dùng Transitors
Năm 1948, John Bardeen, Walter Brattain và William Shockley phát minh ra

transistor đã làm cuộc cách mạng trong lĩnh vực máy tính. Máy tính transistor đầu
tiên duợc xây dựng tại MIT, máy TX-0 (Transistorized eXperimental computer 0),
có 16 bit.

Hình 1.11: Máy tính dùng Transistor đầu tiên
Năm 1961, máy tính PDP-1 xuất hiện có 4K từ 18 bit và khoảng thời gian
một chu kỳ là 5 µs. Vài năm sau, PDP-8 ra dời có 12 bit nhƣng giá thành rẻ hơn
PDP-1 rất nhiều (16.000 USD so với 120.000 USD). PDP-8 có một đổi mới đó là
hình thành một bus đơn gọi là omnibus trong đó bus là tập hợp các dây nối song
song dùng để kết nối các thành phần của máy tính.

16


Hình 1.12: Máy tính PDP-1 của DEC
Trong khi dó, IBM xây dựng một phiên bản của 709 bằng transistor, đó là
máy tính 7094 có thời gian một chu kỳ là 2 µs và bộ nhớ 32K từ 36 bit. Năm 1964,
công ty CDC giới thiệu máy 6600 có tốc độ nhanh hơn 7094 do bên trong CPU có
một có chế độ song song. CPU có vài đơn vị thực hiện phép cộng, các đơn vị khác
thực hiện phép nhân, chia và tất cả chúng đều hoạt động song song. Với một công
việc, máy có khả năng thực thi 10 lệnh đồng thời.

Hình 1.13: Máy CDC-6600 của công ty CDC
3. Thế hệ thứ 3 (1964-1980): Máy tính dùng vi mạch
Vi mạch (IC – Intergrated Circuit): Gồm nhiều transistor và các phần tử bán
17


dẫn đƣợc tích hợp với nhau trên cùng một chip bán dẫn.


Hình 1.14: Mạch thiết kế và vi mạch hoàn chỉnh
- Các mức tích hợp của vi mạch:
+ SSI (Small Scale Integration): Tích hợp mức nhỏ
+ MSI (Medium Scale Integration): Tích hợp mức vừa
+ LSI (Large Scale Integration): Tích hợp mức cao
- Siêu máy tính xuất hiện: CRAY-1, VAX
- Bộ vi xử lý (microprocessor) ra đời: Bộ vi xử lý đầu tiên, Intel 4004 (1971).
4. Thế hệ thứ 4 (1981 – nay): Máy tính dùng vi mạch VLSI.
- VLSI (Very Large Scale Integration): Tích hợp mức cực lớn. Các sản
phẩm 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 1 chip.
- Xuất hiện máy vi tính IBM - PC với hệ điều hành DOS.
5. Thế hệ thứ 5: Máy tính của tƣơng lai
- Máy tính lượng tử: (quantum computer). Loại máy tính này có nguyên
lý làm việc khác khá xa so với máy tính điện tử ngày nay. Với máy tính điện tử
ngày nay, thì dùng các bit để làm nền tảng cho các xử lý bên trong của mình, mặc
dù có thành tựu rất lớn về mặt tính toán song ở các bài toán phức tạp về yêu cầu
chuyên sâu trong các ngành khoa học nhƣ thiên văn, dự báo thời tiết, y học, sinh
vật, toán học v.v... thì ngay cả các siêu máy tính tính toán với tốc độ mạnh nhất hiện
nay, tiềm năng cũng không thể bằng máy tính lƣợng tử, vì các máy tính chúng ta có
ở thời điểm hiện tại chỉ cho ra kết quả là khá hạn chế về các yêu cầu ngành này, các
kết quả cho ra có sai số khá cao trong khi cùng lƣợng thông tin đầu vào nhƣ vậy.
18



Máy tính lƣợng tử dùng nguyên lý Quabit để xử lý thông tin, với các hạt e xử lý
thông tin thì khả năng tốc độ xử lý thông tin sẽ trao đổi rất nhanh, không ngừng sẽ
tạo ra nhiều hƣớng kết quả, qua đó con ngƣời sẽ có thể thu nhận đƣợc nhiều kết quả
chính xác hơn, cho các giả thuyết và tính toán của mình, từ đó hiếu sâu thế giới tự
nhiên nhƣ trong nghiên cứu vũ trụ nghiên cứu sinh học v.v...
Theo nhiều nhà khoa học hàng đầu, khả năng ấn tƣợng về tính toán của
loại máy tính này cho kết quả trong thời gian cực ngắn, mà nếu dùng siêu máy
tính mạnh nhất ở thời điểm hiện tại cũng phải đợi hàng triệu năm mới có kết quả
tƣơng tự.

Hình 1.15: Máy tính lượng tử trong tương lai
- Máy tính sẽ đạt cấp độ xử lý thông tin ở cấp độ phân tử nguyên tử.
Ngày nay, khi thế hệ vật liệu để làm nên phần cứng xử lý thông tin đã có kích
thƣớc cực nhỏ, song vì mật độ thì ngày càng có giới hạn về mặt kích thƣớc và
yêu cầu tiêu tốn một lƣợng lớn năng lƣợng và các vấn đề còn hạn chế về mặt kĩ
thuật đi kèm: yêu cầu phần mềm, các vấn đề vật lý nhƣ: nhiệt độ môi trƣờng,
nhiệt độ mà vật liệu chạy v.v... thì với máy tính sử dụng các loại vật liệu xử lý
thông tin trong tƣơng lai, có thể đƣợc kì vọng là sẽ giải quyết phần lớn các vấn đề
mà máy tính điện tử hiện tại đang tồn tại nhƣ: xử lý thông tin nhanh hơn với cùng
kích thƣớc và năng lƣợng, tiêu ngốn ít hơn trong quá trình xử lý thông tin.
- Máy tính sinh học. Đây là hƣớng máy tính hoàn toàn mới, nguyên lý
loại máy tính này là dựa vào các thông tin của các phân tử hữu cơ có khả năng xử
lý thông tin, kết hợp với các phân tử có khả năng “hiểu” và nhập các thông tin
đầu vào, với khả năng kết hợp này thì sẽ tạo ra loại máy tính có khả năng học hỏi
19


nhƣ con ngƣời là hoàn toàn có thể. Có thể phá vỡ việc con ngƣời sẽ phải lập trình
cho máy tính, lúc này máy tính có khả năng xử lý thông tin và tự đƣa ra kết
quả dựa vào các kết quả tính toán các “kinh nghiệm” mà loại máy tính này xử

lý. Mới đây nhất, các nhà khoa học máy tính này đã tạo ra thế hệ đầu tiên của loại
máy tính này ở châu Âu.
1.4. Hiệu năng máy tính
 Hiệu năng (Performance) đƣợc tính theo công thức sau:

Trong đó:
-

CPU Execution time = Instructions * (Cycles Per Instruction) * (Secs
per Cycle) = Instructions * CPI * (Clock rate).

-

Clock rate: Đồng hồ xung nhịp của CPU.

-

CPI (Cycles Per Instruction): Là số xung nhịp cần thiết để thực hiện 1
lệnh, đƣợc tính bằng:

+ ET (Execution Time): Thời gian thực hiện lệnh
+ EI (Execution Instruction): Số lệnh đƣợc thực hiện
+ CR (Clock Rate): Tần số xung nhịp
Ví dụ: Có 4 lệnh A, B, C, D. Biết CPIA = 2, CPIB = 3, CPIC = 1, CPID = 4.
Biết 1 CPI = 2 (ns).
Thời gian hoàn thành các lệnh theo thứ tự: A -> B -> C -> B -> D: 26 (ns)
 MIPs (Million Instruction Per second): Số triệu lệnh trên giây

Trong đó:
- IF (Instruction Frequency): Tần suất xuất hiện lệnh

- CPI: Số chu kỳ
-

: Thời gian một chu kỳ máy.

Ví dụ: Cho  = 10 (ns). Dựa vào bảng ta tính đƣợc MIPs = 30.845 mips

20


 Mối quan hệ giữa MPIs và CPI
 Một số ví dụ

Ví dụ 1:

Hình 1.16: Mối quan hệ giữa MIPs và CPI
Ví dụ 2:

 MFLOPS (Million of Floating Point Operations per Second)

21


Hình 1.17: Công thức tính MFLOPS

22


Bài 2: MÃ HOÁ THÔNG TIN TRONG MÁY TÍNH
2.1. Các hệ đếm cơ bản

2.1.1. Hệ thập phân (Decimal)
- Do con ngƣời sử dụng.
- Sử dụng 10 chữ số từ 0  9 để biểu diễn các số. Nếu dùng n-chữ số
thập phân để biểu diễn số, sẽ biểu diễn đƣợc 10n số (giá trị) khác nhau từ: 0 
(10n – 1).
- Dạng tổng quát nhƣ sau:
Dn-1Dn-2….D1D0 = Dn-1*10n-1 + Dn-2*10n-2 + ….. + D1*101+ D0*100
n – chữ số
2.1.2. Hệ nhị phân (Binary)
- Do máy tính sử dụng
- Sử dụng 2 chữ số từ 0  1 để biểu diễn các số. Nếu dùng n-chữ số nhị
phân để biểu diễn số, sẽ biểu diễn đƣợc 2n số (giá trị) khác nhau từ: 0  (2n – 1).
- Dạng tổng quát nhƣ sau:
Bn-1Bn-2….B1B0 = Bn-1*2n-1 + Bn-2*2n-2 + ….. + B1*21+ B0*20
n – chữ số
2.1.3. Hệ thập lục phân (Hexa)
- Hệ rút gọn của hệ nhị phân.
- Sử dụng 10 chữ số (0  9) và 6 chữ cái (A-F) để biểu diễn các số. Nếu
dùng n- chữ số thập lục phân để biểu diễn số, sẽ biểu diễn đƣợc 16n số (giá trị)
khác nhau từ: 0
 (16n – 1).
- Dạng tổng quát nhƣ sau:
Hn-1Hn-2….H1H0 = Hn-1*16n-1 + Hn-2*16n-2 + ….. + H1*161+ H0*160
n – chữ số
2.1.4. Quan hệ giữa các hệ đếm
Decimal
0
1
2
3

4
5
6
7

Hexa
0
1
2
3
4
5
6
7

Binary
0000
0001
0010
0011
0100
0101
0110
0111
23

Decimal
8
9
10

11
12
13
14
15

Hexa
8
9
A
B
C
D
E
F

Binary
1000
1001
1010
1011
1100
1101
1110
1111


2.2. Mã hoá thông tin trong máy tính
2.2.1. Nguyên tắc chung về mã hoá dữ liệu
Mọi dữ liệu đƣợc đƣa vào máy tính đƣợ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
- Mã hoá dữ liệu nhân tạo :
+ Dữ liệu số nguyên: mã hoá theo một số chuẩn đã quy ƣớc
+ Dữ liệu số thực: mã hoá bằng số dấu chấm động
+ Dữ liệu phi số (ký tự): mã hoá theo các bộ mã ký tự hiện hành nhƣ
: ASCII, Unicode,…
Tín hiệu vật lý

Bộ cảm biến Tín hiệu
điện liên
tín hiệu
tục

Tín hiệu

Bộ chuyển
đổi ADC

số

Máy tính
Tín hiệu vật lý

Bộ tái tạo

Tín hiệu

tín hiệu


điện liên
tục

Bộ chuyển
đổi DAC

Tín hiệu
số

Hình 2.1 : Quy trình biến đổi tín hiệu
2.2.2. Nguyên tắc lưu trữ dữ liệu trong máy tính
Bộ nhớ chính tổ chức lƣu trữ dữ liệu theo đơn vị byte. Độ dài từ dữ liệu có
thể chiếm từ 1 đến 4 byte. Vì vậy cần phải biết thứ tự lƣu trữ của chúng trong bộ
nhớ chính đối với các dữ liệu nhiều byte.
Có hai cách lƣu trữ đƣợc đƣa ra
- Little Endian (đầu nhỏ): Byte có ý nghĩa thấp hơn đƣợc lƣu trữ trong bộ
nhớ ở vị trí có địa chỉ nhỏ hơn.
Ví dụ: Giả thiết cần lƣu một một dòng chữ KY THUAT MAY TINH sử
dụng mã ASCII 8 bit.

Big Endian (đầu to): Byte có ý nghĩa thấp hơn đƣợc lƣu trữ trong bộ nhớ ở vị
trí có địa chỉ lớn hơn.

24


2.3. Biểu diễn số nguyên
Nguyên tắc chung: Dùng n-chữ số nhị phân, sẽ biểu diễn đƣợc 2n số (giá trị).
2.3.1. Số nguyên không dấu

Dùng n bit để biểu diễn số nguyên không dấu.
- Số chữ số biểu diễn đƣợc: 2n số.
- Phạm vi biểu diễn: 0 
(2n - 1) Vd: Với n = 8
(bảng bên)

n=8
00000000
00000001
00000010
………….
11111110
11111111

Giá trị
0
1
2
……….
254
255

- Số chữ số biểu diễn đƣợc: 28 = 256 số.
- Phạm vi biểu diễn: 0  (28 - 1) = 0  255.
2.3.2. Số nguyên có dấu
Có nhiều cách để biểu diễn một số nguyên n bit có dấu. Trong tất cả các
cách, bit cao nhất luôn là bit dấu (0 - dƣơng, 1 - âm).
1. Dấu và trị tuyệt đối
Dùng n bit để biểu diễn số nguyên có dấu theo
“Dấu và trị tuyệt đối”. Khi đó:

- Bit (n - 1): Bit dấu
- (n - 1) bit còn lại là trị tuyệt đối của
số đó. Vd: n = 8. Khi đó tồn tại 2 giá
trị (+0) và (-0) Phạm vi biểu diễn tổng

n=8

Giá trị

01111111

+ 127

……..
00000000

……..
+0

10000000

-0

……..
11111111

……..
- 127

n=8

01111111

Giá trị
+ 127

……..

……..

quát:
- (2n-1-1)  (-0) (+0)  (2n-1-1)
2. Số bù 1: Số bù 1 của A = Đảo các bit của A.
Trong cách biểu diễn này, số âm của một số
có đƣợc bằng cách thay bit tƣơng ứng bằng bit bù với
nó (nghĩa là: 10, 01). Khi có, có 2 biểu diễn của
số (+0) và (-0).
Vd: n = 8 (bảng bên)
Phạm vi biểu diễn tổng quát:
- (2n-1-1)  (-0) (+0) 
(2n-1-1)
3. Số bù 2: Số bù 2 của A = Bù 1 của A + 1
Trong 2 cách biểu diễn trên, ta thấy tồn tại 2
giá trị (+0) và (-0). Trong biểu diễn theo số bù 2, chỉ
có một giá trị không (0) duy nhất là một dãy các bit
không (000…..0).
25

00000000
11111111


+0
-0

……..
10000000

……..
- 127

n=8
01111111

Giá trị
+ 127

……..
00000010

……..
+2

00000001

+1

00000000
11111111

0
-1


11111110

-2

……..

……..

10000001
10000000

- 127
- 128


×