Máy tính số là thiết bị có khả năng giải các bài toán bằng cách thực hiện một số
lệnh hữu hạn. Chương trình máy tính gồm một dãy lệnh sắp xếp theo một trình tự nhất
định để thực hiện một việccho trước. Những linh kiện điện tử trong mỗi máy tính chỉ
có thể nhận biết và thực hiện trực tiếp một số lệnh hữu hạn và một chương trình máy
tính chỉ có thể thực hiện trên máy tính đó nếu sử dụng chính số lệnh hữu hạn đó.
Tập lệnh mà máy tính thực hiện trực tiếp tạo ra một ngôn ngữ cho phép người sử
dụng trao đổi được với máy tính. Đó là ngôn ngữ máy. Khi chế tạo ra một máy tính
mới, người ta tạo ra các lệnh, hình thành ngôn ngữ máy. Thông thường người ta có
khuynh hướng chọn các lệnh này càng đơn giản càng tốt để hạn chế mức độ phức tạp
(và dĩ nhiên là giá thành ) của các linh kiện điện tử cần thiết. Khó khăn là các ngôn
ngữ máy này còn quá nguyên sơ nên rất khó sử dụng.
13 trang |
Chia sẻ: oanh_nt | Lượt xem: 1439 | Lượt tải: 3
Nội dung tài liệu Giáo trình cấu trúc máy tính, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
TRƯỜNG ĐẠI HỌC ĐÀ LẠT
F 7 G
GIÁO TRÌNH
CẤU TRÚC MÁY TÍNH
NGUYỄN HỮU LỘC
2000
Cấn Trúc Máy Tính -2-
MỤC LỤC
Chương 1: GIỚI THIỆU CHUNG..................................................................................... 5
I. NGÔN NGỮ VÀ MÁY ẢO, MÁY TÍNH NHIỀU CẤP: ......................................... 5
II. PHẦN CỨNG VÀ PHẦN MỀM: ............................................................................. 7
III. LỊCH SỬ PHÁT TRIỂN MÁY TÍNH: .................................................................... 8
1. Thế hệ không: ........................................................................................................ 8
2. Thế hệ thứ nhất: ..................................................................................................... 9
3. Thế hệ thứ hai: ..................................................................................................... 10
4. Thế hệ thứ ba: ...................................................................................................... 10
5. Thế hệ thứ tư: ....................................................................................................... 11
Chương 2: CẤU TRÚC CHUNG MÁY TÍNH............................................................... 15
I. CÁC BỘ XỬ LÝ....................................................................................................... 15
1. Thực hiện lệnh ..................................................................................................... 16
2. Tổ chức CPU ........................................................................................................ 17
3. Thực hiện lệnh song song: ................................................................................... 18
II- BỘ NHỚ CHÍNH: ................................................................................................... 22
1. Bit.......................................................................................................................... 22
2. Địa chỉ bộ nhớ: ..................................................................................................... 23
3. Trật tự của byte: ................................................................................................... 24
4. Mã sửa lỗi:............................................................................................................ 25
5. Bộ nhớ chính trong các IBM PC......................................................................... 26
III- CÁC THIẾT BỊ LƯU TRỮ (BỘ NHỚ PHỤ): ...................................................... 28
1. Băng từ: ................................................................................................................ 28
2. Đĩa từ .................................................................................................................... 29
3. Đĩa mềm ............................................................................................................... 32
4. Đĩa quang.............................................................................................................. 33
IV - CÁC THIẾT BỊ VÀO / RA .................................................................................. 35
1. Bàn phím: ............................................................................................................. 38
2. Màn hình:.............................................................................................................. 38
3. Modem:................................................................................................................. 41
4. Chuột: ................................................................................................................... 45
5. Máy in :................................................................................................................. 48
6. Ngõ ra nối tiếp chuẩn RS–232–C . ...................................................................... 54
Chương 3: LỚP VẬT LÝ ................................................................................................. 57
I. CÁC CHIP VI XỬ LÝ VÀ CÁC BUS..................................................................... 57
1. Các chip vi xử lý: ................................................................................................. 57
2. Các bus của máy tính ........................................................................................... 60
3. Bus đồng bộ......................................................................................................... 62
4. Bus không đồng bộ............................................................................................... 65
5. Phân xử bus .......................................................................................................... 67
II. THÍ DỤ VỀ CHIP VI XỬ LÝ VÀ BUS ................................................................. 71
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính -3-
1. Chip vi xử lý 8088 của họ Intel ........................................................................... 71
2. Thí dụ về bus ........................................................................................................ 74
III. Bộ nhớ .................................................................................................................... 76
1. Phân loại bộ nhớ bán dẫn .................................................................................... 77
2. Tổ chức bộ nhớ:.................................................................................................... 77
3. Một số khái niệm về bộ nhớ khác:...................................................................... 79
IV. Giao tiếp................................................................................................................. 81
1. Các chip I/O......................................................................................................... 81
2. Giải mã địa chỉ. ................................................................................................... 82
Chương 4 LỚP VI CHƯƠNG TRÌNH ............................................................................ 85
I. NHẮC LẠI LỚP VẬT LÝ: ...................................................................................... 86
1. Các thanh ghi:....................................................................................................... 86
2. Bus nội:................................................................................................................. 86
II. MỘT VÍ DỤ VỀ VI CHƯƠNG TRÌNH: ................................................................ 88
Chương 4: LỚP VI CHƯƠNG TRÌNH ........................................................................... 90
I. NHẮC LẠI LỚP VẬT LÝ: ...................................................................................... 91
1. Các thanh ghi:....................................................................................................... 91
2. Bus nội:................................................................................................................. 91
II. MỘT VÍ DỤ VỀ VI CHƯƠNG TRÌNH: ................................................................ 93
Chương 5: LỚP MÁY QUY ƯỚC .................................................................................. 95
I. CÁC THÍ DỤ VỀ LỚP MÁY QUI ƯỚC: ............................................................... 95
II. CÁC KHUÔN DẠNG LỆNH ............................................................................... 101
III. KIỂU ĐỊNH VỊ ĐỊA CHỈ : .................................................................................. 102
1. Định địa chỉ tức thời: .......................................................................................... 103
2. Định địa chỉ trực tiếp.......................................................................................... 103
3. Định địa chỉ thanh ghi ........................................................................................ 104
4. Định địa chỉ gián tiếp......................................................................................... 105
5. Định chỉ số .......................................................................................................... 106
6. Định địa chỉ ngăn xếp ........................................................................................ 107
III. LUỒNG ĐIỀU KHIỂN........................................................................................ 108
1. Luồng điều khiển tuần tự và các lệnh nhảy. .................................................... 108
2. Thủ tục................................................................................................................ 109
3. Đồng thủ tục. ...................................................................................................... 109
4. Bẫy...................................................................................................................... 110
5. Ngắt .................................................................................................................... 110
Chương 6: LỚP MÁY HỆ ĐIỀU HÀNH ..................................................................... 112
I. BỘ NHỚ ẢO........................................................................................................... 113
II. CÁC LỆNH VÀO/RA ẢO .................................................................................... 117
1. Các tập tin tuần tự .............................................................................................. 117
2. Các tập tin truy xuất ngẫu nhiên ....................................................................... 119
3. Hiện thực các lệnh vào/ra ảo............................................................................. 120
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính -4-
4. Các lệnh quản lý thư mục .................................................................................. 124
III. CÁC LỆNH ẢO DÙNG TRONG XỬ LÝ SONG SONG .................................. 125
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính -5-
CHƯƠNG 1:
GIỚI THIỆU CHUNG
Máy tính số là thiết bị có khả năng giải các bài toán bằng cách thực hiện một số
lệnh hữu hạn. Chương trình máy tính gồm một dãy lệnh sắp xếp theo một trình tự nhất
định để thực hiện một việc cho trước. Những linh kiện điện tử trong mỗi máy tính chỉ
có thể nhận biết và thực hiện trực tiếp một số lệnh hữu hạn và một chương trình máy
tính chỉ có thể thực hiện trên máy tính đó nếu sử dụng chính số lệnh hữu hạn đó.
Tập lệnh mà máy tính thực hiện trực tiếp tạo ra một ngôn ngữ cho phép người sử
dụng trao đổi được với máy tính. Đó là ngôn ngữ máy. Khi chế tạo ra một máy tính
mới, người ta tạo ra các lệnh, hình thành ngôn ngữ máy. Thông thường người ta có
khuynh hướng chọn các lệnh này càng đơn giản càng tốt để hạn chế mức độ phức tạp
(và dĩ nhiên là giá thành ) của các linh kiện điện tử cần thiết. Khó khăn là các ngôn
ngữ máy này còn quá nguyên sơ nên rất khó sử dụng.
I. NGÔN NGỮ VÀ MÁY ẢO, MÁY TÍNH NHIỀU CẤP:
Có 2 cách để giải quyết vấn đề này. Thực tế là cả hai cách này đều nhằm đưa
vào một tập lệnh mới dễ sử dụng hơn ngôn ngữ máy. Tập lệnh mới này tạo thành một
ngôn ngữ mới (ngôn ngữ L2) là tập các lệnh khác lệnh máy (ngôn ngữ L1. )
Cách thứ nhất để thực hiện chương trình viết bằng L2 là dịch lệnh của chương
trình thành dãy các lệnh tương đương L1. Máy tính sẽ thực hiện chương trình mới bằng
L1 thay vì L2. Kỹ thuật này gọi là biên dịch (compile).
Cách thứ 2 là từng lệnh của chương trình viết bằng L2 sẽ được thực hiện tương
ứng với một dãy các lệnh L1. Kỹ thuật này không cần tạo ra toàn bộ một chương trình
L1 nên gọi là phiên dịch (interpret).
Hai khái niệm biên dịch và phiên dịch mới đầu có vẽ hơi giống nhau. Nhìn
chung, lệnh trong L2 sẽ được chuyển thành một dãy lệnh trong L1 để thực hiện. Song
phải thấy rằng trong trường hợp biên dịch tất cả chương trình L2 sẽ phải dịch sang L1
sau đó chương trình L1 thực hiện. Còn với phiên dịch thì mỗi lệnh trong chương trình
L2 được phân tích rồi thực hiện ngay và như vậy dường như không tồn tại chương trình
dịch. Cả hai cách đều được sử dụng rộng rãi.
Với ngôn ngữ L2 có thể hình dung đến một máy tính gọi là máy ảo.
Để biên dịch và phiên dịch được đơn giản, các ngôn ngữ L1 và L2 không nên quá
khác nhau. Nghĩa là L2, thường hay hơn L1, vẫn không phải là một ngôn ngữ lập trình
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính -6-
lý tưởng. Điều này có vẽ như trái ngược với ý tưởng ban đầu khi tạo ra ngôn ngữ L2:
tạo một ngôn ngữ đơn giản và dễ sử dụng cho con người hơn L1 là ngôn ngữ của máy.
Như vậy người ta lại định nghĩa một tập lệnh mới gần guĩ với người sử dụng hơn
và ít phụ thuộc hơn vào máy tính như L2. Những lệnh mới này tạo ra một ngôn ngữ L3
nhờ vậy có thể viết các chương trình cho máy tính ảo dùng ngôn ngữ L3. Những
chương trình này chắc chắn sẽ được dịch ra L2.
Người ta có thể tạo ra một chuỗi các ngôn ngữ, loại sau dễ sử dụng hơn so với
loại trước. Mỗi ngôn ngữ mới dựa vào ngôn ngữ đã có trước đó, do vậy người ta xem
máy tính như một chồng các lớp (cấp) như trình bày trong hình 1.1. Ngôn ngữ ở lớp
dưới đơn giản, càng lên lớp trên ngôn ngữ càng phức tạp.
Đa số các máy tính hiện nay có ít nhất 2 cấp. Thường chúng ta thấy các máy tính
có 6 cấp.
Cấp 0: Lớp vật lý. Đó là phần cứng gồm các cửa logic, các cổng (cảng) v.v…
Chúng ta sẽ đi sâu vào cấp 0 trong giáo trình này.
Máy ảo M3,
Ngôn ngữ L3
Máy ảo Mn,
Ngôn ngữ Ln
Cấp n
Cấp 3
Máy thực M1,
Ngôn ngữ máy L1
Máy ảo M2,
Ngôn ngữ L2
Cấp 2
Cấp 1
Hình 1.1: Kiến trúc máy tính nhiều cấp
Cấp 1: Lớp vi chương trình. Khác với cấp 0, trong cấp này ta thấy có chương trình
gọi là vi chương trình dùng để phiên dịch những lệnh ở cấp 2.
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính -7-
Cấp 2: Lớp máy qui ước. Thường ở lớp này tất cả các máy tính đều có những
điểm giống nhau dù chúng được tạo bởi những nhà sản xuất khác nhau. Các nhà sản
xuất đều cung cấp kèm theo máy "Sổ tay ngôn ngữ máy" trong đó có tập lệnh riêng
của từng máy.
Cấp 3: Lớp hệ điều hành. Có thể xem đây là một lớp lai (hybrid). Ngoài một số
các lệnh đã biết (có trong cấp 2 ) trong lớp này còn xuất hiện nhiều lệnh đặc biệt như
tổ chức quản lý bộ nhớ, khả năng thực hiện nhiều lệnh song song v.v…
Cấp 4: Lớp hợp ngữ. Dùng những từ gợi nhớ để lập trình do vậy thuận tiện hơn.
Cấp 5: Lớp ứng dụng: Dùng ngôn ngữ cấp cao để lập trình.
Người ta có thể có cấp 6 hoặc cấp cao hơn cho những ứng dụng cụ thể được xem
là công cụ cho các lĩnh vực chuyên ngành.
Có thể thấy tồn tại một khoảng cách rất lớn giữa cấp 3 và cấp 4. Những nhà lập
trình hệ thống thường chú ý đến các cấp thấp (từ cấp 3 trở xuống), trong khi ấy với
những nhà lập trình ứng dụng lại quan tâm đến những cấp cao hơn (từ cấp 4 lên).
Ngôn ngữ sử dụng ở cấp 1,2,3 là ngôn ngữ số trong khi ấy từ cấp 4 người ta sử dụng
những từ, những chữ viết tắt dễ hiểu hơn với con người. Hơn thế phương pháp để hỗ
trợ các cấp trên là khác nhau: Cấp 2 và 3 thường được phiên dịch, còn cấp 4 và 5
thường là biên dịch (điều này không phải luôn đúng).
II. PHẦN CỨNG VÀ PHẦN MỀM:
Những chương trình viết bằng ngôn ngữ máy đều có thể thực hiện trực tiếp bằng
các mạch điện tử mà không cần phải biên dịch hay phiên dịch. Các mạch điện tử này
kết hợp với các phần tử cơ khí, các dây nối gọi chung là phần cứng. Như vậy phần
cứng là những gì có thể sờ thấy được như các mạch tích hợp, các bảng mạch, dây nối,
nguồn nuôi, bộ nhớ, máy in, thiết bị đầu cuối v.v… khác với những gì không sờ thấy
được như các ý tưởng trừu tượng, các thuật toán hoặc các lệnh.
Như vậy phần mềm gồm các thuật toán và cách thể hiện chúng bằng lệnh: các
chương trình. Những chương trình này được cất giữ trên những thiết bị lưu trữ như đĩa
từ, đĩa quang….
Có lập luận cho rằng phần cứng và phần mềm tương đương với nhau về mặt logic
(hardware and software are logically equivalent). Bất kỳ một phép toán nào đó giải
được bằng phần mềm đều có thể thực hiện trực tiếp bằng phần cứng và bất kỳ một
lệnh nào đó thi hành bằng phần cứng đều có thể mô phỏng bằng phần mềm. Ranh giới
giữ phần cứng và phần mềm thường xuyên thay đổi. Có những cái hôm nay thực hiện
bằng phần mềm, ngày mai lại thực hiện bằng phần cứng và ngược lại. Hơn thế nữa
ngày càng thấy rằng ranh giới giữ các lớp máy tính ngày càng không rõ ràng. Song
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính -8-
việc phân định các lớp giúp cho người làm việc với máy tính tại 1 lớp n nào đó sẽ
không cần biết nhiều đến chi tiết các lớp dưới. Như vậy việc ứng dụng máy tính ngày
càng dễ dàng mặc dầu chúng ngày càng phức tạp.
III. LỊCH SỬ PHÁT TRIỂN MÁY TÍNH:
1. Thế hệ không:
Những máy tính cơ và điện từ (1642-1945)
Blaise Pascal (1623-1662) là người có công chính trong việc tạo ra máy làm toán
đầu tiên, chính vì lý do này mà về sau Niklaus Wirth đã lấy tên Pascal đặt cho ngôn
ngữ lập trình mà ông đã sáng tạo nên. Năm 1642 lúc ấy Pascal mới 19 tuổi đã tạo ra
một máy hoàn toàn bằng cơ khí điều khiển bằng tay và thực hiện được phép cộng và
phép trừ . 30 năm sau, Baron Gottfried von Leibniz (1646-1716) thêm vào phép nhân
và phép chia và đó chính là tiền thân của máy tính bỏ túi (calculator) ngày nay của
chúng ta.
Mãi đến 150 năm sau đóù Charles Babbage (1792-1871), giáo sư toán tại Đại học
Cambridge, đã thiết kế và xây dựng được máy sai phân (difference engine). Máy chỉ
tính toán với một thuật toán đơn, phương pháp sai phân hữu hạn sử dụng các đa thức .
Máy này hoạt động tốt tuy vậy Babagge mong thực hiện được với nhiều thuật toán
khác hơn và ông đã để nhiều thời gian nghiên cứu tạo ra 1 máy tính mới, máy phân
tích (analytical engine). Máy này gồm bốn bộ phận: Quầy bán hàng (Bộ nhớ); cối xây
(Bộ tính toán), ngõ vào (Bộ đọc bìa đục lỗ) và ngõ ra (bộ xuyên bìa hay máy in). Cối
xây nhận các toán hạng từ quầy bán hàng sau đó thực hiện cộng, trừ, nhân, chia và
chuyển kết quả về quầy bán hàng. Tất cả đều thực hiện bằng cơ khí. Cái mới trong
máy này là nó đọc các lệnh từ bìa đục lỗ và xử lý chúng. Máy này được lập trình nhờ
1 ngôn ngữ đơn giản gọi là hợp ngữ. Ada Augusta Lovelace, con gái của một nhà thơ
Anh tên Lord Byron và cũng là người trợ lý của Babagge là người đầu tiên viết chương
trình cho máy tính. Vì vậy sau này Bộ quốc phòng Hoa kỳ đã lấy tên Ada để đặt cho
một ngôn ngữ lập trình do nhóm Bull tạo ra.
Tuy nhiên Babbage không thể tạo ra cái máy hoàn toàn như ý vì công nghệ thế
kỷ thứ XIX đã không đáp ứng được. Tuy vậy những ý tưởng của Babagge đã đặt nền
móng cho máy tính điện tử ngày nay, cũng chính vì vậy nên có thể xem Babbage là
Ông tổ của ngành máy tính hiện nay.
Trong những năm 1930 một kỹ sư Đức tên Konrad Zuse đã tạo ra một số máy
tính làm bằng rơ le điện từ dù chưa biết đến công trình của Babagge. Rất tiếc là tất cả
các máy này đều đã bị phá hũy trong những đợt ném bom xuống Berlin năm 1944.
Song vẫn có thể xem ông là một trong những người tiên phong chế tạo ra máy tính.
Tại Hoa kỳ, John Atanassoff thuộc Iowa State College và George Stibbitz thuộc
Bell Labs đã chế tạo ra các máy tính. Nếu như máy của Atanassoff không chạy được
như mong muốn thì máy của Stibbitz với yêu cầu thấp hơn đã hoạt động tốt và được
giới thiệu năm 1940 tại Dartmouth College. Một trong những phụ tá của Stibbitz, John
Mauchley là giáo sư vật lý tại Đại học Pennsylvania mà chúng ta sẽ đề cập sau. Cùng
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính -9-
lúc ấy Howard Aiken để thực hiện luận án tại Havard đã phải làm một khối lượng lớn
các bài toán bằng tay. Chính vì vậy ông mong muốn thực hiện các bài toán một cách
tự động, sau đó nhờ các công trình của Babagge mà ông tìm thấy trong thư viện, ông
quyết định tạo một máy bằng rờ le mà trước đó Babagge đã không thể thực hiện được
bằng các bánh xe răng cưa.
Máy tính đầu tiên của Aiken là máy Mark I, được hoàn tất năm 1944 ở Harvard
gồm 72 từ, mỗi từ 23 số thập phân và có chu kỳ lệnh là 6 sec. Việc xuất nhập dùng các
băng giấy đục lỗ. Sau đó Aiken hoàn tất máy Mark 2 và các máy tính rơ le trở nên lỗi
thời. Kỹ nguyên điện tử đã bắt đầu.
2. Thế hệ thứ nhất:
Những máy tính đèn điện tử (1945-1955)
Các máy tính điện tử được phát triển nhanh trong thế chiến thứ 2 phục vụ các
mục đích quân sự. Tuy vậy các công trình này đều nằm trong các dự án bí mật quân
sự. Chỉ biết rằng tại Đức có nhữnng máy tính của Zuse, tại Anh có COLOSSUS mà
một trong những người tham gia thiết kế là nhà toán học nỗi tiếng người Anh tên Alan
Turing.
Tại Hoa kỳ, John Mauchley đề nghị quân đội tài trợ cho việc xây dựng máy tính
điện tử. Đề nghị được chấp thuận vào năm 1943, Mauchley và sinh viên J. Presper
Eckert, tiến hành xây dựng một máy tính điện tử gọi là ENIAC (Electronic Numerical
Integrator And Computer). Máy này gồm 18.000 đèn điện tử và 1500 rờ le, nặng 30
tấn và tiêu thụ 140KW. Sau này người ta thường xem ENIAC là máy tính điện tử đầu
tiên của nhân loại.
Sau chiến tranh, Mauchley và Eiker tổ chức một khóa học hè để mô tả các công
việc của họ cho những bạn đồng nghiệp. Khóa học là sự khởi đầu cho sự phát triển ồ
ạt trong việc thiết kế các máy tính số lớn. Maurice Wilkes thiết kế EDSAC tại Đại học
Cambridge. Các máy khác như JOHNIAC ở Rand Corporation, ILLIAC ở Đại học
Illinois, MANIAC ở Los Alamos Laboratory, WEIZAC ở Viện Weizmann nước Israel
v.v…
Eckert và Mauchley làm ra máy kế tiếp EDVAC (Electronic Discrete Variable
Automatic Computer) , dự án này bị tổn hại sau khi họ rời khỏi Penn để thành lập công
ty máy tính ở Philadelphia sau này là công ty Unisys.
Trong lúc ấy, một trong những người tham gia trong dự án ENIAC trước đây là
nhà toán học nổi tiếng John von Neumann đến Princeton và thiết kế ra máy IAS. Ông
đã đưa ra thiết kế cơ bản gọi là máy von Neumann. Máy tính có khả năng lưu trữ
chương trình đầu tiên , và đến nay vẫn là cơ sở cho hầu hết các máy tính số.
Vào cùng thời gian von Neumann xây dựng máy IAS, các nhà nghiên cứu ở
M.I.T. cũng xây dựng một máy tính, Whirlwind 1. Dự án này dẫn đến phá minh ra bộ
nhớ lõi của Jay Forrester và dẫn đến tạo ra các máy tính mini thương mại đầu tiên.
Với công việc ban đầu là sản xuất ra các máy đục lỗ cho các bìa và các máy xếp
bìa bằng cơ khí, năm 1953 IBM sản xuất ra máy tính 701, sau đó máy 704 ra đời và
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính -10-
năm 1958 IBM sản xuất ra máy 709 và trở thành một trong những công ty máy tính
hàng đầu thế giới.
3. Thế hệ thứ hai:
Những máy tính transistor (1955-1965)
Transistor được phát minh ở Bell Labs