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ꢍ shc 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 tlà 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 bnh, chiu dài tꢁ là 18 bit và  
khoảng thꢃi gian ca 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à chiu 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ó thchia ra làm 3 loi: Máy tính để bàn, máy tính xách tay  
và máy tính btú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 nhng năm ca thp niên 40 ca thkỷ 20, máy tính điꢌn tꢈ sꢅ bắt đầu  
đꢂꢇc sdng. Có 2 dòng máy là máy Turing và máy Von Neumann.  
Đꢒi din 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 ktha và phát trin hu ht các thhꢌ  
máy tính sau này. Đꢒi din cho máy Von neumann thi đó 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ꢅ  
hc 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ꢀ đꢕ cu trúc ca máy Von Neumann.  
Bnhꢄ  
Thibnhp (Input)  
Đꢀn vꢍ  
điu khin  
(CU)  
Đꢀn vlàm  
toán  
(ALU)  
Thit bxut (Output)  
Hình 1.1: Máy Von Neumman  
Nguyên tc hot đꢋng ca máy Von neumann:  
- Chꢂꢀng trình điu khin và xlý dliu cũng đꢂꢇc xem là Data và đꢂꢇc lu  
trtrong bnhđꢂꢇc xem là chꢂꢀng trình lu tr.  
- Bnhchia làm nhiu ô, mi ô có 1 đꢍa chꢎ để có thchn la trong quá  
trình đọc/ghi dliu (nguyên đꢍnh đꢍa ch)  
- Các lnh đꢂꢇc thc hin tun tnhvào bꢋ đꢆm chꢂꢀng trình (thanh ghi  
lnh) nm bên trong bxlý.  
- Chꢂꢀng trình có thbiu din dꢂꢄi dng sđặt vào trong bnh.  
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ꢅ hc và  
logic. Mọi phép toán sꢅ hc và logic nh: cng; 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ó điu khin tt 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ꢐ sliu 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à tnhꢄ  
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ó  
mt 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. Mt sthit bnhmà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ꢀ đꢕ cu trúc ca 1 máy vi tính  
10  
Bꢋ nhꢄ trong ROM  
BIOS  
Bꢋ nhꢄ trong RAM  
CPU  
Chipset  
bc  
Chipset  
nam  
Giao tip IDE  
(ꢘ đĩa)  
ALU  
CU  
Khe cắm mrng  
PCI  
Khe cắm card đꢕ họa  
Bnguꢕ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  
Tutheo công vic mà ngꢂꢃi ta chn máy tính có cu hình phù hp. Mt máy  
tính thꢂꢃng đꢂꢇc chú ý bi các thành phn sau:  
- Mainboard: Là loi mainboard có chipset htrcác loi CPU nào, tc đꢋ  
đꢕng hmáy là bao nhiêu?  
- CPU: Các thông sthꢂꢃng đꢂꢇc chú ý: Hãng sn xut, loi CPU, cache ni,  
tc đꢋ…  
- RAM: Bnhtrong thꢂꢃng đꢂꢇc chú ý bi các tham s: Loi RAM; dung  
lꢂꢇng; tc đꢋ  
- ꢘ đĩa cng: Các thông sthꢂꢃng đꢂꢇc chú ý: Hãng sn xut; dung lꢂꢇng;  
tc đꢋ quay…  
- ꢘ đĩa quang: Gm có các loꢒi CD; DVD…Các thông sthꢂꢃng đꢂꢇc chú ý  
là: Hãng sn xut; tc đꢋ đọc ghi…  
- Màn hình: Các thông sthꢂꢃng đꢂꢇc chú ý: Là loi màn hình; đꢋ rng; đꢋ  
phân gii; hãng sn xut.  
- Bàn phím: Các thông sthꢂꢃng đꢂꢇc chú ý: Loi bàn phím; Hãng sn xut  
- Chut: Các thông s: Loi chut; hãng sn xut  
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 sdng các hꢌ đm sau:  
- Hhai (Cs2) hay còn gi là hnhphân: Các con sca hnhphân đꢂꢇc  
biu din bi 2 ký slà: 0; 1.  
- Hmꢂꢃi (Cs10) hay còn gi là hthp phân: Các con strong hthp  
phân đꢂꢇc biu din bi 10 ký slà: 0; 1; 2; 3; 4; 5; 6; 7; 8; 9.  
- Hmꢂꢃi sáu (Cs16) hay còn gi là hthp lc phân: Các con sca hꢌ  
thp lc phân đꢂꢇc biu din bi 16 ký slà: 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 vtrí da trên csca các ký s. Giá trꢍ  
ca mt con sꢅ đꢂꢇc biu din bi 1 dãy các ký s, trong đó giá trca 1 ký stuỳ  
thuc vào vtrí ca nó trong dãy.  
Công thc tng quát tính giá trca 1 con strong 1 hꢌ đꢆm:  
Nu gi:  
- 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à mt mng đin phc tp, hot đꢋng trên nguyên tc  
có hay không có dòng đin chy trong tng đon mch trong mng đin đó. Dliu  
đꢂꢇc ghi nhbng các mch đin có khnăng thhin mt strng thái xác đꢍnh.  
Mi mch đin nhvy là mt trng thái nhcăn bn. Sgiá trmt phn tnhꢄ  
căn bn có thbiu din cũng chính là strng thái mch đin to nên nó. Do khả  
năng chto mch, hin nay các phn tnhtrên máy tính thꢂꢃng đꢂꢇc thit lp tꢁ  
các mch đin có hai trng thái xác đꢍnh bi mc đin áp cao và thp. Tꢂꢀng ng  
vi hai trng thái ca mch đin, mi phn tnhmang mt trong hai giá trlà 0  
hoc 1. Mt phn tnhnhvy đꢂꢇc gi là 1 bit. Bng các thit bꢍ đin tngꢂꢃi  
ta có thchto các mch thc hin các phép toán logic NOT, AND, OR, XOR vi  
bng sự thật ca 2 phn tA và B có các trng thái 0 hoc 1 nhsau:  
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 để biu din đꢂꢇc nhiu trng thái hn, ngꢂꢃi ta thꢂꢃng dùng 1  
nhóm các bit và có tên gi nhsau:  
- Nhóm 4 bit đꢂꢇc gi là nibble  
13  
- Nhóm 8 bit đꢂꢇc gi là Byte  
- Nhóm 16 bit đꢂꢇc gi là Word  
- Nhóm 32 bit đꢂꢇc gi 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ý hiu trên bn vcho bꢋ đảo pha nhhình 2.1. Trong đó hình a) có hình thù  
phân bit, phn b) thhin các hình vuông góc.  
1
1
a) Các ký hiu có hình  
phân bit vi chthâm  
a) Ký hiu nét vuông góc  
vi chthphân cc  
Hình 2.1: Các ký hiệu logic tiêu chuꢀn cho bộ đảo pha  
+ Dng cchthâm và chthphân cc:  
Dng cchthâm có hình bt bóng chsự đảo pha khi nó xut hin ꢔ đầu vào  
hoc đầu ra ca phn tlogic. Đầu ra có bt bóng có nghĩa là mc 0 đang hot đꢋng  
hoc trng thái đầu ra đꢂꢇc xác nhn. Nu không có bt bóng ꢔ đầu vào hoc đầu ra  
có nghĩa là mc 1 đang hot đꢋng hoc trng thái đꢂꢇc xác nhn.  
Chiu phân cc hoc dng cchthꢍ đꢍnh mc là 1 hình tam giác nhꢂ ꢔ hình b  
chra sự đảo pha khi nó xut hin ꢔ đầu vào hoc đầu ra. Khi nó xut hin ꢔ đầu  
vào có nghĩa là mc thp đang hot đꢋng hoc trng thái đầu vào đã đꢂꢇc xác nhn.  
Khi xut hin ꢔ đầu ra thì có nghĩa là mc thp đang hot đꢋng hoc trng thái đầu  
ra đã đꢂꢇc xác nhn.  
+ Thc hin đảo pha:  
Hình 2.2 thhin đầu ra ca 1 bꢋ đảo pha vi đầu vào là 1 xung và xung nhn  
đꢂꢇ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  
+ Bng sự thật ca bꢋ đảo pha:  
Đầu vào  
Đầu ra  
Cao (1)  
Thp (0)  
Thp (0)  
Cao (1)  
+ Mt ng dng ca bꢋ đảo pha:  
Hình 2.3 cho thy 1 ng dng ca 1 bꢋ đảo pha thc hin vic ly phn bù ca 1  
snhphân 8 bit. Các bit ca snhphân đꢂꢇc đꢂa vào ti đầu vào và ꢔ đầu ra ta sꢙ  
có phn bù ca snhphân đó.  
Đầu vào  
Đầu ra  
Hình 2.3: Mạch đảo pha 8 bit  
2.3.2 Cꢋng AND.  
+ Cng AND đꢂꢇc sdng để thc hin phép toán logic AND. Cng AND có  
thcó nhiu đầu vào và chcó 1 đầu ra. Hình 2.4 là ký hiu cng 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 ca cng AND: Cng AND ti đầu ra là mc cao (1) khi tt  
cả đầu vào đꢑu là mc cao (1); trong tt ccác trꢂꢃng hp còn li thì đầu ra là mc  
thp (0).  
+ Bng 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 dng sóng A và B đꢂꢇc đꢂa vào đầu vào ca 1 cng AND hình  
2.5 và dng sóng ti đầu ra ca nó  
Cao  
A
Thp  
Cao  
Thp  
B
Cao  
Thp  
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  
+ Cng OR đꢂꢇc sdng để thc hin các phép toán logic OR. Cng OR có thể  
có nhiu đầu vào nhng chcó 1 đầu ra. Hình 2.6 là ký hiu ca 1 cng OR có 2 đầu  
vào.  
+ Các phép toán trên cng OR: Cng OR có giá trꢍ đầu ra là thp (0) khi tt cả  
tt ccác đầu vào là thp; tt ccác trꢂꢃng hp khác đầu cho đầu ra là cao.  
16  
+ Bng sự thật ca cng 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.  
+ Cng NAND là vit tt ca Not AND và bao hàm mt hàm AND và mt đầu  
ra bù. Cng NAND có thcó nhiu đầu vào và chcó 1 đầu ra. Hình 2.7 là ký hiu  
ca cng 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 ca cng NAND: Cng NAND có giá trꢍ đầu ra mc  
thp khi tt ccác giá trꢍ đầu vào là cao; trong tt ccác trꢂꢃng hp còn li đầu ra  
ca nó có giá trcao.  
+ Bng sự thật ca cng 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.  
+ Cng NOR là vit tắt cꢊa Not OR; nó bao hàm 1 hàm OR và mt đầu ra bù.  
Cng NOR có thcó nhiu đầu vào, nhng chcó 1 đầu ra. Hình 2.8 là ký hiu ca  
1 cng 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 ca cng NOR: Cng NOR có giá trꢍ đầu ra mc cao  
nu tt ccác giá trca đầu vào đꢑu là thp; trong tt ccác trꢂꢃng hp còn li đầu  
ra scó giá trthp.  
+ Bng sự thật ca cng 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.  
+ Cng OR-loi tr(Vit tt là XOR) đꢂꢇc dùng để thc hin phép toán XOR.  
Cng XOR chcó 2 đầu vào và 1 đầu ra. Hình 2.9 là ký hiu ca cng XOR.  
A
X
B
Hình 2.9: Ký hiệu cꢁng XOR  
+ Các phép toán trên cng XOR: Đầu ra cꢊa cꢉng XOR là cao nu ti 2 đầu vào  
ca nó có giá trꢍ đꢅi nghch nhau; trong các trꢂꢃng hp còn li thì đầu ra ca nó có  
giá trthp.  
+ Bng sự thật ca 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.  
+ Cng XNOR là cng NOR-loi tr. Cng XNOR chcó 2 đầu vào và 1 đầu  
ra. Hình 2.10 là ký hiu ca cng XNOR.  
A
X
B
Hình 2.10: Ký hiệu cꢁng XNOR  
+ Các phép toán trên cng XNOR: Đầu ra ca cng XNOR là cao nu c2 đầu  
vào cùng giá tr; trong các trꢂꢃng hp còn li thì đầu ra có giá trthp.  
+ Bng sự thật ca cng 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 snhphân nh: Cng (+); tr(-); nhân (*); chia (/) đꢂꢇc  
thc hin vi các quy tc ging nhtrên hthp phân.  
Trên máy tính các snhphân đꢂꢇc lu trbi 1 sbit xác đꢍnh  
(4bit/8bit/16bit/32bit…), do vậy nó có chiu dài không đꢉi.  
2.3.8.1 Phép cꢋng nhꢍ phân:  
Quy tc:  
0 + 0 = 0  
0 + 1 = 1  
1 + 0 = 1  
1 + 1 = 0 nh1 (10)  
Ví d: Giscó 8 bit để lu 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 tc:  
0 - 0 = 0  
1 - 1 = 0  
1 0 = 1  
0 1 = 1 nh1  
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 tc:  
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
Sbnhân (9)  
Snhân (6)  
x
Thành phn th1 ca tng tích luỹ  
Thành phn th2 ca tng tích luỹ  
Thành phn th3 ca tng tích luỹ  
Thành phn th4 ca tng tích luỹ  
Tng 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 baolam 11/05/2022 5980
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:

  • pdfgiao_trinh_kien_truc_may_tinh_va_hop_ngu_tran_van_chinh.pdf