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 đã ln phải tính tố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 tố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 tốn. Đây là thi t b hồn tồ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à
hồ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.
tố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 tốn
– calculator). B l u tr (b nh ), Thành phần xuất (in và đục l ). B tính tốn có
thể nhận các tố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ể
hồ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 tố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 tố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 tố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 tố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
tố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 tố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 tốn h ng cần cho vi c tính tố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 xun trong khi tính tố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ó ln ln 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 ngồ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 ngồ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 qt 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 ngồ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 tố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 tố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). Tố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 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 qt 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ẻ.
n1
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 ngun 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 vng 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 vng 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 tố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 tố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 tố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 tố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 tố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 đ
q 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 tố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 tố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 tố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