Giáo trình Kiến trúc máy tính và hợp ngữ - Trần Văn Chính
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ꢂꢃi
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ꢂꢃi Trung Hoa
đã sꢈ dụng bàn tính… Nhà khoa học thiên tài ngꢂꢃi Pháp Blaise Pascal năm 19 tuꢉi
(năm 1642) vì thꢂꢀ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 đꢂꢇc bꢅn phép tính cꢋng trꢁ nhân chia.
Charles Babbage, giáo sꢂ toán học trꢂꢃng Cambridge cꢊa Anh đꢂꢇc nhiꢑu
ngꢂꢃ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ꢂꢀi theo chu kỳ. Tuy nhiên, máy này bꢍ thất bꢒi
do công nghꢌ phần cꢏng không tꢂꢀ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ꢂꢀng trình đang chꢃ xuất/nhập
dꢐ liꢌu thì chꢂꢀng trình khác có thể tính toán. Mꢋt đặc trꢂng khác cꢊa 360 là không
gian đꢍa chꢎ lꢄn (thꢃi điểm lúc đó), vꢄi 224 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ꢂꢃng dùng cho viꢌc xꢈ lý tꢁ, các bảng tính và các ꢏng dụng
tꢂꢀ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ꢄ
Thiꢆ bꢍ nhập (Input)
Đꢀn vꢍ
điꢑu khiển
(CU)
Đꢀ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 đꢂꢇc xem là Data và đꢂꢇc lꢂu
trꢐ trong bꢋ nhꢄ và đꢂꢇc xem là chꢂꢀ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
ROM
RAM
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
Thiꢆt bꢍ xuất
-Màn hình
-Máy in
-máy vꢙ
-ꢘ đĩa
-Máy quét
-ꢘ đĩ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 đꢂꢇc dù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ꢁ 5 đꢆn 10 ns (nhanh hꢀn thꢃi gian truy xuất bꢋ
nhꢄ 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 đꢂꢇc phân bꢅ đꢆn
khắp nꢀi trong máy. Mꢋt tập hꢇp các đꢂꢃ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ꢅ lꢄn các thiꢆt bꢍ ngoꢒi vi có tꢅc đꢋ hoꢒt đꢋng khác nhau
nhꢂ 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 đꢂꢇc mꢋt bit thông
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 đꢂꢇc tꢉ chꢏc sao cho nꢋi dung cꢊa
mꢋt word (n bit) có thể đꢂꢇ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ꢄ đꢂꢇc gán mꢋt
đꢍa chꢎ (Address) riêng biꢌt. Word nhꢄ trong bꢋ nhꢄ có thể đꢂꢇc truy xuất bằng
cách chꢎ ra đꢍa chꢎ và lꢌnh đọc viꢆt tꢂꢀng ꢏng. Sꢅ liꢌu đꢂꢇc xꢈ lý theo mꢋt word,
7
bꢋi cꢊa word hoặc mꢋt phần cꢊa word. Khi bꢋ nhꢄ đꢂꢇc truy xuất, thông thꢂꢃng
mꢋt word cꢊa sꢅ liꢌu đꢂꢇc đọc tꢁ bꢋ nhꢄ ra hoặc đꢂꢇc viꢆt vào bꢋ nhꢄ.
Chꢂꢀ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ꢄ gọi là thꢃi gian truy xuất bꢋ
nhꢄ (memory access time = Tacc). Các bꢋ nhꢄ 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ꢂꢃi
ta dùng thêm bꢋ nhꢄ phụ (secondary memory) khi muꢅn lꢂu giꢐ mꢋt lꢂꢇng lꢄn
thông tin không sꢈ dụng thꢂꢃng xuyên. Bꢋ 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ꢂꢃng dùng nhất là bàn phím (key board). Key
board đꢂꢇc nꢅi sao cho khi mꢋt phím đꢂꢇc nhấn, ký tự hoặc sꢅ tꢂꢀng ꢏng đꢂꢇc tự
đꢋng chuyển thành mã nhꢍ phân và đꢂꢇ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 lꢒi vꢄi thiꢆt bꢍ nhập. Chꢏc năng
cꢊa thiꢆt bꢍ xuất là gꢈi các kꢆt quả đã đꢂꢇ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ꢂꢄi dꢒng chꢂꢀng trình và sꢅ liꢌu thông qua thiꢆt bꢍ
nhập. Thông tin đꢂꢇc lꢂu giꢐ trong bꢋ nhꢄ máy tính.
• Thông tin đꢂꢇc lꢂu giꢐ trong bꢋ nhꢄ đꢂꢇc lấy vào ALU dꢂꢄi sự điꢑu khiển
cuả chꢂꢀng trình. Tꢒi ALU, thông tin đꢂꢇc xꢈ lý.
• Thông tin đã đꢂꢇ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 đꢂꢇc chꢎ dẫn bꢔi bꢋ điꢑu khiển.
8
-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 đꢂꢇc điꢑu khiển bꢔi các lꢌnh (instructions). Để thực hiꢌn mꢋt nhiꢌm
vụ cho trꢂꢄc, mꢋt chꢂꢀng trình tꢂꢀng ꢏng bao gꢕm mꢋt tập các lꢌnh sꢙ đꢂꢇc lꢂu
giꢐ trong bꢋ nhꢄ 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ꢄ đꢂꢇc sꢈ
dụng nhꢂ 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ꢂꢀng ꢏng.
Cùng vꢄi ALU và bꢋ điꢑu khiển, vi xꢈ 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ꢐ lꢌnh đang
đꢂꢇc thực hiꢌn. Bꢋ đꢆm chꢂꢀng trình (PC - Program Counter) chꢏa đꢍa chꢎ bꢋ nhꢄ
cꢊa lꢌnh sꢙ đꢂꢇc thực hiꢌn. Sau khi thực hiꢌn lꢌnh, nꢋi dung cuả thanh PC sꢙ đꢂꢇc
cập nhật tꢄi đꢍa chꢎ cꢊa lꢌnh tiꢆp theo. Bình thꢂꢃng nꢋi dung cuả PC sꢙ tăng lên 1
nꢆu chꢂꢀ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ꢂꢄc hoꢒt đꢋng cꢀ bản khi thực
hiꢌn 1 chꢂꢀng trình nhꢂ sau: Chꢂꢀng trình chꢏa trong bꢋ nhꢄ chính. Viꢌc thực thi
chꢂꢀng trình bắt đầu khi PC chꢎ tꢄi vꢍ trí nhꢄ mà lꢌnh đầu tiên cꢊa chꢂꢀng trình
đꢂꢇc lꢂu giꢐ. Nꢋi dung cꢊa PC đꢂꢇc chuyển tꢄi MAR và mꢋt tín hiꢌu điꢑu khiển
đọc đꢂꢇ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ꢂꢀng trình) đꢂꢇc đọc vào MDR. Tiꢆp theo, nꢋi
dung cꢊa MDR đꢂꢇ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ó đꢂꢇc gꢈi tꢄi MDR.
Đꢍa chꢎ ô nhꢄ tꢒi đó kꢆt quả đꢂꢇc lꢂu trꢐ sꢙ đꢂꢇc gꢈi tꢄi MAR và chu trình viꢆt
(write cycle) sꢙ đꢂꢇ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ꢂꢀng trình có thể bꢍ ngắt nꢆu mꢋt hoặc nhiꢑu thiꢆt bꢍ
ngoꢒi vi yêu cầu đꢂꢇ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ꢂꢄc khi phục vụ ngắt,
trꢒng thái bên trong cꢊa vi xꢈ lý phải đꢂꢇc cất giꢐ vào bꢋ nhꢄ. Bình thꢂꢃng, nꢋi
dung cuả PC, các thanh ghi đa chꢏc năng và mꢋt sꢅ thông tin điꢑu khiển phải đꢂꢇc
cất giꢐ. Khi chꢂꢀng trình con phục vụ ngắt kꢆt thúc, trꢒng thái cꢊa chꢂꢀng trình
chính sꢙ đꢂꢇc phục hꢕi sao cho chꢂꢀ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
Bꢋ nhꢄ trong ROM
BIOS
Bꢋ nhꢄ trong RAM
CPU
Chipset
bắc
Chipset
nam
Giao tiꢆp IDE
(ꢘ đĩa)
ALU
CU
Khe cắm mꢔ rꢋng
PCI
Khe cắm card đꢕ họa
Bꢋ nguꢕn
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ꢂꢃi ta chọn máy tính có cấu hình phù hꢇp. Mꢋt máy
tính thꢂꢃng đꢂꢇ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ꢂꢃng đꢂꢇc chú ý bꢔi các tham sꢅ: Loꢒi RAM; dung
lꢂꢇ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.
- Bàn phím: Các thông sꢅ thꢂꢃng đꢂꢇ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ꢂꢃi (Cꢀ sꢅ 10) hay còn gọi là hꢌ thập phân: Các con sꢅ trong hꢌ thập
phân đꢂꢇ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 đꢂꢇc tính cho
phần nguyên; m đꢂꢇc tính cho phần lẻ.
n1
Ta có: x =
Ci *K
i
im
Để phân biꢌt các sꢅ trong các hꢌ đꢆm, ngꢂꢃ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
0000
0001
0010
0011
0100
0101
0110
0111
Decimal
Hexa
8
Binary
1000
1001
1010
1011
1100
1101
1110
1111
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
8
9
9
10
11
12
13
14
15
A
B
C
D
E
F
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
0
1
0
1
NOT A
A AND B
A OR B
A XOR B
0
0
1
1
1
1
0
0
0
0
0
1
0
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ꢂꢃi ta thꢂꢃng dùng 1
nhóm các bit và có tên gọi nhꢂ sau:
- Nhóm 4 bit đꢂꢇc gọi là nibble
13
- 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 ꢔ đầu vào hoặc đầu ra
có nghĩa là mꢏc 1 đang hoꢒt đꢋng hoặc trꢒng thái đꢂꢇ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ꢂ ꢔ hình b
chꢎ ra sự đảo pha khi nó xuất hiꢌn ꢔ đầu vào hoặc đầu ra. Khi nó xuất hiꢌn ꢔ đầu
vào có nghĩa là mꢏc thấp đang hoꢒt đꢋng hoặc trꢒng thái đầu vào đã đꢂꢇc xác nhận.
Khi xuất hiꢌn ꢔ đầu ra thì có nghĩa là mꢏc thấp đang hoꢒt đꢋng hoặc trꢒng thái đầu
ra đã đꢂꢇ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
Xung đầu ra
Hình 2.2: Bộ đảo pha với xung đầu vào xung và xung đầu ra
t1
t1
t2
Xung đầu vào
+ Bảng sự thật cꢊa bꢋ đảo pha:
Đầu vào
Đầu ra
Cao (1)
Thấp (0)
Thấp (0)
Cao (1)
+ 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
0
0
1
1
B
0
1
0
1
X
0
0
0
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
A
Thấp
Cao
Thấp
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.
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
0
0
1
1
B
0
1
0
1
X=A+B
0
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 ꢔ mꢏc
thấp khi tất cả các giá trꢍ đầu vào là cao; trong tất cả các trꢂꢃ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
0
1
1
1
1
0
1
0
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
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 ꢔ mꢏc cao
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ꢂꢃ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
A
B
X= A B
0
0
1
1
0
1
0
1
1
0
0
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.
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
Đầu ra
A
0
1
1
1
B
1
0
0
1
X
1
1
0
0
18
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.
X
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
0
1
1
0
B
0
1
0
1
X
1
1
0
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ꢅ bit xác đꢍnh
(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
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
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
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
-
-
1
0
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
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
Sꢅ bꢍ nhân (9)
Sꢅ nhân (6)
x
Thành phần thꢏ 1 cꢊa tꢉng tích luỹ
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ỹ
Tꢉng tích lũy (54)
1
1
0
1
0
0
1
0
0
1
1
0
20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Kiến trúc máy tính và hợp ngữ - Trần Văn Chính", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
- giao_trinh_kien_truc_may_tinh_va_hop_ngu_tran_van_chinh.pdf