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

Giáo trình kiến trúc máy tính (ngành tin học văn phòng trung cấp)

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 (1.63 MB, 108 trang )

UỶ BAN NHÂN DÂN TỈNH ĐỒNG THÁP
TRƢỜNG CAO ĐẲNG CỘNG ĐỒNG ĐỒNG THÁP

GIÁO TRÌNH
MƠN HỌC: KIẾN TRÚC MÁY TÍNH
NGÀNH, NGHỀ: TIN HỌC VĂN PHỊNG
TRÌNH ĐỘ: TRUNG CẤP

(Ban hành kèm theo Quyết định số
/QĐ-CĐCĐ ngày tháng
năm 20…
của Hiệu trƣởng trƣờng Cao đẳng Cộng đồng Đồng Tháp)

Đồng Tháp, năm 2018



TUYÊN BỐ BẢN QUYỀN
Tài liệu này thuộc loại sách giáo trình nên các nguồn thơng tin có thể đƣợc
phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham
khảo.
Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh
doanh thiếu lành mạnh sẽ bị nghiêm cấm.



LỜI GIỚI THIỆU
Cấu trúc máy tính là một thuật ngữ thƣờng đƣợc sử dụng để nói về các vấn
đề liên quan đến tổ chức và thiết kế các máy tính điện tử số. Nội dung của
nghiên cứu này gắn liền với việc thiết kế phần cứng của các hệ thống máy tính
cũng nhƣ việc thiết kế đó phụ thuộc vào các hệ thống phần mềm.


Trong kỹ thuật máy tính, cấu trúc máy tính là mơ tả các khái niệm và cấu
trúc hoạt động căn bản của một hệ thống máy tính. Nó là một bản mơ tả có tính
chất chức năng về các yêu cầu và những sự hoạt động cho những bộ phận khác
nhau của một máy tính - tập trung chủ yếu vào cách tổ chức bên trong hệ thống
máy tính, việc CPU hoạt động nội tại nhƣ thế nào và truy cập các địa chỉ trong
bộ nhớ bằng cách nào.
Nó cũng có thể đƣợc định nghĩa nhƣ là khoa học và nghệ thuật lựa chọn và kết
nối các thành phần phần cứng để tạo thành các máy tính đáp ứng đƣợc các mục
đích về tính năng, hiệu suất và giá cả.
Cấu trúc máy tính bao gồm:


Vi kiến trúc (Microarchitecture), cịn gọi là tổ chức máy tính (Computer
organization) là một mô tả bậc thấp, cụ thể hơn về hệ thống. Mơ tả này
nói về các bộ phận cấu thành của hệ thống đƣợc kết nối với nhau nhƣ thế
nào và chúng hoạt động tƣơng hỗ nhƣ thế nào để thực hiện kiến trúc tập
lệnh.



Thiết kế hệ thống (System Design) bao gồm tất cả các thành phần phần
cứng khác bên trong một hệ thống tính tốn chẳng hạn:
- Các đƣờng kết nối hệ thống nhƣ bus (máy tính) và switch
- Các bộ điều khiển bộ nhớ (memory controller) và các cấp bộ nhớ
- Các cơ chế CPU off-load nhƣ Direct memory access (truy nhập bộ
nhớ trực tiếp)
- Các vấn đề nhƣ đa xử lý (multi-processing).
Nội dung bài giảng đƣợc phân bố gồm 4 chƣơng:

Chƣơng 1: Tổng quan về kiến trúc máy tính

Giới thiệu lịch sử và thành quả phát triển của các loại máy tính điện tử; các khái
niệm cơ bản về thơng tin, phƣơng pháp mã hóa thơng tin trong máy tính điện tử
Chƣơng 2: Bộ xử lý


Giới thiệu tổ chức, nguyên lý hoạt động của các bộ phận bên trong bộ xử lý
nhằm thực hiện nhiệm vụ mà kiến trúc phần mềm đã đề ra; các kỹ thuật nâng
cao hiệu quả hoạt động của các bộ xử lý hiện đại.
Chƣơng 3: Các cấp bộ nhớ
Giới thiệu chức năng, nguyên lý hoạt động của các loại bộ nhớ, tổ chức các cấp
bộ nhớ và các kỹ thuật nâng cao hiệu quả hoạt động của bộ nhớ trong máy tính
điện tử
Chƣơng 4: Nhập – Xuất
Giới thiệu chức năng, nhiệm vụ các thiết bị nhập xuất trong hệ thống máy tính;
nguyên tắc hoạt động của một số thiết bị lƣu trữ thông dụng; giới thiệu hệ thống
kết nối cơ bản giữa các bộ phận trong máy tính và cách giao tiếp giữa ngoại vi
và bộ xử lý; phƣơng pháp lƣu trữ an toàn dữ liệu trên đĩa cứng.
Để hoàn thiện giáo trình này tác giả xin chân thành cảm ơn tất cả các Thầy cô là
giảng viên trƣờng Cao đẳng Cộng đồng Đồng Tháp, trƣờng Cao đẳng Nghề An
Giang, trƣờng Trung cấp Hồng Ngự, trƣờng Trung cấp Tháp Mƣời; các Anh
(Chị) đại diện Sở Lao động Thƣơng binh và Xã hội, đại diện các công ty, doanh
nghiệp đã tham gia đóng góp ý kiến.
Mặc dù tác giả đã có nhiều cố gắng trong việc biên soạn tài liệu này, song khơng
thể tránh khỏi những thiếu sót. Rất mong nhận đƣợc những ý kiến đóng góp quý
báu từ các bạn đọc để bài giảng ngày càng hoàn thiện hơn.
Đồng Tháp, ngày 30 tháng 10 năm 2019
Chủ biên
Huỳnh Văn Khỏe



MỤC LỤC

Trang

LỜI GIỚI THIỆU ................................................................................................... 1
CHƢƠNG 1: TỔNG QUAN VỀ KIẾN TRÚC MÁY TÍNH ................................ 1
1. Một số khái niệm và nguyên lý cơ bản ........................................................... 1
1.1. Nguyên tắc tổ chức.................................................................................... 1
1.2. Ngôn ngữ máy và cấp kiến trúc máy tính ................................................. 2
2. Lịch sử phát triển và ứng dụng của máy tính điện tử ...................................... 4
2.1. Lịch sử phát triển....................................................................................... 4
2.2. Phân loại máy tính ..................................................................................... 7
2.3. Các lĩnh vực ứng dụng của máy tính ........................................................ 8
3. Các hệ thống số ............................................................................................... 8
3.1. Nguyên lý của việc viết số ........................................................................ 8
3.2. Biến đổi qua lại giữa các hệ thống số ..................................................... 11
4. Thơng tin và mã hóa thơng tin ...................................................................... 19
4.1. Số nguyên có dấu .................................................................................... 19
4.2. Cách biểu diễn số với dấu chấm động .................................................... 21
4.3. Biểu diễn các số thập phân ...................................................................... 23
4.4. Biểu diễn các ký tự ................................................................................... 23
CÂU HỎI VÀ BÀI TẬP CHƢƠNG 1................................................................. 28
CHƢƠNG 2: BỘ XỬ LÝ .................................................................................... 30
1. Các thành phần cơ bản của một máy tính ..................................................... 30
2. Kiến trúc CISC, RISC ................................................................................... 32
2.1. Bộ điều khiển vi chƣơng trình (CISC) .................................................... 34
2.2. Bộ điều khiển mạch điện tử .................................................................... 34
3. Tổ chức bộ xử lý trung tâm CPU .................................................................. 35
3.1. Đƣờng đi dữ liệu ..................................................................................... 35
3.2. Các yếu tố tác động đến hiệu suất của CPU ........................................... 36

i


3.3. Nguyên lý hoạt động của CPU ................................................................ 38
3.4. Phân loại CPU ......................................................................................... 39
4. Thực hiện lệnh mã máy bên trong bộ xử lý ...................................................... 40
4.1. Đọc lệnh ..................................................................................................... 41
4.2. Giải mã lệnh và đọc các thanh ghi nguồn .................................................. 41
4.3. Thi hành lệnh ............................................................................................. 41
4.4. Thâm nhập bộ nhớ trong hoặc nhảy lần cuối............................................. 42
4.5. Lƣu trữ kết quả ........................................................................................... 42
5. Ngắt quãng ..................................................................................................... 42
6. Kỹ thuật ống dẫn............................................................................................ 43
7. Khó khăn trong kỹ thuật ống dẫn .................................................................. 45
7.1. Khó khăn do cấu trúc ................................................................................. 45
7.2. Khó khăn do số liệu ................................................................................... 45
7.3. Khó khăn do điều khiển ............................................................................. 46
8. Siêu ống dẫn .................................................................................................. 47
9. Siêu vô hƣớng ................................................................................................ 48
10. Máy tính song song ........................................................................................ 49
CÂU HỎI VÀ BÀI TẬP CHƢƠNG 2 ................................................................. 53
CHƢƠNG 3: CÁC CẤP BỘ NHỚ ...................................................................... 54
1. Phân loại các bộ nhớ bán dẫn ........................................................................ 54
2. Các cấp bộ nhớ .............................................................................................. 59
3. Bộ nhớ Cache ................................................................................................ 60
3.1. Hiệu quả của Cache ................................................................................... 67
3.2. Cache duy nhất, cache riêng lẻ .................................................................. 68
3.3. Các mức Cache .......................................................................................... 68
4. Bộ nhớ trong .................................................................................................. 69
5. Bộ nhớ ảo ....................................................................................................... 71

CÂU HỎI VÀ BÀI TẬP CHƢƠNG 3 ................................................................. 77
CHƢƠNG 4: NHẬP – XUẤT.............................................................................. 79
ii


1. Đĩa từ ............................................................................................................. 79
2. Đĩa cứng thể rắn – SSD ................................................................................... 81
3. Đĩa quang....................................................................................................... 82
4. Các loại thẻ nhớ ............................................................................................. 83
5. Bus nối ngoại vi vào bộ xử lý và bộ nhớ trong ............................................. 84
6. Các chuẩn về bus ........................................................................................... 87
7. Giao diện giữa bộ xử lý với các thiết bị vào ra ............................................. 87
8. Một số biện pháp an tồn dữ liệu trong việc lƣu trữ thơng tin trong đĩa từ .. 89
CÂU HỎI CHƢƠNG 4 ....................................................................................... 95
TÀI LIỆU THAM KHẢO .................................................................................... 96

iii


GIÁO TRÌNH MƠN HỌC
Tên mơn học: CẤU TRÚC MÁY TÍNH
Mã mô đun: MH09
Thời gian thực hiện mô đun: 90 giờ (Lý thuyết: 45 giờ; thực hành, thí nghiệm,
thảo luận, bài tập: 41 giờ; kiểm tra: 4 giờ)
I. VỊ TRÍ, TÍNH CHẤT MƠN HỌC:
- Vị trí: Mơn học Kiến trúc máy tính đƣợc bố trí học sau các mơn học chung,
các mơn tin học đại cƣơng, tin học văn phịng, kỹ thuật điện-điện tử và học
cùng với mô đun lắp ráp cài đặt máy tính.
- Tính chất: Là mơn học kỹ thuật cơ sở thuộc môn học đào tạo nghề bắt buộc.
II. MỤC TIÊU MƠN HỌC:

- Trình bày đƣợc lịch sử của máy tính, các thế hệ máy tính và cách phân loại
máy tính.
- Mơ tả các thành phần cơ bản của kiến trúc máy tính, các tập lệnh. Các kiểu
kiến trúc máy tính: mơ tả kiến trúc, các kiểu định vị.
- Trình bày đƣợc cấu trúc của bộ xử lý trung tâm: tổ chức, chức năng và
nguyên lý hoạt động của các bộ phận bên trong bộ xử lý.
- Mô tả diễn tiến thi hành một lệnh mã máy và một số kỹ thuật xử lý thông tin:
ống dẫn, siêu ống dẫn, siêu vơ hƣớng.
- Trình bày đƣợc chức năng và nguyên lý hoạt động của các loại bộ nhớ.
- Trình bày phƣơng pháp lƣu trữ dữ liệu đối với bộ nhớ ngồi.
- Cài đặt đƣợc chƣơng trình và các lệnh điều khiển cơ bản trong Assembly để
thực hiện bài tốn theo u cầu.
- Bố trí làm việc khoa học đảm bảo an toàn cho ngƣời và phƣơng tiện học tập.
III. NỘI DUNG MÔN HỌC:
1. Nội dung tổng quát và phân phối thời gian :
Thời gian (giờ)
Thực
hành, thí
Số
Tên các bài trong mô đun
Tổng

nghiệm, Kiểm
TT
số
thuyết
thảo
tra
luận, bài
tập

I
Tổng quan về kiến trúc máy tính
10
5
5
Các mốc lịch sử phát triển cơng nghệ
máy tính
Thơng tin và sự mã hóa thơng tin
Đặc điểm của các thế hệ máy tính điện
tử
Kiến trúc và tổ chức máy tính
Các mơ hình kiến trúc máy tính
iv


II

III

IV

V

VI

VII

Kiến trúc tập lệnh của máy tính
Các thành phần cơ bản của một máy
tính

Kiến trúc các tập lệnh CISC và RISC
Mã lệnh
Bộ xử lý
Sơ đồ khối của bộ xử lý
Đƣờng dẫn dữ liệu
Bộ điều khiển
Tiến trình thực hiện lệnh máy
Kỹ thuật ống dẫn lệnh
Kỹ thuật siêu ống dẫn lệnh
Các chƣớng ngại của ống dẫn lệnh
Các loại ngắt
Bộ nhớ
Phân loại bộ nhớ
Các loại bộ nhớ bắn dẫn
Hệ thống nhớ phân cấp
Kết nối bộ nhớ với bộ xử lý
Các tổ chức cache
Thiết bị nhớ ngoài
Các thiết bị nhớ trên vật liệu từ
Thiết bị nhớ quang học
Các loại thẻ nhớ
An toàn dữ liệu trong lƣu trữ
Các loại bus
Định nghĩa bus, bus hệ thống
Bus đồng bộ và không đồng bộ
Hệ thống bus phân cấp
Các loại bus sử dụng trong các hệ
thống vi xử lý
Ngôn ngữ Assembly
Tổng quan

Cấu trúc chƣơng trình
Các lệnh điều khiển
Ngăn xếp và các thủ tục
Cộng

13

8

4

1

9

4

4

1

13

8

4

1

15


5

10

10

5

5

20

10

9

1

90

45

41

4

.

v




CHƢƠNG 1
TỔNG QUAN VỀ KIẾN TRÚC MÁY TÍNH
Mã chƣơng: MH09-01
Giới thiệu
Sự phát triển của máy tính đƣợc mơ tả dựa trên sự tiến bộ của các công
nghệ chế tạo các linh kiện cơ bản của máy tính nhƣ: bộ xử lý, bộ nhớ, các thiết
bị ngoại vi,… Ta có thể nói máy tính điện tử số trải qua bốn thế hệ liên tiếp.
Việc chuyển từ thế hệ trƣớc sang thế hệ sau đƣợc đặc trƣng bằng một sự thay
đổi cơ bản về công nghệ. Nội dung chƣơng 1 cung cấp cho sinh viên kiến thức
về lịch sử và thành quả phát triển của các loại máy tính điện tử; các khái niệm cơ
bản về thơng tin, phƣơng pháp mã hóa thơng tin trong máy tính điện tử.
Mục tiêu
Giới thiệu lịch sử và thành quả phát triển của các loại máy tính điện tử; các
khái niệm cơ bản về thơng tin, phƣơng pháp mã hóa thơng tin trong máy tính
điện tử.
1. Một số khái niệm và nguyên lý cơ bản
1.1.

Nguyên tắc tổ chức

Máy tính là một khái niệm chỉ mọi phƣơng tiện thƣờng dùng để thực hiện
các phép biến đổi toán học nhƣ: que tính, bàn tính, máy tính điện cơ, máy tính
điện tử,…
Do đƣợc xây dựng trên cơ sở sử dụng các linh kiện và mạch điện tử nhƣ:
transistor, vi mạch bán dẫn, … máy tính điện tử là một loại thiết bị tự động cho
phép thu thập, lƣu trữ và xử lý các dữ liệu rất hiệu quả.
Tùy thuộc nguyên lý hoạt động máy tính điện tử đƣợc phân thành hai loại:

máy tính tƣơng tự và máy tính số. Máy tính tƣơng tự (analog computer) hoạt
động với tín hiệu tƣơng tự có biên độ biến thiên một cách liên tục theo thời gian.
Máy tính số (digital computer) chỉ làm việc với các tín hiệu số, đó là loại tín
hiệu tƣơng tự đã đƣợc rời rạc hóa về thời gian và lƣợng tử hóa về biên độ. Ngày
nay, do máy tính số đƣợc dùng rất phổ biến nên khi nói đến máy tính thƣờng
hiểu ngầm là máy tính số.
Một máy tính số đƣợc phát triển trên cơ sở của 2 phần: phần cứng và phần
mềm. phần cứng (hardware) gồm những đối tƣợng vật lý hữu hình nhƣ: vi mạch,
1


bản mạch in, bộ nhớ, màn hình, bàn phím … Phần mềm (software) gồm các
thuật giải và sự thể hiện trên máy tính của nó là các chƣơng trình. Các chƣơng
trình bao gồm các lệnh hay chỉ thị. Chƣơng trình có thể nhập vào máy tính từ
bàn phím, trình bày trên màn hình, ghi trên đĩa từ … mà nội dung chủ yếu của
nó là các dãy lệnh. Từ đầu những năm 80, do áp dụng những thành tựu về công
nghệ phần cứng hiện đại, đặc biệt là kỹ thuật mạch tích hợp, với cùng một khả
năng tính tốn các máy tính có kích thƣớc, cơng suất tiêu hao đủ nhỏ và giá
thành giảm xuống thấp cho phép một cá nhân có thể sở hữu một máy tính. Từ đó
máy tính cá nhân (personal computer - PC) hay máy vi tính (microcomputer) ra
đời, theo đúng tên gọi của nó là máy tính có thể sử dụng cho một ngƣời, khác
với máy tính lớn (mainframe) đƣợc dùng bởi nhiều ngƣời qua các thiết bị đầu
cuối (terminal). Chính sự khác biệt này đã mở ra một kỷ nguyên áp dụng PC
trong rất nhiều lĩnh vực khoa học công nghệ và đời sống.
1.2.

Ngôn ngữ máy và cấp kiến trúc máy tính

Một chuỗi các lệnh mô tả cách thực hiện một công việc nào đó trong máy
tính gọi là chƣơng trình. Các mạch điện tử trong máy tính số có thể nhận biết và

thực thi trực tiếp một tập giới hạn các lệnh đơn giản. Các mạch này đƣợc xây
dựng trên cơ sở nhận biết và xử lý các số nhị phân. Muốn thực thi các chƣơng
trình trƣớc tiên phải biến đổi chúng sang các lệnh cơ bản của một tập lệnh mã
máy (dạng nhị phân) nhất định để thi hành. Các lệnh cơ bản đó có thể hình thành
nên một ngơn ngữ có khả năng giúp con ngƣời liên lạc với máy tính. Đó là ngơn
ngữ máy do các hãng sản xuất máy tính cung cấp cho ngƣời dùng. Tập lệnh mã
máy này đƣợc chọn lựa khi thiết kế máy tính dựa trên các cơ sở phù hợp với khả
năng và các yêu cầu về hiệu suất của máy. Các lệnh cũng nhƣ số liệu trong tập
lệnh máy đều là những số nhị phân, ngôn ngữ máy này gọi là L1. Ngôn ngữ L1
không gần gũi với con ngƣời nên cần thiết kế các tập lệnh mới sao cho gần gũi
hơn với ngôn ngữ con ngƣời. các lệnh mới này cũng hình thành một ngơn ngữ
gọi là ngơn ngữ L2. Có 2 phƣơng pháp cho phép thực thi các chƣơng trình viết
bằng L2. Thứ nhất, trƣớc tiên thay thế mỗi lệnh của L2 bằng một chuỗi các lệnh
tƣơng đƣơng trong ngôn ngữ máy L1, đây đƣợc gọi là quá trình dịch. Thứ hai,
viết một chƣơng trình đặc biệt bằng L1, chƣơng trình này xem các chƣơng trình
viết bằng L2 nhƣ là dữ liệu vào và thực thi chúng bằng cách khảo sát tuần tự
từng lệnh và thi hành trực tiếp chuỗi các lệnh tƣơng đƣơng trong L1, đây đƣợc
gọi là thông dịch và chƣơng trình thực hiện sự thơng dịch gọi là trình thông dịch.

2


Cũng nhƣ vậy, có thể phát triển một tập các lệnh mới nữa hƣớng về con
ngƣời hơn để hình thành ngơn ngữ mới L3. Các chƣơng trình viết trong L3 hoặc
sẽ đƣợc dịch sang L2 hoặc đƣợc thực thi bởi một trình thơng dịch viết trong L2.
Việc phát triển ra một chuỗi các ngơn ngữ, mỗi ngơn ngữ thích hợp hơn
so với ngơn ngữ trƣớc đó có thể tiếp tục khơng ngừng cho đến khi nhận đƣợc
ngơn ngữ thích hợp nhất. Chỉ có các chƣơng trình viết bằng ngơn ngữ máy cấp
L1 mới đƣợc thực thi trực tiếp bởi các mạch điện tử mà không cần sự can thiệp
của biên dịch hoặc thơng dịch. Các chƣơng trình viết bằng L2, L3, …, Ln hoặc

phải đƣợc thơng dịch bởi một trình thông dịch chạy trên cấp thấp hơn hoặc phải
đƣợc dịch sang ngôn ngữ khác tƣơng ứng với cấp thấp hơn.
Máy tính đƣợc xem xét nhƣ là một hệ thống các cấp có thứ bậc cho ta một kiến
trúc hoặc một cơ cấu tổ chức tốt nhằm tìm hiểu cách tổ chức các máy tính.
5

Cấp ngơn ngữ bậc cao và
hƣớng đối tƣợng
Dịch (trình biên dịch)

4

Cấp hợp ngữ
Trình hợp dịch

3

Cấp máy
hệ điều hành
Dịch một phần

2

1

Cấp lệnh máy
(lệnh vĩ mơ)
Trình thơng dịch

Cấp vi lệnh

(lệnh vi mơ)

Các vi chƣơng trình

0

Cấp logic số
(các mạch điện tử số)
Hình 1.1 Cấu trúc phân cấp của máy tính cơ bản

Cấp 0, cấp logic số là phần cứng của máy tính trong đó các mạch điện tử của cấp
này thực thi các chƣơng trình ngơn ngữ máy của cấp 1.
Cấp 1, cấp ngôn ngữ máy thực sự. ở đây có một chƣơng trình gọi là vi chƣơng
trình (microprogram) làm nhiệm vụ thông dịch các lệnh của cấp 2.
Mỗi máy cấp 1 có một hoặc nhiều vi chƣơng trình chạy trên chúng. Mỗi vi
chƣơng trình xác định hồn tồn một ngôn ngữ cấp 2, đây là cấp máy quy ƣớc.
3


Cấp 3 thƣờng là cấp hỗn hợp, hầu hết các lệnh trong ngôn ngữ cấp này cũng ở
trong ngôn ngữ cấp 2, thêm vào đó lại có một tập các lệnh mới, một tổ chức bộ
nhớ khác, khả năng chạy hai hay nhiều chƣơng trình song song và nhiều đặc
trƣng khác. Các tiện nghi mới thêm vào ở đây đƣợc thực thi bởi một trình thơng
dịch chạy trên cấp 2 gọi là hệ điều hành (operating system)
Cấp 4 gọi là cấp hợp ngữ (assembly language level), cấp này cung cấp các từ gợi
nhớ, cho phép thuận tiện trong việc viết chƣơng trình hơn. Các chƣơng trình viết
bằng hợp ngữ trƣớc tiên đƣợc dịch sang ngôn ngữ cấp 1, 2 hoặc 3, sau đó đƣợc
thơng dịch bởi máy ảo hoặc thực tƣơng ứng. Chƣơng trình thực hiện việc dịch
gọi là trình hợp dịch (assembler)
Cấp 5 bao gồm các ngôn ngữ đƣợc thiết kế dành cho những ngƣời lập trình ứng

dụng. Chúng đƣợc gọi là ngôn ngữ cấp cao nhƣ: Pascal, C, Fortran, … 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
ngơn ngữ này thƣờng đƣợc dịch sang cấp 3 hoặc cấp 4 bằng các trình dịch gọi là
trình biên dịch (compiler).
Cịn các cấp trên nữa bao gồm những tập hợp các chƣơng trình đƣợc thiết kế
để tạo ra các máy dành riêng cho các ứng dụng đặc biệt nhƣ trong quản lý, giáo
dục, thiết kế chip,…
Tóm lại, các máy tính đƣợc thiết kế thành một chuỗi các cấp, mỗi cấp đƣợc
xây dựng trên cấp trƣớc đó. Mỗi cấp biểu thị một quan điểm trừu tƣợng riêng,
với các đối tƣợng và các thao tác khác nhau.
2. Lịch sử phát triển và ứng dụng của máy tính điện tử
2.1.

Lịch sử phát triển

Sự phát triển của máy tính đƣợc xác định dựa trên sự tiến bộ của các công
nghệ chế tạo các linh kiện cơ bản của máy tính nhƣ: bộ xử lý, bộ nhớ, các ngoại
vi,…Ta có thể nói máy tính điện tử số trải qua bốn thế hệ liên tiếp. Việc chuyển
từ thế hệ trƣớc sang thế hệ sau đƣợc đặc trƣng bằng một sự thay đổi cơ bản về
công nghệ.
2.1.1. Thế hệ thứ nhất (1946-1957)

4


Hình 1.2 Máy tính ENIAC

ENIAC (Electronic Numerical Integrator and Computer) là máy tính điện tử
số đầu tiên do Giáo sƣ Mauchly và ngƣời học trò Eckert tại Đại học
Pennsylvania thiết kế vào năm 1943 và đƣợc hoàn thành vào năm 1946. Đây là

một máy tính khổng lồ với thể tích dài 20 mét, cao 2,8 mét và rộng vài mét.
ENIAC bao gồm: 18.000 đèn điện tử, 1.500 công tắc tự động, cân nặng 30 tấn,
và tiêu thụ 140KW giờ. Nó có 20 thanh ghi 10bit (tính tốn trên số thập phân).
Có khả năng thực hiện 5.000 phép tốn cộng trong một giây. Cơng việc lập trình
bằng tay bằng cách đấu nối các đầu cắm điện và dùng các ngắt điện.
Giáo sƣ toán học John Von Neumann đã đƣa ra ý tƣởng thiết kế máy tính IAS
(Princeton Institute for Advanced Studies): chƣơng trình đƣợc lƣu trong bộ nhớ,
bộ điều khiển sẽ lấy lệnh và biến đổi giá trị của dữ liệu trong phần bộ nhớ, bộ
làm toán và luận lý (ALU: Arithmetic And Logic Unit) đƣợc điều khiển để tính
tốn trên dữ liệu nhị phân, điều khiển hoạt động của các thiết bị vào ra. Đây là
một ý tƣởng nền tảng cho các máy tính hiện đại ngày nay. Máy tính này cịn
đƣợc gọi là máy tính Von Neumann

5


Hình 1.3 Cấu trúc máy tính IAS

2.1.2. Thế hệ thứ 2 (1958 – 1964)
Công ty Bell đã phát minh ra transistor vào năm 1947 và do đó thế hệ thứ hai
của máy tính đƣợc đặc trƣng bằng sự thay thế các đèn điện tử bằng các transistor
lƣỡng cực. Tuy nhiên, đến cuối thập niên 50, máy tính thƣơng mại dùng
transistor mới xuất hiện trên thị trƣờng. Kích thƣớc máy tính giảm, rẻ tiền hơn,
tiêu tốn năng lƣợng ít hơn. Vào thời điểm này, mạch in và bộ nhớ bằng xuyến từ
đƣợc dùng. Ngôn ngữ cấp cao xuất hiện (nhƣ FORTRAN năm 1956, COBOL
năm 1959, ALGOL năm 1960) và hệ điều hành kiểu tuần tự (Batch Processing)
đƣợc dùng. Trong hệ điều hành này, chƣơng trình của ngƣời dùng thứ nhất đƣợc
chạy, xong đến chƣơng trình của ngƣời dùng thứ hai và cứ thế tiếp tục
2.1.3. Thế hệ thứ 3 (1965 – 1971)
Thế hệ thứ ba đƣợc đánh dấu bằng sự xuất hiện của các mạch kết (mạch tích hợp

- IC: Integrated Circuit). Các mạch kết độ tích hợp mật độ thấp (SSI: Small
Scale Integration) có thể chứa vài chục linh kiện và kết độ tích hợp mật độ trung
bình (MSI: Medium Scale Integration) chứa hàng trăm linh kiện trên mạch tích
hợp.
Mạch in nhiều lớp xuất hiện, bộ nhớ bán dẫn bắt đầu thay thế bộ nhớ bằng
xuyến từ. Máy tính đa chƣơng trình và hệ điều hành chia thời gian đƣợc dùng.
2.1.4. Thế hệ thứ 4 (1972 đến nay)
Thế hệ thứ tƣ đƣợc đánh dấu bằng các IC có mật độ tích hợp cao (LSI: Large
Scale Integration) có thể chứa hàng ngàn linh kiện. Các IC mật độ tích hợp rất
cao (VLSI: Very Large Scale Integration) có thể chứa hơn 10 ngàn linh kiện trên
mạch. Hiện nay, các chip VLSI chứa hàng triệu linh kiện.

6


Với sự xuất hiện của bộ vi xử lý (microprocessor) chứa cả phần thực hiện và
phần điều khiển của một bộ xử lý, sự phát triển của công nghệ bán dẫn các máy
vi tính đã đƣợc chế tạo và khởi đầu cho các thế hệ máy tính cá nhân.
Các bộ nhớ bán dẫn, bộ nhớ cache, bộ nhớ ảo đƣợc dùng rộng rãi.
Các kỹ thuật cải tiến tốc độ xử lý của máy tính khơng ngừng đƣợc phát triển: kỹ
thuật ống dẫn, kỹ thuật vô hƣớng, xử lý song song mức độ cao, …
2.2.

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

Để phân loại máy tính ngƣời ta dựa vào khả năng và tốc độ xử lý của máy tính.
Có 4 loại máy tính:
- Siêu máy tính
Một siêu máy tính (supercomputer) là một máy tính vƣợt trội trong khả năng và
tốc độ xử lý. Thuật ngữ Siêu Tính Tốn đƣợc dùng lần đầu trong báo New York

World vào năm 1920 để nói đến những bảng tính (tabulators) lớn của IBM làm
cho trƣờng Đại học Columbia. Siêu máy tính hiện nay có tốc độ xử lý hàng
nghìn teraflop (một teraflop tƣơng đƣơng với hiệu suất một nghìn tỷ phép
tính/giây) hay bằng tổng hiệu suất của 6.000 chiếc máy tính cá nhân hiện đại
nhất hiện nay gộp lại (một máy có tốc độ khoảng từ 3-3,8 gigaflop).
Có thể hiểu siêu máy tính là hệ thống những máy tính làm việc song song
Ví dụ Siêu máy tính Sequoia của IBM có tốc độ tính tốn 504 tỷ phép tính/giây,
Sequoia nhanh hơn máy tính lớn của Fujitsu 1,55 lần và sử dụng hơn 1,5 triệu
bộ xử lý. Trong khi đó máy tính lớn của Fujitsu có số đơn vị xử lý (CPU) ít hơn
gần một nửa. Về năng lƣợng, siêu máy tính của IBM cũng tiết kiệm hơn khi nó
tiêu thụ 7,9 megawatts, trong khi đó máy của Fujitsu tiêu thụ 12,6 megawatts
- Máy tính lớn
Máy tính lớn (Mainframe) là loại máy tính có kích thƣớc lớn đƣợc sử dụng chủ
yếu bởi các công ty lớn nhƣ các ngân hàng, các hãng bảo hiểm... để chạy các
ứng dụng lớn xử lý khối lƣợng lớn dữ liệu nhƣ kết quả điều tra dân số, thống kê
khách hàng và doanh nghiệp, và xử lý các giao tác thƣơng mại. Hiện nay thị
trƣờng máy tính lớn do IBM chiếm 99%. So với các máy tính loại nhỏ nhƣ máy
tính cá nhân, máy tính lớn cũng nhƣ 1 chiếc xe tăng: vững chắc, có thể nhận
hàng ngàn lệnh cùng 1 lúc.
- Máy tính nhỏ (minicomputer)
Là loại máy tính nhiều ngƣời sử dụng, đƣợc thiết kế để đáp ứng các yêu cầu
công việc cho một cơng ty nhỏ. Máy tính mini mạnh hơn máy tính cá nhân
7


nhƣng khơng mạnh bằng máy tính lớn. Nói chung có khoảng từ 4 đến 100 ngƣời
có thể sử dụng máy tính mini cùng một lúc.
- Máy tính cá nhân (Personal computer - PC)
Là một loại máy vi tính nhỏ với giá cả, kích thƣớc và sự tƣơng thích của nó
khiến nó hữu dụng cho từng cá nhân

2.3. Các lĩnh vực ứng dụng của máy tính
Trong các lĩnh vực khoa học và đời sống, máy tính số có thể đƣợc sử dụng trong
3 mục đích sau:
- Máy tính dùng để xử lý dữ liệu
Một máy tính có thể đƣợc coi nhƣ là một bộ xử lý dữ liệu, ví dụ nhƣ để tính tổng
số tiền cơng phải trả cho từng nhân viên trong cơ quan. Mục đích của chƣơng
trình ở đây là dùng các dữ liệu nhập vào, xử lý tính toán chúng rồi lƣu trữ các
kết quả vào bộ nhớ, các kết quả đó có thể hiện lên màn hình, in ra giấy in hoặc
lƣu trữ vào đĩa
- Máy tính là một xử lý số
Máy tính thƣờng dùng nhiều thời gian cho việc xử lý các dữ liệu dƣới dạng các
ký hiệu biểu diễn cho các thơng tin, hoặc có khi máy tính lại đƣợc sử dụng trong
những ứng dụng liên quan đến một số lƣợng rất lớn các phép tính số học đơi khi
lên tới hàng tỉ phép tính cho một cơng việc, lúc này máy tính đóng vai trị là một
bộ xử lý số. các máy tính dùng trong xử lý số thƣờng là các máy mạnh, có bộ xử
lý rất đắt, bộ nhớ chính có tốc độ truy cập rất cao và các thiết bị ngoại vi cùng
bộ nhớ ngồi tƣơng đối hiện đại.
- Máy tính dùng trong đo lƣờng và điều khiển tự động
Do giá thành ngày càng rẻ, máy tính ngày nay cịn đƣợc đặt ở trung tâm của
nhiều hệ thống điều khiển tự động. Khi sử dụng nhƣ một phần tử điều khiển,
máy tính thƣờng đƣợc gắn vào một hệ thống lớn hơn và ngƣời sử dụng thƣờng
không thấy đƣợc cụ thể là đã có một máy tính trong đó.
3. Các hệ thống số
3.1.

Ngun lý của việc viết số

Một số đƣợc viết bằng cách đặt kề nhau các ký hiệu, đƣợc chọn trong một tập
hợp xác định. Mỗi ký hiệu trong một số đƣợc gọi là số mã (số hạng, digit).
Thí dụ, trong hệ thống thập phân (cơ số 10) tập hợp này gồm 10 ký hiệu rất quen

thuộc, đó là các con số từ 0 đến 9:
8


S10 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Khi một số gồm nhiều số mã đƣợc viết, giá trị của các số mã tùy thuộc vị trí của
nó trong số đó. Giá trị này đƣợc gọi là trọng số của số mã
Thí dụ số 1998 trong hệ thập phân có giá trị xác định bởi triển khai theo đa thức
của 10:
199810 = 1x103 + 9x102 +9x101 + 8x100 = 1000 + 900 + 90 + 8
Trong triển khai, số mũ của đa thức chỉ vị trí của một ký hiệu trong một số với
qui ƣớc vị trí của hàng đơn vị là 0, các vị trí liên tiếp về phía trái là 1, 2, 3, ... .
Nếu có phần lẻ, vị trí đầu tiên sau dấu phẩy là -1, các vị trí liên tiếp về phía phải
là -2, -3, ... .
Ta thấy, số 9 đầu tiên (sau số 1) có trọng số là 900 trong khi số 9 thứ hai chỉ là
90.
Có thể nhận xét là với 2 ký hiệu giống nhau trong hệ 10, ký hiệu đứng trƣớc có
trọng số gấp 10 lần ký hiệu đứng ngay sau nó. Điều này hồn tồn đúng cho các
hệ khác, ví dụ, đối với hệ nhị phân ( cơ số 2) thì tỉ lệ này là 2.
Tổng quát, một hệ thống số đƣợc gọi là hệ b sẽ gồm b ký hiệu trong một tập
hợp:
Sb = {S0, S1, S2, . . ., Sb-1}
Một số N đƣợc viết:
Sẽ có giá trị:

N = (an-1an-2. . .ai . . .a0 , a-1a-2 . . .a-m)b với ai ∈ Sb

N = an-1bn-1 + an-2bn-2 + . . .+ aibi +. . . + a0b0 + a-1 b-1 + a-2 b-2 +. . .+ a-mb-m=

n1


a b
m

i

i

aibi chính là trọng số của một ký hiệu trong Sb ở vị trí thứ i.
- Hệ cơ số 10 (thập phân, Decimal system)
Hệ thập phân là hệ thống số rất quen thuộc, gồm 10 số mã nhƣ nói trên.
Dƣới đây là vài ví dụ số thập phân:
3

2

1

0

N = 199810 = 1x10 + 9x10 + 9x10 + 8x10 = 1x1000 + 9x100 + 9x10 + 8x1
0

-1

-2

N = 3,1410 = 3x10 + 1x10 +4x10 = 3x1 + 1x1/10 + 4x1/100
- Hệ cơ số 2 (nhị phân, Binary system)
9



Hệ nhị phân gồm hai số mã trong tập hợp
S2 = {0, 1}
Mỗi số mã trong một số nhị phân đƣợc gọi là một bit (viết tắt của binary digit).
Số N trong hệ nhị phân:
N = (an-1an-2. . .ai . . .a0 , a-1a-2 . . .a-m)2 (với ai∈ S2)

Có giá trị là:

n-1

N = an-12

i

0

-1

-2

+ . . .+ ai2 +. . . + a02 + a-1 2 + a-2 2 + . . .+ a-m2

-m

an là bit có trọng số lớn nhất, đƣợc gọi là bit MSB (Most significant bit) và a-m là
bit có trọng số nhỏ nhất, gọi là bit LSB (Least significant bit).
3


2

1

0

-1

Ví dụ: N = 1010,12 = 1x2 + 0x2 + 1x2 + 0x2 + 1x2 = 10,510
- Hệ cơ số 8 (bát phân, Octal system)
Hệ bát phân gồm tám số trong tập hợp
S8 = {0,1, 2, 3, 4, 5, 6, 7}.
Số N trong hệ bát phân:
N = (an-1an-2. . .ai . . .a0 , a-1a-2 . . .a-m)8 (với ai ∈ S8)

Có giá trị là:

n-1

N = an-18

+ an-28

n-2

i

0

-1


-2

+. . + ai8 . . .+a08 + a-1 8 + a-2 8 +. . .+ a-m8

3

2

1

0

-m

-1

Ví dụ: N = 1307,18 = 1x8 + 3x8 + 0x8 + 7x8 + 1x8 = 711,12510
- Hệ cơ số 16 (thập lục phân, Hexadecimal system)
Hệ thập lục phân đƣợc dùng rất thuận tiện để con ngƣời giao tiếp với máy tính,
hệ này gồm mƣời sáu số trong tập hợp
S16 ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F }
(A tƣơng đƣơng với 1010 , B =1110 , . . . . . . , F=1510) .
Số N trong hệ thập lục phân:
N = (anan-1an-2. . .ai . . .a0 , a-1a-2 . . .a-m)16 (với ai∈ S16)

Có giá trị là:

10



n

N = an 16 + an-116
16
m

n-1

+ an-216

n-2

i

0

-1

-2

+. . + ai16 . . .+a016 + a-1 16 + a-2 16 +. . .+ a-

-m

Ngƣời ta thƣờng dùng chữ H (hay h) sau con số để chỉ số thập lục phân.
Ví dụ:
3

2


1

0

-1

N = 20EA,8H = 20EA,816 = 2x16 + 0x16 + 14x16 + 10x16 + 8x16 =4330,510
3.2.

Biến đổi qua lại giữa các hệ thống số

Khi đã có nhiều hệ thống số, việc xác định giá trị tƣơng đƣơng của một số trong
hệ này so với hệ kia là cần thiết. Phần sau đây cho phép ta biến đổi qua lại giữa
các số trong bất cứ hệ nào sang bất cứ hệ khác trong các hệ đã đƣợc giới thiệu.
- Đổi một số từ hệ b sang hệ 10
Để đổi một số từ hệ b sang hệ 10 ta triển khai trực tiếp đa thức của b
Một số N trong hệ b:
N = (an-1an-2. . .ai . . .a0 , a-1a-2 . . .a-m)b với ai ∈ Sb

Có giá trị tƣơng đƣơng trong hệ 10 là:
n-1

N = an-1b

i

0

-1


-2

-m

+. . .+ aib +. . . + a0b + a-1 b + a-2 b +. . .+ a-mb .

Ví dụ: Đổi số 10110,112 sang hệ 10
4

2

-1

-2

10110,112 = 1x2 + 0 + 1x2 + 1x2 + 0 + 1x2 + 1x2 = 22,7510
- Đổi số 4BE,ADH sang hệ 10
2

1

0

-1

-2

4BE,ADH=4x16 +11x16 +14x16 +10x16 +13x16 = 1214,67510
- Đổi một số từ hệ 10 sang hệ b

Đây là bài tốn tìm một dãy ký hiệu cho số N viết trong hệ b.
Tổng quát, một số N cho ở hệ 10, viết sang hệ b có dạng:
N = (an-1 . . .a0 , a-1a-2 . . .a-m)b = (anan-1 . . .a0)b + (0,a-1a-2 . . .a-m)b
Trong đó
(an-1 . . .a0)b = PE(N) là phần nguyên của N
và (0,a-1a-2 . . .a-m)b = PF(N) là phần lẻ của N
11


Phần nguyên và phần lẻ đƣợc biến đổi theo hai cách khác nhau:
* Phần nguyên:
Giá trị của phần nguyên xác định nhờ triển khai:
PE(N) = an-1b

n-1

1

0

+ . . .+ a1b + a0b

Hay có thể viết lại
PE(N) = (an-1b

n-2

+ . . .+ a1)b + a0

Với cách viết này ta thấy nếu chia PE(N) cho b,

ta đƣợc thƣơng số là PE’(N) = (an-1b

n-2

+ . . .+ a1) và số dƣ là a0.

Vậy số dƣ của lần chia thứ nhất này chính là số mã có trọng số nhỏ nhất (a0) của
phần nguyên.
Lặp lại bài toán chia PE’(N) cho b:
PE’(N) = an-1b

n-2

+ . . .+ a1= (an-1b

n-3

+ . . .+ a2)b+ a1

Ta đƣợc số dƣ thứ hai, chính là số mã có trọng số lớn hơn kế tiếp (a1)
và thƣơng số là PE”(N)= an-1b

n-3

+ . . .+ a2.

Tiếp tục bài toán chia thƣơng số có đƣợc với b, cho đến khi đƣợc số dƣ của phép
chia cuối cùng, đó chính là số mã có trọng số lớn nhất (an-1)
* Phần lẻ:
Giá trị của phần lẻ xác định bởi:

-1

-2

PF(N) = a-1 b + a-2 b +. . .+ a-mb

-m

Hay viết lại
-1

-1

PF(N) = b (a-1 + a-2 b +. . .+ a-mb

-m+1

)
-1

Nhân PF(N) với b, ta đƣợc : bPF(N) = a-1 + (a-2 b +. . .+ a-mb

-m+1

) = a-1+ PF’(N).

Vậy lần nhân thứ nhất này ta đƣợc phần nguyên của phép nhân, chính là số mã
có trọng số lớn nhất của phần lẻ (a-1) (số a-1 này có thể vẫn là số 0).
PF’(N) là phần lẻ xuất hiện trong phép nhân.


12


Tiếp tục nhân PF’(N) với b, ta tìm đƣợc a-2 và phần lẻ PF”(N).
Lặp lại bài toán nhân phần lẻ với b cho đến khi kết quả có phần lẻ bằng khơng,
ta sẽ tìm đƣợc dãy số (a-1a-2 . . .a-m).
Chú ý: Phần lẻ của số N khi đổi sang hệ b có thể gồm vơ số số hạng (do
kết quả của phép nhân ln khác 0), điều này có nghĩa là ta khơng tìm đƣợc một
số trong hệ b có giá trị đúng bằng phần lẻ của số thập phân, vậy tùy theo yêu cầu
về độ chính xác khi chuyển đổi mà ngƣời ta lấy một số số hạng nhất định.
Ví dụ:
* Đổi 25,310 sang hệ nhị phân
Phần nguyên:

25 : 2 = 12 dƣ 1
12 : 2 = 6 dƣ 0
6 : 2 = 3 dƣ 0

⇒ a0 = 1

⇒ a1 = 0

⇒ a2 = 0

3 : 2 = 1 dƣ 1

⇒ a3 = 1

thƣơng số cuối cùng là 1 cũng chính là bit a4:
Vậy PE(N) = 11001

Phần lẻ:

⇒ a4 = 1

0,3 * 2 = 0,6 ⇒ a-1 = 0

0,6 * 2 = 1,2 ⇒ a -2 = 1

0,2 * 2 = 0,4 ⇒ a-3 = 0

0,4 * 2 = 0,8 ⇒ a-4 = 0

0,8 * 2 = 1,6 ⇒ a-5 = 1 . . .

Nhận thấy kết quả của các bài tốn nhân ln khác khơng, do phần lẻ của lần
nhân cuối cùng là 0,6, đã lặp lại kết quả của lần nhân thứ nhất, nhƣ vậy bài tốn
khơng thể kết thúc với kết quả đúng bằng 0,3 của hệ 10.
Giả sử bài toán yêu cầu lấy 5 số lẻ thì ta có thể dừng ở đây và
PF(N) = 0,01001.
Kết quả cuối cùng là:

25,310 = 11001.010012

* Đổi 1376,8510 sang hệ thập lục phân
13


×