Giáo trình Kiến trúc máy tính và hợp ngữ

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
im  
Để 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.  
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
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  
A
B
X
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 =  
AB  
Đầu vào  
Đầu ra  
A
B
X= AB  
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.  
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  
Đầ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.  
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
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 đủ
pdf 165 trang yennguyen 22400 Free
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ữ", để 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:

  • pdfgiao_trinh_kien_truc_may_tinh_va_hop_ngu.pdf