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

Cấu trúc máy tính và lập trình hợp ngữ bài giảng dành cho sinh viên Đại học, Cao đẳng

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.7 MB, 165 trang )

Ch

ng 1. T NG QUAN V MÁY TÍNH ĐI N T

1.1 Gi i thi u
1.1.1 L ch s phát triển
1.1.1.1 Máy tính c khí
T xa x a con ng

i đã luôn phải tính toán. Để nh s gia súc trong đàn, ng

ta đã đ m chúng và dùng s i dây có các gút các nút. Để tính toán ng
đã s dụng bàn tính… Nhà khoa học thiên tài ng
(năm 1642) vì th

i

i Trung Hoa

i Pháp Blaise Pascal năm 19 tu i

ng cha (cha c a ông v n là m t nhân viên thu thu ) đã xây dựng

m t máy đầu tiên thực hi n công vi c tính toán. Đây là thi t b hoàn toàn bằng c
khí s dụng các bánh răng. Máy tính c a Blaise Pascal ch thực hi n đ

c phép toán

c ng bằng cách ấn vào phím các con s và dùng m t tay quay. Năm 1671 nhà toán
học ng


i Đ c Baron Gottfried Wilherm von Leibniz xây dựng m t máy c khí và

hoàn thi n vào năm 1694. Chi c máy này không nh ng thực hi n phép tính c ng mà
còn thực hi n đ

c phép tính nhân bằng cách c ng và lần l

c chuyển s . Năm

1820 Chales Xavier Thomas đã phát triển chi c máy tính c thành công v mặt
th

ng m i đầu tiên thực hi n đ
Charles Babbage, giáo s

ng

c b n phép tính c ng tr nhân chia.
toán học tr

ng Cambridge c a Anh đ

c nhi u

i gọi là cha đẻ c a Computer nh hai phát ki n vĩ đ i c a ông v 2 kiểu máy

tính c khác nhau. Ông đã thi t k và xây dựng máy sai phân (difference engine).
Nó giải đ

c ph


ng trình đa th c bằng ph

ng pháp sai phân. Năm 1834,

Babbage thi t k và xây dựng máy phân tích (analytical engine). Máy phân tích có
các thành phần c bản c a máy tính hi n đ i: Thành phần nhập (đầu đọc thẻ đục l ),
b đi u khiển dùng để đi u khiển hay lập trình cho b x lý. B x lý (hay tính toán
– calculator). B l u tr (b nh ), Thành phần xuất (in và đục l ). B tính toán có
thể nhận các toán h ng t b l u tr , thực hi n phép toán c ng, tr , nhân hay chia
chúng và trả k t quả v b l u tr . Tuy nhiên chi c máy này c a Ông không thể
hoàn thành vì kỹ thuật ch t o th i đó không cho phép. Phát triển ti p theo c a máy
phân tích là máy đa năng. Máy đọc l nh t các thẻ đục l và thực thi chúng. Bằng
cách đục l m t ch

ng trình khác trên thẻ nhập, máy phân tích có khả năng thực

hi n các tính toán khác. Lập trình viên máy tính đầu tiên là Ada Lovelace đã t o ra

1


phần m m cho máy phân tích.
Vào nh ng năm 1930, Konrad Zuse xây dựng m t chu i các máy tính toán tự
đ ng bằng cách s dụng các r le t . Sau đó, John Atanasoff và George Stibbitz đã
thi t k các máy tính (calculator). Máy c a Atanasoff s dụng s nh phân và có các
tụ đi n làm cho b nh đ

c làm t


do công ngh phần c ng không t

i theo chu kỳ. Tuy nhiên, máy này b thất b i

ng x ng v i ý t

ng thi t k .

Năm 1944, Aiken hoàn tất máy tính Mark 1, có tất cả 72 t , m i t 23 s thập
phân và có th i gian m t chu kỳ là 6 giây. Vi c nhập và xuất thực hi n bằng các
băng giấy đục l .
1.1.1.2 Máy tính dùng đèn đi n t - th h th nhất
Năm 1943, máy tính s đi n t đầu tiên trên th gi i bắt đầu ho t đ ng, máy
Colossus. Colossus do Alan Turing thi t k nhằm thực hi n giải mã các thông đi p
đã mã hóa trong chi n tranh th gi i th 2. Cũng trong năm 1943, Mauchley và
Presper Eckert bắt đầu ti n hành xây dựng máy tính ENIAC (Electronic Numerical
Integrator And Computer). ENIAC g m 1800 đèn đi n t và 1500 r le, cân nặng 30
tấn, công suất tiêu thụ 140 KWh. Nó có tất cả 20 thanh ghi, m i thanh ghi có thể
l u tr m t s thập phân 10 ch s .
Sau đó, John Von Neumann thi t k máy IAS dựa c s trên máy EDVAC, là
m t phiên bản nâng cao c a ENIAC. Máy von Neumman có 5 phần c bản: b nh ,
đ n v s học và logic (ALU – Arithmetich Logic Unit), đ n v đi u khiển ch

ng

trình, thi t b nhập và thi t b xuất. B nh có tất cả 4096 t , m i t l u tr 40 bit.
M i t ch a 2 l nh 20 bit hay m t s nguyên có dấu 39 bit. M i l nh 20 bit g m có
8 bit xác đ nh lo i l nh và 12 bit xác đ nh 1 trong 4096 t nh .
Vào cùng th i gian c a máy IAS, các nhà nghiên c u


MIT cũng đang xây

dựng m t máy tính, máy Whirlwind 1. Nó có chi u dài t là 16 bit và đ

c thi t k

để có thể đi u khiển v i th i gian thực.
1.1.1.3 Máy tính transistor – th h th hai
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 đ

c xây dựng t i MIT, máy TX-0 (Transistorized experimental computer 0),

2


có 16 bit, t

ng tự nh Whirlwind 1.

Năm 1961, máy tính PDP-1 xuất hi n có 4KB b nh , chi u dài t là 18 bit và
khoảng th i gian c a m t chu kỳ là 5 µs. Vài năm sau, PDP-8 ra đ 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.
Trong khi đó, 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 32KB và chi u dài t là 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, phép 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.
1.1.1.4 Máy tính IC – th h th ba
Vi m ch (IC – Integrated Circuit) đ

c phát minh cho phép đặt vài chục

transistor trong m t chip đ n. Vi c này giúp cho các máy tính xây dựng trên IC tr
nên nh h n, nhanh h n và rẻ h n so v i các máy tính transistor. Lúc này, IBM gi i
thi u m t sản phẩm đ n, máy System 360, đ

c thi t k dựa trên các vi m ch. Đ i

m i quan trọng trong 360 là khả năng đa lập trình (multiprogramming), có vài
ch

ng trình trong b nh đ ng th i để khi m t ch

d li u thì ch

ng trình đang ch xuất/nhập

ng trình khác có thể tính toán. M t đặc tr ng khác c a 360 là không
24

gian đ a ch l n (th i điểm lúc đó), v i 2 byte nh (16 MB).
1.1.1.5 Máy tính cá nhân và VLSI – th h th t
Vào thập niên 80, vi m ch VLSI (Very Large Scale Integrate) có khả năng ch a
vài chục ngàn, vài trăm ngàn và vài tri u transistor trên m t chip đ n đã đ


c ch

t o. Sự phát triển này dẫn đ n vi c sản xuất các máy tính nh h n và nhanh h n. Do
đó, giá cả đã giảm xu ng đ n m c m t cá nhân có thể s h u m t máy tính. Các
máy tính cá nhân th
t

ng dùng cho vi c x lý t , các bảng tính và các ng dụng

ng h khác.

Quy luật Moore: Năm 1965 Gordon Moore phát hiện ra một quy luật
quan trọng trong xu hướng phát triển của máy tính. Ông nhận thấy trong

3


vòng 18 đến 24 tháng thì năng lực tính toán, lưu trữ…của máy tính sẽ tăng
gấp 2 lần. Trong 26 năm con số tranzitor trong 1 con chip đã tăng hơn 3.200
lần (từ 2.300 tranzitor ở chip 4004 năm 1971 tăng lên hơn 7,5 triệu tranzitor
trên Pentium II). Quy luật này trở thành cơ sở cho rất nhiều dự báo về hiệu
suất của ngành công nghiệp máy tính
1.1.2 Phân lo i máy tính
Máy tính ngày nay có thể chia thành 5 lo i: Siêu máy tính, Mainframe, siêu
máy tính mini, máy tính mini, máy tính cá nhân.
Máy tính mini s dụng trong các ng dụng th i gian thực nh đi u khiển không
l u hay tự đ ng hóa. Siêu máy tính mini dùng trong các h th ng chia sẻ th i gian,
các máy ch . Mainframe dùng trong các nhóm công vi c l n hay đòi h i c s d
li u l n, … Siêu máy tính đ


c thi t k đặc bi t để cựa đ i hóa s các thao tác dấu

chấm đ ng trong 1s (FLOP – floating point operations per second). Máy tính nào có
t cđ d

i 1 GF/s thì không đ

c xem là siêu máy tính.

Máy tính cá nhân có thể chia ra làm 3 lo i: Máy tính để bàn, máy tính xách tay
và máy tính b túi.
1.2 T ch c h th ng máy tính
1.2.1 S đ cấu trúc chung
1.2.1.1 Nguyên lý máy Von Neumann
Vào nh ng năm c a thập niên 40 c a th kỷ 20, máy tính đi n t s bắt đầu
đ

c s dụng. Có 2 dòng máy là máy Turing và máy Von Neumann.
Đ i di n cho máy Turing có máy Colossus. Máy này do Alan Turing thi t k

nhằm thực hi n vi c giải mã các thông đi p đã mã hóa trong chi n tranh th gi i th
2. Vào năm 1943, Mauchley và Presper Eckert bắt đầu ti n hành xây dựng máy tính
ENIAC (Electronic Numerical Integrator And Computer). ENIAC g m 1800 đèn
đi n t và 1500 r le, cân nặng 30 tấn, công suất tiêu thụ 140 KWh. Nó có tất cả 20
thanh ghi, m i thanh ghi có thể l u tr m t s thập phân 10 ch s .
Dòng máy tính Von Neumann đ

c k th a và phát triển

hầu h t các th h


máy tính sau này. Đ i di n cho máy Von neumann th i đó có máy IAS dựa c s
trên máy EDVAC, là m t phiên bản nâng cao c a ENIAC. Máy IAS có b nh g m

4


4096 word, m i word l u tr 40 bit. M i word ch a 2 l nh 20 bit hay m t s
nguyên có dấu 39 bit. M i l nh 20 bit g m có 8 bit xác đ nh lo i l nh và 12 bit xác
đ nh 1 trong 4096 word nh . Máy Von Neumman có 5 phần c bản: b nh , b s
học và logic (ALU – Arithmetich Logic Unit), đ n v đi u khiển ch

ng trình, thi t

b nhập và thi t b xuất. Hình 1.1 là s đ cấu trúc c a máy Von Neumann.
B nh

Đ nv
đi u khiển
(CU)

Thi b nhập (Input)

Đ n v làm
toán
(ALU)

Thi t b xuất (Output)

Hình 1.1: Máy Von Neumman

Nguyên tắc ho t đ ng c a máy Von neumann:
-

Ch

ng trình đi u khiển và x lý d li u cũng đ

tr trong b nh và đ
-

c xem là ch

c xem là Data và đ

cl u

ng trình l u tr .

B nh chia làm nhi u ô, m i ô có 1 đ a ch để có thể chọn lựa trong quá
trình đọc/ghi d li u (nguyên lý đ nh đ a ch )

-

Các l nh đ

c thực hi n tuần tự nh vào b đ m ch

ng trình (thanh ghi

l nh) nằm bên trong b x lý.

-

Ch

ng trình có thể biểu di n d

i d ng s và đặt vào trong b nh .

1.2.1.2 S đ t ch c t ng quát c a máy vi tính
Hình 1.2 là s đ kh i ki n trúc chung c a m t máy vi tính

5


B nh trong

RAM

ROM

CPU

BUS h th ng

Giao ti p nhập

Giao ti p xuất

Thi t b nhập
-Bàn phím

-Mouse
-Máy quét
- đĩa

Thi t b xuất
-Màn hình
-Máy in
-máy v
- đĩa

Hình 1.2: Sơ đ kiến trúc chung của máy vi tính
1.2.2 Ch c năng c b n c a các b phận
-CPU (Central Processing Unit): Là b não c a máy tính bao g m 2 thành
phần đó là: b s học và logic (ALU) và b đi u khiển (CU):
Bộ số học và logic (Arithmetic and logic unit – ALU):
Hầu h t các ho t đ ng tính toán cuả máy tính đ

c thực hi n t i b s học và

logic. Mọi phép toán s học và logic nh : c ng; tr ; nhân; chia hay so sánh 2 s
đ uđ

c thực hi n t i ALU. Không phải tất cả các toán h ng cần cho vi c tính toán

phải

trong b nh chính. Vi x lý có nh ng phần t nh t c đ cao gọi là các

thanh ghi (registers). Các thanh ghi dùng để l u gi nh ng toán h ng đ
th


ng xuyên trong khi tính toán. M i thanh ghi có thể l u gi m t word s li u.

Th i gian truy xuất thanh ghi là t
nh

c dùng

5 đ n 10 ns (nhanh h n th i gian truy xuất b

chính)
-Bộ điều khiển (control unit - CU):
B đi u khiển có ch c năng thực hi n vi c ph i h p ho t đ ng c a tất cả các

b phận khác nh : B s học và logic, b nh , các thi t b ngo i vi…sao cho nh p
nhàng, đ t hi u quả cao. B đi u khiển m t mặt g i các tín hi u đi u khiển đ n các
b phận, mặt khác nó luôn luôn theo dõi tr ng thái c a các b phận đó để đ a ra

6


nh ng tín hi u đi u khiển h p lý. Ví dụ vi c chuyển s li u gi a b nh và các thi t
b ngo i vi phải đ

c đi u khiển b i b đi u khiển. B đi u khiển t o ra tín hi u

th i gian để các hành đ ng c a các b phận xảy ra đúng vào th i điểm mong đ i.
Có thể nói rằng b đi u khiển là m t đ n v đ c lập và nó đi u khiển tất cả các b
phận khác trong máy. Trên thực t , m ch đi n cuả b đi u khiển đ
khắp n i trong máy. M t tập h p các đ


c phân b

đ n

ng dây đi u khiển (control bus) mang các

tín hi u th i gian. Các tín hi u này dùng để đ ng b ho t đ ng cuả tất cả các b
phận trong máy.
ALU và b đi u khiển th

ng là các thành phần có t c đ ho t đ ng nhanh

h n các thành phần khác n i v i máy tính. Đi u này cho phép s dụng ch m t vi
x lý để đi u khiển m t s
nh

l n các thi t b ngo i vi có t c đ ho t đ ng khác nhau

b nh ngoài, màn hình, máy in …
-Bộ nhớ (memory)
Ch c năng cuả b nh là l u gi s li u và ch

ng trình. Có 2 lo i b

nh :

b nh s cấp (b nh chính hay còn gọi là b nh trong - Primary Memory – Main
Memory- Internal Memory) và b nh th cấp (b nh ngoài hay còn gọi là b nh
phụ -Secondary Memory - Auxiliary Memory - External Memory).

B nh s cấp hay b nh chính (Main memory) có t c đ rất nhanh. B nh
chính bao g m m t s l n các ô nh bán dẫn. M i ô nh ch a đ
tin. Vi c đọc hoặc vi t thông th

ng đ

c ti n hành v i 1 nhóm ô nh gọi là t nh

hay word nh (memory word). B nh chính đ
m t word (n bit) có thể đ

c m t bit thông

c t ch c sao cho n i dung c a

c truy xuất bằng l nh đọc hoặc vi t b nh . S các bit

trên m t word nh gọi là đ dài word (word length) c a máy tính. Đ dài word c a
các máy tính có thể là 8,16, 32 hoặc 64 bit.
T ng s ô nh trên b nh gọi là dung l

ng (capacity) b nh . Dung l

ng

b nh trong c a PC có thể là vài MB đ n hàng trăm MB. Hi n nay đã là TB.
Để có thể truy xuất t i mọi word nh trên b nh , m i word nh đ
đ a ch (Address) riêng bi t. Word nh trong b nh có thể đ
cách ch ra đ a ch và l nh đọc vi t t


ng ng. S li u đ

7

c gán m t

c truy xuất bằng

c x lý theo m t word,


b i c a word hoặc m t phần c a word. Khi b nh đ
m t word c a s li u đ
Ch
đ

c đọc t b nh ra hoặc đ

c truy xuất, thông th

ng

c vi t vào b nh .

ng trình phải nằm trên b nh khi đang thi hành. L nh và s li u có thể

c vi t vào b nh hay đọc ra d

i sự đi u khiển c a vi x lý. Th i gian cần thi t


để truy xuất t i m t v trí nh

trong b

nh

nh (memory access time = Tacc). Các b nh

gọi là th i gian truy xuất b

có Tacc không phụ thu c v trí nh

gọi là b nh truy xuất ngẫu nhiên (Random Access Memories = RAM). Tacc có
giá tr vài chục ns (nano second) trong các máy tính hi n đ i.
Mặc dù b nh chính rất quan trọng, nh ng giá thành l i quá cao. Vì vậy ng
ta dùng thêm b nh phụ (secondary memory) khi mu n l u gi m t l
thông tin không s dụng th

ng xuyên. B

i

ng l n

nh phụ có thể là đĩa t (magnetic

disks) hay đĩa quang (Compact Disc), băng t …
-Thiết bị nhập (input device)
Máy tính nhận thông tin đã đ


c mã hóa thông qua thi t b nhập. Quá trình này

gọi là đọc s li u. Thi t b nhập th
board đ

ng dùng nhất là bàn phím (key board). Key

c n i sao cho khi m t phím đ

đ ng chuyển thành mã nh phân và đ

c nhấn, ký tự hoặc s t

ng ng đ

c tự

c g i trực ti p t i b nh hoặc vi x lý. Có

m t s thi t b nhập khác nh : chu t (mouse), máy quét (scanner)...
-Thiết bị xuất (output device)
Thi t b xuất làm vi c theo nguyên tắc ng
c a thi t b xuất là g i các k t quả đã đ

c l i v i thi t b nhập. Ch c năng

c x lý ra ngoài. M t s thi t b nh màn

hình, máy in (printer), máy v …
Tóm l i, ho t đ ng t ng quát cuả m t máy tính có thể tóm tắt nh sau:

• Máy tính nhận thông tin d
nhập. Thông tin đ
• Thông tin đ
cuả ch

i d ng ch

c l u gi trong b nh máy tính.
c l u gi trong b nh đ

ng trình. T i ALU, thông tin đ

• Thông tin đã đ

ng trình và s li u thông qua thi t b

c x lý đ

c lấy vào ALU d

i sự đi u khiển

c x lý.

c đ a ra ngoài thông qua thi t b xuất.

• Tất cả các ho t đ ng bên trong máy tính đ

8


c ch dẫn b i b đi u khiển.


-Bus hệ thống: tập h p các đ

ng dây kim lo i dẫn đi n để CPU có thể liên k t

v i các b phận khác.
1.2.3 Quá trình thực hi n l nh
1.2.3.1 Chu kỳ l nh
Máy tính đ
vụ cho tr

c đi u khiển b i các l nh (instructions). Để thực hi n m t nhi m

c, m t ch

gi trong b nh

ng trình t

ng ng bao g m m t tập các l nh s đ

chính. Các l nh riêng r s đ

c đọc t b nh vào vi x lý. M i

l nh s thực hi n m t thao tác đã đ nh sẳn. S li u l u gi trên b nh đ
dụng nh


cl u
cs

các toán h ng (operands).

Vi c chuyển s li u gi a b nh chính và vi x lý đ

c bắt đầu bằng vi c vi x

lý g i đ a ch c a ô nh cần truy xuất và tín hi u đi u khiển h p lý t i b nh . S
li u sau đó s đ

c chuyển gi a b nh và vi x lý m t cách t

Cùng v i ALU và b đi u khiển, vi x

ng ng.

lý còn có các thanh ghi dùng cho vi c

l u tr t m th i s li u. Thanh ghi l nh (IR - Instruction Register) gi
đ

c thực hi n. B đ m ch

c a l nh s đ

ng trình (PC - Program Counter) ch a đ a ch b nh

c thực hi n. Sau khi thực hi n l nh, n i dung cuả thanh PC s đ


cập nhật t i đ a ch c a l nh ti p theo. Bình th
n u ch

l nh đang
c

ng n i dung cuả PC s tăng lên 1

ng trình không b m t l nh nhảy hay l nh ngắt nào khác.

1.2.3.2 Ti n trình x lý l nh
Có hai thanh ghi dùng để giao ti p v i b nh là: Thanh ghi đ a ch b nh
(MAR Memory Address Register) và thanh ghi s li u b nh (MDR Memory Data
Register). MAR ch a đi ch cuả ô nh cần truy xuất, còn MDR gi n i dung c a
s li u cần chuyển (gi a Vi x lý và b nh ). Các b
hi n 1 ch
ch
đ

ng trình nh sau: Ch

c ho t đ ng c bản khi thực

ng trình ch a trong b nh chính. Vi c thực thi

ng trình bắt đầu khi PC ch t i v trí nh mà l nh đầu tiên c a ch
c l u gi . N i dung c a PC đ

đọc đ


ng trình

c chuyển t i MAR và m t tín hi u đi u khiển

c g i t i b nh . Sau th i gian cần cho vi c truy xuất b nh , n i dung c a

t (word) nh (l nh đầu tiên c a ch
dung c a MDR đ

ng trình) đ

c đọc vào MDR. Ti p theo, n i

c chuyển đ n IR. T i th i điểm này l nh đã sẳn sàng cho vi c

giải mã và thực hi n . N u l nh là m t phép toán mà ALU phải tính thì cần phải lấy

9


các toán h ng cần thi t. N u toán h ng đã có sẵn bên trong b nh (các toán h ng
cũng có thể đ

c ch a trong các thanh ghi dùng chung) thì nó phải đ

c đọc vào

ALU bằng cách g i đ a ch toán h ng t i MAR và kh i t o chu trình đọc (read
cycle). Toán h ng sau đó đ


c đọc t b nh vào MDR r i chuyển t i ALU. Sau

khi m t hoặc nhi u toán h ng đ

c đọc theo cách này, ALU có thể thực hi n phép

toán. N u k t quả phép toán đ

c l u tr trong b nh thì nó đ

Đ a ch ô nh t i đó k t quả đ

c l u tr

(write cycle) s đ

s đ

c g i t i MDR.

c g i t i MAR và chu trình vi t

c bắt đầu. Trong khi m t l nh đang đ

c thực hi n, n i dung

cuả PC s tăng lên sao cho nó ch t i đ a ch c a l nh k ti p. Ngay sau khi l nh
hi n hành đ


c hoàn tất, l nh m i s đ

c lấy vào vi x lý để giải mã và thực hi n.

Cùng v i vi c chuyển s li u gi a b nh chính và vi x lý, máy tính truy xuất
s li u t các thi t b vào và g i k t quả đ n thi t b ra. Do đó có m t s l nh máy
cho phép chuyển s li u vào ra.
Vi c thực hi n m t ch
ngo i vi yêu cầu đ

ng trình có thể b ngắt n u m t hoặc nhi u thi t b

c phục vụ. Tín hi u ngắt đ

c t o ra b i các thi t b ngo i vi để

yêu cầu vi x lý phải phục vụ chúng. Ngắt cũng đ

c t o ra b i l nh INT trong các

ch

ng trình. Vi x lý s cung cấp m t d ch vụ theo yêu cầu bằng cách thi hành m t

ch

ng trình con phục vụ ngắt (Interrupt service routine). Tr

tr ng thái bên trong c a vi x lý phải đ


c cất gi

dung cuả PC, các thanh ghi đa ch c năng và m t s
cất gi . Khi ch
chính s đ

c khi phục vụ ngắt,

vào b nh . Bình th

thông tin đi u khiển phải đ

ng trình con phục vụ ngắt k t thúc, tr ng thái c a ch

c phục h i sao cho ch

ng, n i
ng trình

ng trình chính đã b ngắt có thể ti p tục.

1.3 Gi i thi u t ch c bên trong c a máy vi tính
1.3.1 S đ
Hình 1.3 là s đ cấu trúc c a 1 máy vi tính

10

c



B nh trong RAM

CPU
CU

B nh trong ROM
BIOS

Chipset
bắc

ALU

B ngu n

Chipset
nam

Giao ti p IDE
( đĩa)

Khe cắm m r ng
PCI

Khe cắm card đ họa

Hình 1.3: Sơ đ cấu trúc máy vi tính
1.3.2 Cấu hình và các đặc tr ng kỹ thuật
Tuỳ theo công vi c mà ng
ng đ


tính th
-

i ta chọn máy tính có cấu hình phù h p. M t máy

c chú ý b i các thành phần sau:

Mainboard: Là lo i mainboard có chipset h tr các lo i CPU nào, t c đ
đ ng h máy là bao nhiêu?

-

CPU: Các thông s th

ng đ

c chú ý: Hãng sản xuất, lo i CPU, cache n i,

t cđ …
-

RAM: B nh trong th
l

-

ng đ

c chú ý b i các tham s : Lo i RAM; dung


ng; t c đ
đĩa c ng: Các thông s th

ng đ

c chú ý: Hãng sản xuất; dung l

ng;

t c đ quay…
-

đĩa quang: G m có các lo i CD; DVD…Các thông s th

ng đ

c chú ý

là: Hãng sản xuất; t c đ đọc ghi…
-

Màn hình: Các thông s th

ng đ

c chú ý: Là lo i màn hình; đ r ng; đ

phân giải; hãng sản xuất.
ng đ


-

Bàn phím: Các thông s th

c chú ý: Lo i bàn phím; Hãng sản xuất

-

Chu t: Các thông s : Lo i chu t; hãng sản xuất

11


Ch

ng 2. C

S

S

VÀ LOGIC

2.1. Các h th ng s dùng trong máy tính đi n t
Trong máy tính ng

i ta th

ng s dụng các h đ m sau:


- H hai (C s 2) hay còn gọi là h nh phân: Các con s c a h nh phân đ

c

biểu di n b i 2 ký s là: 0; 1.
-H m
phân đ

i (C s 10) hay còn gọi là h thập phân: Các con s trong h thập

c biểu di n b i 10 ký s là: 0; 1; 2; 3; 4; 5; 6; 7; 8; 9.

-H m

i sáu (C s 16) hay còn gọi là h thập lục phân: Các con s c a h

thập lục phân đ

c biểu di n b i 16 ký s là: 0; 1; 2; 3; 4; 5; 6; 7; 8; 9; A; B; C; D;

E; F.
Các h đ m trên đ u là h đ m theo v trí dựa trên c s c a các ký s . Giá tr
c a m t con s đ

c biểu di n b i 1 dãy các ký s , trong đó giá tr c a 1 ký s tuỳ

thu c vào v trí c a nó trong dãy.
Công th c t ng quát tính giá tr c a 1 con s trong 1 h đ m:
N u gọi:

- x là giá tr c a con s ; C là c s ; K là ký s
- i là v trí c a ký s tính t i dấu ngăn cách thập phân; n đ
phần nguyên; m đ

c tính cho

c tính cho phần lẻ.
n1

Ta có: x =

C

i  m

Để phân bi t các s trong các h đ m, ng

i

* Ki

i ta quy

c nh sau:

- Con s c a h thập phân k t thúc bằng D hoặc d hoặc có thể b qua
- Con s c a h nh phân k t thúc bằng B hoặc b
- Con s c a h thập lục phân k t thúc bằng H hoặc h.
Máy tính s dụng hai tr ng thái ng v i 0 và 1, nh vậy để biểu di n 1 s cần
quá nhi u ký s , cho nên ng


i ta th

ng dùng 1 ký s c a h thập lục phân để biểu

di n 1 nhóm 4 ký s c a h nh phân.
Bảng t

ng ng gi a nhóm 4 ký s c a h nh phân và h thập phân và h thập

lục phân:

12


Decimal

Hexa

Binary

Decimal

Hexa

Binary

0

0


0000

8

8

1000

1

1

0001

9

9

1001

2

2

0010

10

A


1010

3

3

0011

11

B

1011

4

4

0100

12

C

1100

5

5


0101

13

D

1101

6

6

0110

14

E

1110

7

7

0111

15

F


1111

2.2 Biểu di n thông tin trong máy tính đi n t
Máy tính s (Computer) là m t m ng đi n ph c t p, ho t đ ng trên nguyên tắc
có hay không có dòng đi n ch y trong t ng đo n m ch trong m ng đi n đó. D li u
đ

c ghi nh bằng các m ch đi n có khả năng thể hi n m t s tr ng thái xác đ nh.

M i m ch đi n nh vậy là m t tr ng thái nh căn bản. S giá tr m t phần t nh
căn bản có thể biểu di n cũng chính là s tr ng thái m ch đi n t o nên nó. Do khả
năng ch t o m ch, hi n nay các phần t nh trên máy tính th

ng đ

c thi t lập t

các m ch đi n có hai tr ng thái xác đ nh b i m c đi n áp cao và thấp. T

ng ng

v i hai tr ng thái c a m ch đi n, m i phần t nh mang m t trong hai giá tr là 0
hoặc 1. M t phần t nh nh vậy đ

c gọi là 1 bit. Bằng các thi t b đi n t ng

i

ta có thể ch t o các m ch thực hi n các phép toán logic NOT, AND, OR, XOR v i

bảng sự thật c a 2 phần t A và B có các tr ng thái 0 hoặc 1 nh sau:
A

B

NOT A

A AND B

A OR B

A XOR B

0

0

1

0

0

0

0

1

1


0

1

1

1

0

0

0

1

1

1

1

0

1

1

0


Trong máy tính để biểu di n đ

c nhi u tr ng thái h n, ng

nhóm các bit và có tên gọi nh sau:
- Nhóm 4 bit đ

c gọi là nibble

13

i ta th

ng dùng 1


- Nhóm 8 bit đ

c gọi là Byte

- Nhóm 16 bit đ

c gọi là Word

- Nhóm 32 bit đ

c gọi là double word (dword)

2.3 Các m ch đi n t s trong máy tính

2.3.1 B đ o pha.
Ký hi u trên bản v cho b đảo pha nh hình 2.1. Trong đó hình a) có hình thù
phân bi t, phần b) thể hi n các hình vuông góc.
1

1

a) Các ký hi u có hình
phân bi t v i ch th âm

a) Ký hi u nét vuông góc
v i ch th phân cực

Hình 2.1: Các ký hiệu logic tiêu chu n cho bộ đảo pha
+ Dụng cụ ch th âm và ch th phân cực:
Dụng cụ ch th âm có hình bọt bóng ch sự đảo pha khi nó xuất hi n

đầu vào

hoặc đầu ra c a phần t logic. Đầu ra có bọt bóng có nghĩa là m c 0 đang ho t đ ng
hoặc tr ng thái đầu ra đ

c xác nhận. N u không có bọt bóng

có nghĩa là m c 1 đang ho t đ ng hoặc tr ng thái đ

đầu vào hoặc đầu ra

c xác nhận.


Chi u phân cực hoặc dụng cụ ch th đ nh m c là 1 hình tam giác nh
ch ra sự đảo pha khi nó xuất hi n

đầu vào hoặc đầu ra. Khi nó xuất hi n

vào có nghĩa là m c thấp đang ho t đ ng hoặc tr ng thái đầu vào đã đ
Khi xuất hi n
ra đã đ

hình b
đầu

c xác nhận.

đầu ra thì có nghĩa là m c thấp đang ho t đ ng hoặc tr ng thái đầu

c xác nhận.

+ Thực hi n đảo pha:
Hình 2.2 thể hi n đầu ra c a 1 b đảo pha v i đầu vào là 1 xung và xung nhận
đ

c

đầu ra

14


t2

t1
Xung đầu ra

t1
t2
Xung đầu vào

Hình 2.2: Bộ đảo pha với xung đầu vào xung và xung đầu ra
+ Bảng sự thật c a b đảo pha:
Đầu vào

Đầu ra

Thấp (0)

Cao (1)

Cao (1)

Thấp (0)

+ M t ng dụng c a b đảo pha:
Hình 2.3 cho thấy 1 ng dụng c a 1 b đảo pha thực hi n vi c lấy phần bù c a 1
s nh phân 8 bit. Các bit c a s nh phân đ

c đ a vào t i đầu vào và

đầu ra ta s

có phần bù c a s nh phân đó.

Đầu vào

Đầu ra
Hình 2.3: Mạch đảo pha 8 bit
2.3.2 C ng AND.
+ C ng AND đ

c s dụng để thực hi n phép toán logic AND. C ng AND có

thể có nhi u đầu vào và ch có 1 đầu ra. Hình 2.4 là ký hi u c ng AND có 2 đầu
vào.
A
X

B

Hình 2.4: Ký hiệu c ng AND 2 đầu vào và 1 đầu ra

15


+ Phép toán logic c a c ng AND: C ng AND t i đầu ra là m c cao (1) khi tất
cả đầu vào đ u là m c cao (1); trong tất cả các tr

ng h p còn l i thì đầu ra là m c

thấp (0).
+ Bảng sự thật c a c ng AND 2 đầu vào:
Đầu vào


Đầu ra

A

B

X

0

0

0

0

1

0

1

0

0

1

1


1

+ Ví dụ: Hai d ng sóng A và B đ

c đ a vào đầu vào c a 1 c ng AND

hình

2.5 và d ng sóng t i đầu ra c a nó
Cao
Thấp
Cao
Thấp

A
B

Cao
Thấp

X

Hình 2.5: Dạng sóng đầu vào và đầu ra của c ng AND 2 đầu vào
2.3.3 C ng OR.
A
X
B
Hình 2.6: Ký hiệu c ng OR 2 đầu vào
+ C ng OR đ


c s dụng để thực hi n các phép toán logic OR. C ng OR có thể

có nhi u đầu vào nh ng ch có 1 đầu ra. Hình 2.6 là ký hi u c a 1 c ng OR có 2 đầu
vào.
+ Các phép toán trên c ng OR: C ng OR có giá tr đầu ra là thấp (0) khi tất cả
tất cả các đầu vào là thấp; tất cả các tr

ng h p khác đầu cho đầu ra là cao.

16


+ Bảng sự thật c a c ng OR có 2 đầu vào: X = A + B
Đầu vào

Đầu ra

A

B

X=A+B

0

0

0

0


1

1

1

0

1

1

1

1

2.3.4 C ng NAND.
+ C ng NAND là vi t tắt c a Not AND và bao hàm m t hàm AND và m t đầu
ra bù. C ng NAND có thể có nhi u đầu vào và ch có 1 đầu ra. Hình 2.7 là ký hi u
c a c ng NAND 2 đầu vào.

A
X

B

Hình 2.7: Ký hiệu c ng NAND 2 đầu vào
+ Các phép toán logic c a c ng NAND: C ng NAND có giá tr đầu ra
thấp khi tất cả các giá tr đầu vào là cao; trong tất cả các tr


m c

ng h p còn l i đầu ra

c a nó có giá tr cao.
+ Bảng sự thật c a c ng NAND có 2 đầu vào: X = A.B
Đầu vào

Đầu ra

A

B

X= A..B

1

1

0

0

1

1

1


0

1

1

1

1

2.3.5 C ng NOR.
+ C ng NOR là vi t tắt c a Not OR; nó bao hàm 1 hàm OR và m t đầu ra bù.
C ng NOR có thể có nhi u đầu vào, nh ng ch có 1 đầu ra. Hình 2.8 là ký hi u c a
1 c ng NOR có 2 đầu vào.

17


A
X
B
Hình 2.8: Ký hiệu c ng NOR 2 đầu vào
+ Các phép toán logic c a c ng NOR: C ng NOR có giá tr đầu ra
n u tất cả các giá tr c a đầu vào đ u là thấp; trong tất cả các tr

m c cao

ng h p còn l i đầu


ra s có giá tr thấp.
+ Bảng sự thật c a c ng NOR 2 đầu vào: X = A  B
Đầu vào

Đầu ra
X= A  B

A

B

0

0

1

0

1

0

1

0

0

1


1

0

2.3.6 C ng XOR.
+ C ng OR-lo i tr (Vi t tắt là XOR) đ

c dùng để thực hi n phép toán XOR.

C ng XOR ch có 2 đầu vào và 1 đầu ra. Hình 2.9 là ký hi u c a c ng XOR.
A
X
B
Hình 2.9: Ký hiệu c ng XOR
+ Các phép toán trên c ng XOR: Đầu ra c a c ng XOR là cao n u t i 2 đầu vào
c a nó có giá tr đ i ngh ch nhau; trong các tr

ng h p còn l i thì đầu ra c a nó có

giá tr thấp.
+ Bảng sự thật c a phép toán XOR
Đầu vào
A
0
1
1
1

B

1
0
0
1

18

Đầu ra
X
1
1
0
0


2.3.7 C ng XNOR.
+ C ng XNOR là c ng NOR-lo i tr . C ng XNOR ch có 2 đầu vào và 1 đầu
ra. Hình 2.10 là ký hi u c a c ng XNOR.
A
X
B
Hình 2.10: Ký hiệu c ng XNOR
+ Các phép toán trên c ng XNOR: Đầu ra c a c ng XNOR là cao n u cả 2 đầu
vào cùng giá tr ; trong các tr

ng h p còn l i thì đầu ra có giá tr thấp.

+ Bảng sự thật c a c ng XNOR:
Đầu vào


Đầu ra

A

B

X

0

0

1

1

1

1

1

0

0

0

1


0

2.3.8 Các phép tính trên h nh phân
Các phép tính trên s nh phân nh : C ng (+); tr (-); nhân (*); chia (/) đ

c

thực hi n v i các quy tắc gi ng nh trên h thập phân.
Trên máy tính các s

nh phân đ

c l u tr

b i 1 s

(4bit/8bit/16bit/32bit…), do vậy nó có chi u dài không đ i.
2.3.8.1 Phép c ng nh phân:
Quy tắc:
0+0=0
0+1=1
1+0=1
1 + 1 = 0 nh 1 (10)
Ví dụ: Giả s có 8 bit để l u tr . Ta có:

19

bit xác đ nh



+

0

0

1

1

0

1

1

1

0

1

0

0

1

1


0

0

1

0

0

0

0

0

1

1

+
1

1

1

0

0


1

0

0

0

1

0

0

0

0

1

1

1

0

1

0


0

1

1

1

1

1

1

0

0

1

0

0

0

1

0


0

0

0

1

0

1

0

1

0

0

0

0

1

1



Bit tràn
2.3.8.2 Phép tr nh phân
Quy tắc:
0-0=0
1-1=0
1–0=1
0 – 1 = 1 nh 1
Ví dụ:
-

1

1

1

1

0

1

1

1

0

1


0

0

1

1

0

0

1

0

1

0

1

0

1

1

-


2.3.8.3 Phép nhân nh phân
Quy tắc:
0*0=0
1*0=0
0*1=0
1*1=1
Ví dụ:
1

0

0

1

S b nhân (9)

0

1

1

0

S nhân (6)

0

0


0

0

Thành phần th 1 c a t ng tích luỹ

1

0

0

1

1

0

0

1

0

0

0

0


0

1

1

0

x

Thành phần th 2 c a t ng tích luỹ
Thành phần th 3 c a t ng tích luỹ
Thành phần th 4 c a t ng tích luỹ

1

1

0

T ng tích lũy (54)

20


2.3.8.4 Phép chia nh phân.
Phép chia là phép tính ng

c c a phép nhân.


Ví dụ:
1

0

0

0

0

0

1

0

0

0

1

0

1

0


1

1

1

1

0

1

0

1

0

1

1

0

1

0

0


0

0

0

1

1

1

0

1

0

1

1

1

2.3.8.5 Biểu di n s nguyên và phân s :
+ S nh phân không dấu biểu di n cho các s nguyên l n h n 0 và 0. M t giá
tr n (n đ

c tính t 0) bit biểu di n s nguyên không dấu là:


Xn*2n + Xn-1*2n-1 + ….+ Xo*20
V i Xn là 0 hoặc 1
+ S nguyên âm đ

c biểu di n

+ Phân s : M t phân s đ

bit dấu cao nhất v i d ng bù 2

c coi là t s c a 2 s nguyên. Máy tính biểu di n

phân s bằng các s 0 và 1 bằng cách đặt bit bên trái nhất c a s biểu di n là 1/2,
ti p theo là 1/4, 1/8, 1/16,…Ví dụ để biểu di n phân s 0.1001 (Bit 0 đầu tiên cho
bi t là phân s d

ng, ti p theo là 1/2+0/4+0/8+1/16 = 9/16).

2.3.8.6 Biểu di n s có dấu phảy (chấm) đ ng (Floating Point Number)
Để tính toán nh ng s l n và nh ng s quá bé ng

i ta biểu di n s d

N=M*BE (1)
Trong đó:
M: là phần đ nh tr (Mantissa, Significand or fraction)
E: là s mũ (Exponent)

21


i d ng:


B: là c s
Vi c biểu di n các s d

i d ng (1) s rất thuận ti n khi tính toán. Ví dụ :

(a*10m)*(b*10n) = a*b*10n+m
(a*10m)/(b*10n) = (a/b)*10m-n
N u m=n thì:
(a*10m) + (b*10n) = (a+b)*10m
Vi c làm cho m = n gọi là sự m r ng s (Scaling Number)
Nh vậy thì rất khó có thể đ t đ
quá bé. Để giải quy t vấn đ này ng
* Trên máy tính dùng m t ch

c đ chính xác đ i v i nh ng s quá l n hoặc
i ta dùng 2 kỹ thuật sau:
ng trình con dấu chấm đ ng (Floating –point

routines) để Scaling các s nhằm đ t đ
con này ch đ

c đ chính xác mong mu n. Ch

ng trình

c s dụng trên các máy tính có các phép toán dấu chấm c đ nh


(fixed-Point Operations)
* Thêm các phép toán dấu chấm đ ng (Floating –Point Operations) vào phần
c ng máy tính, m ch Logic c a máy tính s thực hi n Scaling tự đ ng và theo dõi
s mũ khi tính toán. Để làm đ

c đi u này ng

i ta dùng h th ng s dấu chấm

đ ng (Floating Point System). S có dấu chấm đ ng trên máy tính dùng h s mũ
nh đã mô tả

trên. Trong khi tính toán máy tính theo dõi cả phần mũ lẫn phần

đ nh tr .
Máy tính IBM có m ch thực hi n phép toán có dấu chấm đ ng. M t s dấu
chấm đ ng theo IBM có 3 phần:
* Bit dấu (Signal Bit): Ch ra s đó âm hay d

ng.

* S mũ: Gọi là Charateristic.
* Phần đ nh tr : Gọi là Fraction
Hình v sau mô tả m t s dấu chấm đ ng trong PC IBM có đ dài t 32 hoặc 64
Bit
0
S

1…7
Charateritics


8….31 hoặc 63
Fraction

Hình 2.11 : Số có dấu châm động trong PC IBM
* Bit đầu tiên bên trái là Bit dấu S: Bit dấu bằng 0 là s d

22

ng, bằng 1 là s âm


* Bit t 1 đ n 7 là phần đặc tr ng (Charateritics) gọi là C. Giá tr c a C t 0 đ n
127
* Các bit 8..31 (Đ i v i máy có đ dài t (word) 32bit) hoặc 63 (Đ i v i máy
có đ dài t (word) 64bit) gọi là phần đ nh tr (phần sau dấu chấm).
- Giá tr bằng s trong h 10 đ

c tính nh sau:

(-1)S * 16C-64 * Fraction
V i: C là giá tr thập phân t

ng đ

ng c a phần Characteritic.

Fraction là phân s .
Ví dụ1: S có chấm đ ng 0 1000001 111000..0
Có giá tr bằng: +1665-64 x 7/8 = +14

Ví dụ2: S có dấu chấm đ ng: 1 1000011 1100..0
Có giá tr bằng: - 1667-64 x 3/4 = - 3072
2.3.8.7 Các cách biểu di n s có dấu chấm đ ng:
*B-5500 (c a Burroughs coporation)

000(3bit)

F(1bit) S(1bit)

Exponent(6bit)

M(ibit)

Fraction(39bit)
Sign of the Fraction

Sign of the Exponent
Flag: S dụng cho đi u khiển truy xuất
Ch kiểu d li u

* Floating Point for the 32 bit IBM System/370:
S (1bit)

Exces- 64 Exponent (7bit)

Fraction(24bit)

* IEEE (Institute of Electrical and Electronics Engineers)
- Single procision:
S (1bit)


Exponent (8bit)

Fraction(23bit)

Exponent (11bit)

Fraction(52bit)

-Double Procision:
S (1bit)

23


2.4 C s logic trong máy tính
2.4.1 Hàm Boolean và b ng sự thật
2.4.1.1 Các biểu th c và phép toán Boolean
+ Bi n s , phần bù:
Bi n s , phần bù là các s h ng trong đ i s logic. Bi n A; bi n B; bi n… là các
ký hi u th

ng đ

c s dụng để đ i di n cho các toán h ng logic. Bất kỳ 1 bi n đ n

nào cũng có giá tr là 0 hoặc 1. Phần bù c a nó đ

c biểu di n bằng tên bi n và có


dấu g ch ngang trên đầu. Ví dụ: A thì phần bù c a nó là A .
+ Phép c ng Boolean:
Phép c ng Boolean t

ng đ

ng v i phép toán OR (C ng OR), đ

c biểu di n

bằng dấu c ng (+) gi a các toán h ng. Quy tắc nh sau:
0+0=0
0+1=1
1+0=1
1+1=1
+ Phép nhân Boolean:
Phép nhân Boolean t

ng đ

ng phép AND (C ng AND), đ

c biểu di n bằng

dấu chấm (.) gi a 2 toán h ng hoặc 2 toán h ng vi t li n nhau. Quy tắc nh sau:
0.0=0
0.1=0
1.0=0
1.1=1
2.4.1.2 Các quy luật và quy tắc c a đ i s Boolean.

a/ Các quy luật của đại số Boolean:
* Luật giao hoán:
Luật giao hoán c a phép c ng và phép nhân 2 bi n đ
thể m r ng cho nhi u bi n)
- Luật giao hoán c a phép c ng:
A+B=B+A
M ch logic đ

c biểu di n nh sau:

24

c thể hi n nh sau (Có


A

B



A+B
B
B

B+A
A

- Luật giao hoán c a phép nhân
A.B=B.A

M ch logic:



A
A.B

B

B
B.A

A

* Luật kết hợp:
+ Luật k t h p v i phép c ng 3 bi n nh sau:
A + (B + C) = (A + B) + C
M ch logic biểu di n cho luật k t h p c a phép c ng 3 bi n
A

A

C

B

A+(B+C)

B


A+B

B+C

(A+B)+C

C

+ Luật k t h p v i phép nhân 3 bi n nh sau:
A.(B.C) = (A.B).C
M ch logic biểu di n cho luật k t h p c a phép nhân 3 bi n
A
A(B.C)



A
B

(A.B).C

B
C

A.B

C

B.C
* Luật phân phối:

- Luật phân ph i c a 3 bi n đ

c vi t nh sau:
A.(B+C) = A.B+A.C

- M ch logic c a luật phân ph i 3 bi n:

25


×