• Phân loại máy tính số MTS theo cách thức thi hành chương trình MTS tuần tự liên tiếp: là MTS trong đó các chương trình được thi hành từng lệnh một, hết lệnh này đến lệnh khác.. MTS t
Trang 1Mục lục
Bài mở đầu 3
Chương 1 Các khái niệm cơ bản 5
1.1 Máy tính 5
1.2 Nguyên lý xây dựng máy tính 5
1.3 Phân loại máy tính 5
1.4 Các thế hệ máy tính 8
1.5 Phần cứng (hardware), phần mềm (software) và phần sụn (firmware) 10
1.6 Biểu diễn thông tin trong máy tính 13
1.7 Đơn vị lưu trữ thông tin 21
1.8 Câu hỏi tổng kết 21
Chương 2 Cấu trúc bên trong của máy tính 23
2.1 Cấu trúc chung của hệ thống máy tính 23
2.2 Mainboard và các thành phần hỗ trợ 29
2.3 Câu hỏi tổng kết 50
Chương 3 Đơn vị xử lý trung tâm (CPU) 51
3.1 Cấu trúc chung của CPU 51
3.2 Đơn vị điều khiển (CU) 51
3.3 Đơn vị xử lý toán học và logic 51
3.4 Các thanh ghi 51
3.5 Phân đoạn bộ nhớ 54
Chương 4 Bộ nhớ trong 59
4.1 Đại cương về bộ nhớ 59
4.2 Big endian và little endian 62
4.3 Phân loại bộ nhớ 62
4.4 Tổ chức bộ nhớ 67
4.5 DRAM 69
4.6 SRAM 72
4.7 Bộ nhớ chỉ đọc (ROM) 72
4.8 Bộ nhớ Flash và bộ nhớ Cache 73
4.9 Câu hỏi tổng kết 74
Chương 5 Bộ nhớ ngoài 76
5.1 Tổng quan về bộ nhớ ngoài 76
5.2 Đĩa mềm và ổ đĩa mềm (Floppy disk and floppy disk drive) 76
5.3 Đĩa cứng và ổ đĩa cứng 79
5.4 Tổ chức logic của đĩa mềm và đĩa cứng 82
5.5 Truy xuất ổ đĩa qua DOS và BIOS 101
5.6 Đĩa quang 104
5.7 Câu hỏi tổng kết 105
Chương 6 Hệ thống BUS 106
6.1 Bus hệ thống 107
6.2 Bus mở rộng (Expansion bus) 115
Trang 2Chương 7 Vào/ra dữ liệu và các thiết bị ngoại vi 120
7.1 Đại cương về vào/ra dữ liệu 120
7.2 Các chuẩn giao tiếp vào/ra 120
7.3 Giao tiếp PC Game 127
7.4 Giao tiếp với bàn phím và mouse 129
7.5 Monitor và card giao diện đồ hoạ 137
7.6 Câu hỏi tổng kết 146
Trang 3Bài mở đầu
Máy tính điện tử (MTĐT) ra đời vào đầu thập kỷ thứ tư của thế kỷ 20 và phát triển như vũ bão, làm nên một cuộc cách mạng trong lĩnh vực tính toán và xử lý thông tin, mở ra một kỷ nguyên mới trong lịch sử phát triển của nhân loại - Kỷ nguyên máy tính điện tử Cấu tạo của MTĐT ngày càng tinh vi và phức tạp, bao gồm nhiều thành phần khác nhau Kiến trúc máy tính
là ngành khoa học nghiên cứu việc thiết kế các thành phần khác nhau cấu thành MTĐT mà người lập trình có thể nhận thấy được
MTĐT không chỉ có các thành phần vật lý, thường được gọi là phần cứng (hardware)mà còn
có các chương trình điều khiển sự hoạt động của các thành phần phần cứng, chúng được gọi là phần mềm (software) Việc nghiên cứu thiết kế MTĐT là một bài toánkhổng lồ và phức tạp, cần không ngừng được cải tiến Chính vì vậy mà người ta phải chiabài toán lớn này thành nhiều bài toán nhỏ hơn, mỗi bài toán nhỏ sẽ giải quyết một vấn đề cụ thể, sử dụng một mức trừu tượng thích hợp
• Nội dung môn học
Nêu các khái niệm cơ bản về phần cứng, phần mềm, nguyên lý xây dựng máy tính Máy tính
số và ứng dụng rộng rãi của chúng trong các lĩnh vực khác nhau
Nội dung chính bao gồm: Giới thiệu về các ngoại vi chuẩn của máy tính PC như: bàn phím, chuột, máy in, màn hình, ổ đĩa cứng, ổ đĩa mền, ổ đĩa quang; Giới thiệu về các họ CPU thường dùng trong máy tính (họ 16 bít, 32 bít, 64 bít); Các chuẩn giao tiếp trong máy tính
• Mục tiêu
Trang bị cho Sinh viên những kiến thức cơ bản về kiến trúc và cấu trúc phần cứng máy tính như các thành phần tối thiểu cấu tạo nên máy tính, nguyên lý và hoạt động của chúng để giải quyết các vấn đề về:
Khai thác hiệu quả hệ thống máy tính
Xác định khả năng hoạt động của các thành phần của hệ thống máy tính
Giải quyết một số sự cố cơ bản của máy tính
• Tài liệu tham khảo:
Kỹ thuật vi xử lý - Văn Thế Minh
Kỹ thuật vi xử lý và máy vi tính - Đỗ Xuân Thụ & Hồ Khánh Lâm
Ngôn ngữ lập trình Assembly và IBM PC - YthaYu
Kỹ thuật lập trình điều khiển hệ thống - Đỗ Xuân Tiến
Kỹ thuật vi điều khiển - Lê Văn Doanh & Phạm Khắc Chương
Cẩm nang lập trình hệ thống - Norton (Dịch: Nguyễn Minh San - Hoàng Đức Hải) Kiến trúc máy tính - Nguyễn Đình Việt
Trang 4Cấu trúc máy vi tính – Tống Văn On The Intel Microprocessors 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium, and Pentium Pro Processor Architecture, Programming, and Interfacing - Barry B.Brey
Computer architecture and orgnization - John Phays 1998 Computer organixation architecture William stallings 1996
Trang 5Chương 1 Các khái niệm cơ bản
1.1 Máy tính
Máy tính (computer) là một thiết bị có khả năng thao tác (lưu trữ, xử lý) trên dữ liệu (thông tin) theo một cách phức tạp và lập trình được Việc tính toán của nó thực hiện theo một chương trình - một dãy các câu lệnh Dữ liệu có thể được biểu diễn dưới rất nhiều hình thức của thông tin như: số, ký tự, hình ảnh, âm thanh, … Trước khi phát minh ra máy tính, thuật ngữ computer thường được dùng để ám chỉ một người chuyên làm nhiệm vụ tính toán (human computer)
1.2 Nguyên lý xây dựng máy tính
Máy tính điện tử làm việc theo hai nguyên lý cơ bản, đó là nguyên lý số và nguyên lý tương tự
Nguyên lý số (Digital): Sử dụng các trạng thái rời rạc của đại lượng vật lý để biểu diễn số
liệu, nguyên lý này còn được gọi là nguyên lý đếm
Ví dụ về trình trạng rời rạc của đại lượng vật lý theo nguyên lý số được thể hiện trong bảng sau:
Linh kiện Đại lượng vật lý Trạng thái 1 Trạng thái 2
Chuyển mạch điện tử Dòng điện Có (nôi mạch) Không (ngắt mạch)
Nguyên lý tương tự (Analog): Sử dụng một đại lượng vật lý biến đổi liên tục để biểu
diễn số liệu, nguyên lý này còn có tên là nguyên lý đo
Ví dụ về đại lượng vật lý biến đổi liên tục theo nguyên lý tương tự thể hiện trong bảng sau:
Thiết bị Đại lượng vật lý
Máy tính điện tử tương tự Điện áp
1.3 Phân loại máy tính
Có nhiều phương pháp và cách phân loại khác nhau mà ở đây ta nêu lên phương pháp phân loại theo nguyên lý xây dựng máy tính điện tử Theo phương pháp này máy tính được phân chia thành hai lớp là máy tính tương tự và máy tính số Mỗi lớp lớn này lại có thể được chia thành các lớp con, ví dụ máy tính đa năng và máy tính chuyên dụng
1.3.1 Máy tính số (Digital Computer)
Trang 6Máy tính số là loại máy tính sử dụng các đại lượng vật lý biến thiên rời rạc (dạng số) để biểu diễn các đại lượng cần tính toán Những thông số cơ bản của máy tính
số là: tốc độ hoạt động, hệ thống lệnh và số địa chỉ của các lệnh, các thiết bị nhớ và dung lượng tin của chúng, tổ hợp các thiết bị vào/ra số liệu, kích thước,
Người ta có thể phân loại máy tính số dựa trên một số cơ sở khác nhau, đó là có thể là cách thức thi hành một chương trình, là nhiệm vụ mà người thiết kế định ra cho máy tính, Sau đây là ví dụ về sự phân loại trên
• Phân loại máy tính số (MTS) theo cách thức thi hành chương trình
MTS tuần tự (liên tiếp): là MTS trong đó các chương trình được thi hành từng lệnh một, hết lệnh này đến lệnh khác
MTS song song: là MST có thể thi hành đồng thời nhiều chương trình MTS song song cần có nhiều trang thiết bị hơn và phức tạp hơn MTS liên tiếp nhưng
có tốc độ tác động cao hơn
MTS tuần tự - song song: Là loại MST trung gian giữa hai loại máy tính số nêu trên, trong đó các phép tính theo mã của chương trình được liên tiếp đưa vào các bộ phận của máy tính, còn có các bộ phận thi hành các phép tính một cách song song
Ngày nay, trong tất cả các máy tính, kể cả loại máy tính được gọi là tuần tự, người ta cũng áp dụng các cơ chế thực hiện song song ở các mức độ khác nhau
để nâng cao tốc độ hoạt động chung của máy tính điện tử
• Phân loại máy tính số theo nhiệm vụ mà người thiết kế định ra cho nó
MTS chuyên dụng: Là loại MTS được chế tạo ra để giải quyết một loại bài
toán nhất định, nó thường đơn giản và rẻ tiền hơn MTS đa năng nhờ việc có thể giảm bớt một số thành phần của máy tính và thậm chí cả việc rút gọn tập lệnh của bộ vi xử lý của máy
Các máy tính chuyên dụng được sử dụng rộng rãi hiện nay:
Các máy tính điều khiển, nằm trong các hệ thống điều khiển những đối tượng và quá trình thực
Các máy tính được thiết kế để giải một loại (dạng) bài toán nhất định, chẳng hạn tính tổng các tích 2 số trong các bài toán về dự báo khí tượng, giải hệ phương trình vi phân
Trang 7Có tập lệnh tương đối lớn, bao gồm nhiều nhóm, mỗi nhóm phục vụ cho một loại thao tác nhất định, để có thể thi hành nhiều loại chương trình khác nhau một cách có hiệu quả
Kích thước các thanh ghi trong bộ xử lý và độ lớn của một đơn vị bộ nhớ (word - từ nhớ) phải không quá lớn cũng không quá nhỏ, thông thường bằng bội số của 8 Như vậy chúng có thể chứa vừa vặn một số ký tự ASCII 8 bit hoặc chứa được cón số đủ lơn cho hầu hết các chương trình ứng dụng chạy trên máy Các chương trình sạn thảo văn bản, chương trình quản lý, nói chung đều có dữ liệu kiểu ký tự
Các thiết bị nhớ có thể nhận vào, lưu trữ và đưa ra các số liệu, các kết quả và các chương trình Còn trong MTS chuyên dụng các chương trình, hằng số, thường được cứng hoá
Hệ thống trao đổi thông tin (giao diện) giữa máy và người sử dụng thuận tiện, giảm nhẹ các công việc mà con người phải thực hiện trong quá trình máy tính hoạt động
1.3.2 Máy tính tương tự (Analog Computer)
Máy tính tương tự (MTTT) là loại máy tính sử dụng các đại lượng vật lý biến thiên liên tục để biểu diễn các đại lượng cần tính toán Đại lượng vật lý đó thường là điện áp hoặc dòng điện
Mô hình hoá (modelling) là cơ sở cho sự hoạt động của MTTT, trong đó một quá trình vật lý thực sự hay các thành phần của nó được thay thế bằng một mô hình điện có các đặc tính tương tự Nhờ có mô hình điện mà việc nghiên cứu có thể tiến hành đơn giản, thuận tiện
Sự khác nhau cơ bản giữa MTTT và MTS là MTS chỉ làm được các phép tính số học cổ điểm như cộng, trừ, nhân, chia; để thực hiện các tổ hợp gồm các phép tính cộng và nhân những cái mà bộ cộng của MTTT chỉ làm trong nháy mắt thì ở MTS phải có một chương trình đặc biệt để sắp xếp dần dần các phép tính số học chủ yếu thành các tổ hợp cần thiết Các máy tính ngày nay có khả năng giải được hầu như mọi bài toán toán học và các tính toán logic phức tạp với tốc độ thực hiện, độ chính xác và độ tin cậy ngày càng cao Chính vì vậy mà MTTT với các nhược điểm trên thì chỉ còn được sử dụng cho những ứng dụng có tính chất chuyên biệt, không phổ biến như MTS
Trang 8Trước chiến tranh thế giới thứ II, máy tính tương tự điện và cơ khí được coi là một thành tựu vĩ đại và rất nhiều người nghĩ rằng nó là tương lai của khoa học tính toán Các máy tính tương tự được sử dụng các đại lượng vật lý biến thiên liên tục như dòng điện và điện áp hay tốc độ quay của các trục để biểu diễn các giá trị đang được xử lý Một ví dụ điển hình đó là chiếc máy tích phân bằng nước được xây dựng năm 1936 Không giống như các máy tính số hiện đại, máy tính analog không quá phức tạp và cần phải thiết lập cấu hình lại (lập trình lại) một cách thủ công để chuyển chúng từ công việc này sang giải quyết một vấn đề khác Các máy tính tương tự đã đem lại nhiều lợi ích trong giai đoạn khai sinh của máy tính số do chúng có thể giải quyết nhiều bài toán phức tạp trong khi khả năng của các máy tính số ban đầu còn rất giới hạn Nhưng cùng với sự phát triển của nhanh hơn và sử dụng bộ nhớ lớn hơn của máy tính số, máy tính tương tự dần bị thay thế, đặc biệt là sự phát triển của kỹ thuật lập trình và kỹ thuật mã hoá
Máy tính tương tự được ứng dụng mạnh nhất trong các thiết bị ngắm bắn cho vũ khí, ví
dụ như máy ngắm ném bom Norden và các máy tính toán cho pháo binh trên chiến trường Một số máy tính loại này vẫn còn được sử dụng vài thập kỷ sau CTTG II
Máy tính tương tự dạng lai, được điều khiển bởi các thiết bị điện tử số, vẫn giữ vai trò quan trọng cho tới những năm 1950, 1960, và sau đó trong một số ứng dụng đặc biệt
1.3.3 Máy tính lai (Hybrid Computer)
Đó là loại máy tính kết hợp cả hai nguyên lý số và tương tự, trong hệ thống này có một nửa là số và một nửa là tương tự Nửa số, về thực chất là một máy tính số hoặc là một tập hợp các phần tử tính toán số Nửa tương tự là một máy tính là một máy tính tương tự hoặc là một tập hợp các phần tử tính toán tương tự Trong quá trình tính toán, hai nửa này truyền dữ liệu cho nhau thông qua các bộ chuyển đổi (convertor) Việc đồng bộ hoạt động của hai nửa
có thể do một đơn vị điều khiển riêng hoặc do đơn vị điều khiển của máy tính số đảm nhiệm
1.4 Các thế hệ máy tính
1.4.1 Máy tính cơ khí
Nam 1942, nhà khoa học Pháp Blaise Pascal xây dựng một máy dầ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 co khí sử dụng các bánh rang và cung cấp lực bằng một cánh tay quay Nó chỉ thực hiện duợc các phép toán cộng và trừ 30 nam sau, nhà toán học Ðức Baron Gottfried Wilherm von Leibniz xây dựng một máy co khí làm duợc
Trang 9Phá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ả nang thực hiện các tính toán khác Lập trình viên máy tính dầu tiên là Ada Lovelace đã tạo ra phần mềm cho máy phân tích
Vào những nam 1930, Konrad Zuse xây dựng một chuỗi các máy tính toán tự độngbằng cách sử dụng các relay từ Sau dó, 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ụ diện làm cho bộ nhớ duợc làm tuoi 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 ý tuởng thiết kế
Nam 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 bang giấy đục lỗ
1.4.2 Máy tính dèn diện tử - thế hệ thứ nhất
Nam 1943, máy tính số diện tử dầu tiên trên thế giới bắt dầu hoạt dộng, máy Colossus Colossus do Alan Turing thiết kế nhằm thực hiện giải mã các thông diệp đã mã hóa trong chiến tranh thế giới thứ 2 Cung trong nam 1943, Mauchley và Presper Eckert bắt dầu tiến hành xây dựng máy tính ENIAC (Electronic Numerical Integrator And Computer) ENIAC gồm 1800 dèn diện tử và 1500 relay, 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 dó, John von Neumann thiết kế máy IAS dựa co 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 co bản: bộ nhớ, đơn vị luận lý số học (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 cung dang xây dựng một máy tính, máy Whirlwind 1 Nó có từ dài 16 bit và thiết kế để điều khiển thời gian thực
1.4.3 Máy tính transistor – thế hệ thứ hai
Nam 1948, John Bardeen, Walter Brattain và William Shockley phát minh ra transistor
đã làm cuộc cách mạng trong linh vực máy tính Máy tính transistor dầu tiên duợc xây dựng tại MIT, máy TX-0 (Transistorized experimental computer 0), có 16 bit tương tự như Whirlwind 1
Nam 1961, máy tính PDP-1 xuất hiện có 4K từ 18 bit và khoảng thời gian một chu kỳ là 5
∝s Vài nam sau, PDP-8 ra dờ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 dổi mới dó là hình thành một bus đơn gọi là omnibus trong dó 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
Trang 10Trong khi dó, IBM xây dựng một phiên bản của 709 bằng transistor, dó là máy tính 7094
có thời gian một chu kỳ là 2 ∝s và bộ nhớ 32K từ 36 bit Nam 1964, công ty CDC giới thiệu máy 6600 có tốc dộ nhanh hơn 7094 do bên trong CPU có một co 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, 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ả nang thực thi 10 lệnh dồng thời
1.4.4 Máy tính IC – thế hệ thứ ba
Vi mạch duợc phát minh cho phép dặ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 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, duợc thiết kế dựa trên các vi mạch Ðổi mới quan trọng trong 360 là khả nang da lập trình (multiprogramming), có vài chương trình trong bộ nhớ dồng thời để khi một chương trình dang chờ xuất / nhập dữ liệu thì chương trình khác có thể tính toán Một dặc trung khác của
360 là không gian địa chỉ lớn (thời diểm lúc dó), với 224 byte nhớ (16 MB)
1.4.5 Máy tính cá nhân và VLSI – thế hệ thứ tu
Vào thập niên 80, vi mạch VLSI (Very Large Scale Integrate) có khả nang chứa vài chục ngàn, vài tram ngàn và vài triệu transistor trên một chip đơn đã duợ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 dó, 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 thuờ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 Các máy tính trong thế hệ này
có thể chia thành 5 loại: máy tính cá nhân, máy tính mini, siuê máy tính mini, mainframe, siêu máy tính
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ự độnghó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 dòi hỏi co sở dữ liệu lớn, … Siêu máy tính duợc thiết kế dặc biệt để cựa dại hóa số các thao tác dấu chấm dộng trong 1s (FLOP – floating point operations per second) Máy tính nào có tốc dộ duới 1 GF/s thì không duợc xem là siêu máy tính
1.5 Phần cứng (hardware), phần mềm (software) và phần sụn (firmware)
1.5.1 Phần cứng (Hardware)
Trang 11Phần mềm thì ngược lại, nó bao gốm các thuật toán và các biểu diễn cho máy tính của chúng ta, đó chính là các chương trình Chương trình có thể được biểu diễn (lưu trữ) trên bìa đục lỗ, băng từ, đĩa từ, … hay các môi trường khác, tuy nhiên cái cơ bản nhất của phần mềm chính là tập hợp các câu lệnh (chỉ thị) tạo nên chương trình chứ không phải là môi trường vật
lý được sử dụng để ghi (lưu trữ) chương trình
1.5.3 Phần sụn (Firmware)
Phần sụn (hay còn gọi là phần nhão) là dạng trung gian giữa phần cứng và phần mềm, nó
là phần mềm được nhúng vào các mạch điện tử trong quá trình chế tạo ra các mạch điện tử này Firmware được sử dụng khi các chương trình hiếm khi hoặc không bao giờ cần thay đổi Một ví dụ trực quan cho phần sụn này chính là ROM BIOS chứa các chương trình khởi động, các dịch vụ vào/ra cơ sở, dữ liệu về cấu hình của hệ thống, … mà chúng đã tối ưu, hoàn chỉnh mà không cần phải thay đổi nữa (ít thay đổi) Hay các phần mềm trong đồ chơi hoặc trong các dụng cụ máy móc, điện thoại di động, …
Firmware cũng được sử dụng khi các chương trình không được phép mất đi khi mất điện (nguồn nuôi) Trong nhiều máy tính các vi chương trình thuộc Firmware (chẳng hạn như các chương chình con phục vụ ngắt của BIOS)
Kết luận: tư tưởng chủ đạo của lĩnh vực nghiên cứu kiến trúc máy tính là: Phần cứng và phần mềm là tương đương nhau về mặt logic
Nói chung một thao tác được thực hiện bằng phần mềm thì cũng có thể xây dựng phần cứng để thực hiện trực tiếp thao tác đó, ngược lại mọi thao tác (các lệnh – chỉ thị) được thực hiện bằng phần cứng thì cũng có thể mô phỏng bằng phần mềm
Việc quyết định đưa những chức năng nhất định nào vào phần cứng và các chức năng nào vào phần mềm được dựa trên các yếu tố như giá cả, tốc độ, độ tin cậy và tần xuất của sư thay đổi có thể xảy ra Không có những quy tắc bắt buộc quy định một cách rõ ràng rằng phải đưa thao tác x này vào trong phần cứng, còn thao tác y kia phải được thực hiện bằng phần mềm (được lập trình) Những người thiết kế máy tính khác nhau, với những mục tiêu khác nhau có thể thường quyết định khác nhau về vấn đề này
Trong những máy tính đầu tiên thì ranh giới (sự tách biệt) giữa phần cứng và phần mềm
là rõ rệt Phần cứng chỉ thực hiện một số ít các chỉ thị đơn giản, chẳng hạn như lệnh cộng (ADD), lệnh so sánh (CMP), lệnh nhảy (JMP) hoặc một vài lệnh khác Còn mọi chỉ thị (lệnh) khác được lập trình một cách rõ ràng (chẳng hạn như tính sin, cos, nhân, …) Nếu chương trình cần nhân (hoặc tính sin của một số) 2 số thì người lập trình phải tự mình viết một chương trình con để thực hiện công việc đó (hoặc lấy nó từ thư viện chương trình mẫu, nếu
ai đó đã lập sẵn và đưa vào thư viện chương trình mẫu) Dần dần theo thời gian, những người thiết kế phần cứng nhận thấy rõ ràng một số thao tác được thực hiện khá thường xuyên, đó là những công việc đơn giản ( làm nhiều lần thì dễ bị lỗi hay sai sốt ( nên cần thiết phải xây dựng những mạch điện phần cứng đặc biệt để thực hiện chúng một cách trực tiếp, làm cho nó được thực hiện nhanh hơn
Trang 12( Kết quả là có khuynh hướng (xu hướng) chuyển các thao tác xuống phần cứng (mức 0) Những công việc trước đây được lập trình một cách rõ ràng ở mức máy thông thường thì nay thấy được ở mức dưới, trong phần cứng
Với sự ra đời của kỷ nguyên vi chương trình và máy tính nhiều mức, một khuynh hướng ngược lại cũng xuất hiện Trong các máy tính đầu tiên, lệnh cộng (ADD), hoặc trừ (SUB) được thực hiện bằng phần cứng (không ai nghi ngờ về điều đó) Trong một máy tính được lập vi chương trình, chỉ thị ADD của mức máy thông thường (hoặc mức ngôn ngữ assembly) thường được thông dịch bằng vi chương trình chạy ở mức dưới cùng và được thực hiện như một dãy các bước nhỏ hơn (dãy các vi chỉ thị ( (vi) chương trình)
Các chỉ thị cho phép nhân và chia số nguyên
Các chỉ thị đối với số dấu phảy động
Các chỉ thị số học có độ chính các kép (các phép tính số học trên các con số có số chữ
số có nghĩa nhiều gấp hai bình thường)
Trang 13hạn: đặt hàng một máy tính chuyên dụng nào đó ( sự thiết kế sẽ được định hướng theo yêu cầu của lĩnh vực đó)
Các phần mềm ngày nay có thể là phần cứng trong nay mai hoặc ngược lại Hơn thế nữa ranh giới giữa các mức khác nhau cũng dễ thay đổi Theo quan điểm của từng lập trình viên thì việc chọn một chỉ thị (lệnh) thực tế được thi hành như thế nào không quan trọng (có thể chỉ quan tâm tới tốc độ thực hiện của chỉ thị đó) Một người lập trình ở mức máy (thông thường) có thể sử dụng chỉ thị nhân của mức này như thể nó là một chỉ thị cho phần cứng mà không phải quan tâm lo lắng gì cả, thậm chí cũng không cần biết nó có thực sự là một chỉ thị cho phần cứng hay không Phần cứng của người này có thể gọi là phần mềm của ngeời khác Thật vậy, một người lập trình viên không cần thiết phải hiểu rõ mức mà anh ta đang sử dụng được tạo ra như thế nào dẫn đến ý tưởng về thiết kế máy tính có cấu trúc Một mức thường được gọi là máy ảo vì người lập trình nghĩ về nó như một cái máy vật lý thực sự, mặc
dù nó không thực sự tồn tại
Bằng việc tạo ra cái máy gồm một dãy các mức, người lập trình làm việc ở mức n không cần thiết phải hiểu rõ mọi chi tiết phức tạp của các mức nằm bên dưới, nhờ đó việc nghiên cứu, thiết kế và chế tạo ra các máy tính phức tạp trở nên đơn giản hơn rất nhiều
1.6 Biểu diễn thông tin trong máy tính
Trong máy tính thông tin được qui về 2 dạng chính đó là lệnh và dữ liệu Trong dạng dữ liệu, có dạng số và dạng phi số Ta thường phải làm việc với các số nguyên và thực
Tất cả các dạng thông tin trên đều được chuyển đổi thành số hệ 2 (là các bit 0 và 1) Việc biểu diễn thông tin phi số (đại diện cho dạng phi số đó là ký tự) được thông qua các bảng mã ASCII, EBCDIC,
Lệnh (Instruction)
Thông tin
Số nguyên Dạng số
Số thực
Dữ liệu (Data)
Dạng phi số (đại diện là ký tự)
Trang 141.6.1 Các hệ đếm
• Hệ đếm cơ số 2
Trong cuộc sống chúng ta thường sử dụng hệ 10 vì đã quen thuộc, dễ tính toán (đối với các phép tính cộng, trừ, nhân, chia) Hệ đếm cơ số 10 (viết tắt là D - Decimal number system) gồm 10 chữ số để biểu diễn : 0, 1, , 9
Trong thế giới máy tính, để biểu diễn một giá trị số chúng ta thường sử dụng hệ đếm cơ
số 2 (Hệ 2, viết tắt là B - Binary munber system) sử dụng 2 chữ số để biểu diễn đó là 0 và 1
Đó cũng tương ứng với các trạng thái mức điện áp cao và mức điện áp thấp của các linh kiện điện tử cấu tạo nên máy 0 và 1 cũng là các giá trị của số hệ 2 và được gọi là 1 bit Đây là hệ đếm quan trọng dùng trong các máy tính ngày nay
Một số hệ 2 gồm các chữ số 0 và 1 (các bit) và chữ B đi kèm để phân biệt với các hệ đếm khác khi cùng lúc làm việc với nhiều hệ đếm khác nhau
- Cụm 4 bit tạo thành 1 nipple
- Cụm 8 bit tạo thành 1 byte
- Cụm 16 bit tạo thành 1 từ (word)
- Cụm 32 bit tạo thành 1 từ kép (double word)
Chữ số đầu tiên bên trái trong dãy các bit của một số nhị phân gọi là bit có trọng số lớn nhất (MSB - Most Significan Bit) Chữ số cuối dùng bên phải trong dãy các bit của một số nhị phân gọi là bit có trọng số bé nhất (LSB - Least Significan Bit)
Công thức tổng quát của một số của một hệ đếm bất kỳ là :
X = anqn + an-1qn-1 + + a1q1 + a0q0 + a-1q-1 + + a-nq-n +
- Khi q = 10, ai = 0, 1, ,9 ta có hệ đếm cơ số 10 (hệ thập phân)
- Khi q = 8, ai = 0, 1, ,7 ta có hệ đếm cơ số 8 (hệ bát phân)
- Khi q = 16, ai = 0, 1, ,9, A, B, C, D, E, F ta có hệ đếm cơ số 16 (hệ thập lục phân)
Vậy ta có công thức tổng quát cho một số trong hệ 2 là :
Trang 15(Chú ý : Cách chuyển đổi giữa các hệ đếm)
1.6.2 Biểu diễn số nguyên có dấu và không dấu
• Số nguyên không dấu
Dùng 1 bit ta có thể mã hoá được số 0, 1 (hệ 10) = 0 ( 21 - 1
Dùng 2 bit ta có thể mã hoá được số 0, 1, 2, 3 = 0 ( 22 - 1
Dùng 8 bit ta có thể mã hoá được số = 0 ( 28 - 1
Dùng 16 bit ta có thể mã hoá được số = 0 ( 216 - 1
Tổng quát, nếu dùng n bit, ta có thể biểu diễn được một số bất kỳ trong khoảng 0 (2n-1
bit dấu = 0, ta có số dương
bit dấu = 1, ta có số âm
Tuy nhiên cách biểu diễn này không thoả mãn vì có 2 số 0 là + 0 và - 0
Trang 160101 1010
Cho số nhị phân 0001 1011
Ta có mã bù 1 của số đó là 1110 0100
Và mã bù 2 của số đó là :
Trang 17Với số hệ 2: Biểu diễn theo mã bù 2 ta cũng có tính chất tương tự
Từ đó ta có thể tổng quát cho các phép toán nhân, chia
Nếu sử dụng mã bù 2 của một số để biểu diễn là số âm của số đó thì thoả mãn các yêu cầu về phép tính trên số nhị phân Cách biểu diễn này thích hợp cho việc tận dụng các bộ cộng sẵn có trong bộ vi xử lý và tránh được việc biểu diễn 2 số + 0 và - 0
Với một hệ thống nào đó thì R là cố định Trong máy tính ngày nay thông thường R=2
Trang 18Bản chất lưu trữ
Trong máy chỉ lưu trữ phần mũ và phần định trị
Một thực hiện phép toán như sau:
Giả sử cho 2 số: x1 = m1.re1
x2 = m2.re2 x1*x2 = (m1*m2).re1 + e2 x1/x2 = (m1/m2).re1 - e2 Với e1 ( e2 ta có :
x1 + x2 = (m1.re1 - e2 + m2).re2
x1 - x2 = (m1.re1 - e2 - m2).re2
Nếu e1 < e2 thì r <0 ( phải hiệu chỉnh m1
Trong máy lưu trữ như sau: (hình vẽ)
Chuẩn IEEE 754/1985
Ngầm định cơ số là 2, có 3 dạng chính là :
Dạng sử dụng 32 bit, cho chế độ chính xác đơn (single precision)
Dạng sử dụng 64 bit, cho độ chính xác kép (double precision)
Dạng sử dụng 80 bit cho độ chính xác mở rộng (extended precision)
Xét trường hợp sử dụng 32 bit
23 22 15 7 0
8 bit mũ E’ 23 bit định trị
Bit 31 (MSL) dùng làm bit dấu
Phần định trị (M) chiếm 23 bit cho phần sau dấu phẩy nhị phân
m e
Trang 19bit dấu = 1 ( số âm
Nếu E’ = 0 và M ( thì x = (-1)s(0,ME’ - 126
Nếu 0 < E’ < 255 thì x = (-1)s(1,ME’ - 127
Dạng 64 bit:
bit 63 là bit dấu
Các bit 62 ( 52 chứa phần mũ E’ (E = E’ - 1023)
Các bit 51 ( 0 chứa phần định trị M
Dạng 80 bit:
bit 79 là bit dấu
Các bit 78 ( 64 phần mũ E’ (E = E’ - 16383)
Các bit 64 ( 0 chứa phần định trị M
1.6.4 Biểu diễn ký tự (bảng mã ASCII)
Thông tin nói chung trong máy tính đều được biểu diễn dưới dạng các bit 0 và 1 Một cụm (dãy) các bit 0 và 1 sẽ được ''cảm nhận'' với ý nghĩa khác nhau khi chúng biểu diễn giá trị số hay ký tự theo các mã khác nhau Mỗi tổ hợp các bits 0 và 1 được gán cho 1 chữ cái, một chữ số hay một ký tự nào đó theo một cách nhất định để truy xuất ra màn hình hiển thị Trong thực tế, thông tin được lưu trữ trong bộ nhớ, truyền đi xa hay hiển thị ra màn hình đều
Trang 20ở dạng ký tự và tuân theo một loại mã phổ biến đó là bảng mã ASCII (American Standard Code for Information Interchange) Việc sử dụng theo tiêu chuẩn này làm tăng thêm khả năng trao đổi thông tin giữa các máy tính khác nhau trong mạng
Theo bảng mã ASCII, người ta dùng 7 bit để mã hoá các ký tự thông thường ( có 128 ký
tự (từ 0 ( 127) Bit thứ 8 thường được sử dụng để sửa lỗi
Ví dụ :
7 - <Bel> ( tiếng chuông
8 - <BS> ( Back Space (xoá lùi)
0AH - <LF> ( Line Feed (thêm dòng mới - xuống dòng)
0DH - <CR> ( Carriage Return (về đầu dòng)
20H - <SP> ( Space (dấu cách)
1.6.5 Số BCD
Ta đã biết cách chuyển đổi một số hệ 10 sang các hệ đếm khác nhau Hệ BCD được sử dụng để mã hoá mỗi một chữ số trong một số hệ 10 sang một số hệ 2 Người ta sử dụng một cụm 4 bit để mã hoá 1 chữ số trong hệ 10 vì tối đa cho việc mã hoá số 9 ta không thể sử dụng
Trang 211.7 Đơn vị lưu trữ thông tin
1.7.1 Bit
Theo nguyên lý số để xây dựng máy tính thìngười ta sử dụng các đại lượng vật lý biến thiên rời rạc để biểu diễn dữ liệu (thông tin) cân tính toán Nếu sử dụng đại lượng vật lý có nhiều giá trị khác nhau (đa trị) thì việc phân biệt các giá trị lân cận sẽ khó khăn hơn và do đó
độ tin cậy giảm Hệ thống số nhị phân chỉ có hai giá trị: 0 và 1, nên việc sử dụng nó là phương pháp tin cậy nhất để mã hoá (encode) thông tin Đơn vị cơ sở của thông tin khi này gọi là bit (Binary Digit) Một bit có thể nhận giá trị 0 hoặc 1 Và từ đó đơn vị lưu trữ thông tin nhỏ nhất (của bộ nhớ) cũng là bit, nó có thể lưu được một bit 0 hoặc 1
1.7.2 Các đơn vị dẫn xuất
8 bit = 1 byte
210 byte = 1024 byte = 1 Kilobyte (KB)
210 Kilobyte = 1024 Kilobyte = 1 Megabyte (MB)
210 Megabyte = 1024 Megabyte = 1 Gigabyte (GB)
210 Gigabyte = 1024 Gigabyte = 1 Tetabyte (TB)
1.8 Câu hỏi tổng kết
Trang 23Chương 2 Cấu trỳc bờn trong của mỏy tớnh
2.1 Cấu trỳc chung của hệ thống
mỏy tớnh
Mỏy tớnh gồm cú 5 phần với 4
phần vật lý (phần cứng - hardware) và
một phần tham gia vào việc khai thỏc
tớnh năng của mỏy tớnh đú là chương
trỡnh (phần mềm - sorftware)
Bộ xử lý trung tõm
(CPU) cú chức năng thực hiện cỏc cõu lệnh trong chương trỡnh
Hệ thống nhớ (Memory
system) dựng để lưu trữ chương trỡnh và dữ liệu
Phần mềm (gồm hệ điều hành và cỏc chương trỡnh ứng dụng)
Mỏy tớnh cú 1 CPU được gọi là mỏy tớnh tuần tự (mỏy tớnh Von Neumamn) Mỏy tớnh cú nhiều bộ xử lý được gọi là mỏy tớnh song song Trong chương trỡnh chỳng ra quan tõm tới mỏy tớnh tuần tự (cú 1 CPU)
2.1.1 Hoạt động của mỏy tớnh:
CPU được nối với cỏc thành phần khỏc bằng bus hệ thống nghĩa là sẽ cú nhiều thiết bị cựng dựng chung một hệ thống dõy dẫn để trao đổi dữ liệu Do đú, để hệ thống khụng bị xung đột, CPU phải xử lý sao cho trong một thời điểm, chỉ cú một thiết bị hay ụ nhớ đó chỉ định mới cú thể chiếm dụng bus hệ thống Do mục đớch này, bus hệ thống bao gồm 3 loại:
- Bus dữ liệu (data bus): truyền tải dữ liệu
- Bus địa chỉ (address bus): chọn ụ nhớ hay thiết bị ngoại vi
Memory CPU
Phối ghép vào ra (I/O) Bus hệ thống
TBVào
TB
Ra
Sơ đồ khối của máy tính
Trang 24- Bus điều khiển (control bus): hỗ trợ trao đổi thông tin trạng thái như phân biệt CPU phải truy xuất bộ nhớ hay ngoại vị, thao tác xử lý là đọc/ghi, …
CPU phát tín hiệu địa chỉ
của thiết bị lên bus địa chỉ Tín
hiệu này được đưa vào mạch
giải mã địa chỉ chọn thiết bị Bộ
giải mã sẽ phát ra chỉ một tín
hiệu chọn chip đúng sẽ cho
phép mở bộ đệm của thiết bị
cần thiết, dữ liệu lúc này sẽ
được trao đổi giữa CPU và thiết
bị Trong quá trình này, các tín
hiệu điều khiển cũng được phát
trên control bus để xác định
mục đích của quá trình truy
Trang 25CPU thi hành mỗi chỉ thị theo các bước nhỏ:
(1) Lấy chỉ thị (fetch) từ bộ nhớ đặt vào thanh ghi lệnh IR
(2) Thay đổi IP trỏ vào lệnh tiếp theo (tăng 1 nếu là tuần tự)
(3) Xác định kiểu của lệnh vừa lấy về
(4) Nếu lệnh có tác động lên dữ liệu trong bộ nhớ ( xác định dữ liệu (toán hạng) (5) Lấy dữ liệu từ bộ nhớ, đặt vào các thanh ghi (nào đó trong CPU)
(6) Thi hành chỉ thị
(7) Lưu kết quả vào nơi thích hợp
(8) Quay lại bước (1)
Dãy các bước này thường được gọi là chu kỳ: lấy lệnh – giải mã lệnh – thi hành lệnh Đó chính là trung tâm của sự hoạt động của mọi máy tính
• Các thành phần cơ bản của một bộ vi xử lý
(Chú ý: Bổ xung chi tiết hơn phần này)
Đơn vị điều khiển (Control Unit - CU): điều khiển hoạt động của chính CPU
và các thành phần khác của hệ thống theo chương trình đã định sẵn (dãy các lệnh) bằng các xung điều khiển
Đơn vị số học logic (Arthmetic and Logic Unit - ALU): thực hiện chức năng
xử lý dữ liệu (tính toán số học : +, -, *, / Các phép toán Logic : NOT, AND,
OR, XOR Các phép thao tác bit: SHL, SHR, ROL, ROR, )
Tập các thanh ghi (Register set): Các ngăn nhớ đặc biệt nằm ngay trong CPU
để tăng tốc độ trao đổi dữ liệu Một số thanh ghi trong tập thanh ghi này lưu trữ các thông tin tạm thời phục vụ cho việc thực hiện chương trình
Bus bên trong: Hệ thống bus bên trong CPU là tập các đường dây làm nhiệm
vụ kết nối, trao đổi thông tin giữa các thành phần với nhau
2.1.3 Bộ nhớ (Memory)
Bộ nhớ trong (là bộ nhớ bán dẫn, gồm các IC nhớ) là bộ phận quan trọng của hệ vi xử lý
Nó có nhiệm vụ lưu trữ chương trình và dữ liệu Bộ nhớ trong bao gồm bộ nhớ chính và bộ nhớ ẩn (cache) Ngoài ra còn có bộ nhớ ngoài để lưu trữ lâu dài các dữ liệu và chương trình (ổ đĩa cứng, mềm, đĩa CD-ROM, )
Khi khởi động máy tính, chương trình điều khiển được chứa trong ROM (Read Only Memory - bộ nhớ chỉ đọc) sẽ điều khiển hoạt động của toàn bộ hệ thống
Các chương trình ứng dụng, một phần chương trình điều khiển cũng như các kết quả khi chạy chương trình thường được để ở RAM (Random Access Memory - bộ nhớ truy nhập bất kỳ)
• Các IC nhớ thường được dùng với hệ thống máy tính gồm:
Trang 26ROM (Read Only Memory – Bộ nhớ cố định):
Bộ nhớ loại này thường có nội dung được ghi sẵn từ khi sản xuất và chỉ có thể đọc ra nên chúng được gọi là bộ nhớ cố định Loại này còn được gọi là ROM mặt nạ vì thông tin trong ROM được ghi thông qua một mặt nạ Khi mất nguồn nuôi cung cấp cho vi mạch thì thông tin vẫn còn (nội dung trong RM không bị mất đi)
PROM (Programmable ROM): Loại này ra ROM trắng (chưa ghi thông tin) sau khi sản xuất Người sử dụng có thể ghi thông tin vào ROM theo ý mình một lần duy nhất bằng máy nạp ROM (máy ghi ROM chuyên dụng)
EPROM (Erasable ROM): Loại ROM này có thể ghi (“lập trình”) bằng xung điện và xoá bằng tia cực tím (UV – Untra Violete), từ một máy nạp ROM EEPROM (Electric EPROM): Giống như EPROM, nhưng việc ghi/xoá ROM
có thể thực hiện ngay trong mạch làm việc mà không đòi hỏi phải thông qua máy nạp ROM
RAM (Random Access Memory – Bộ nhớ ghi/đọc): Đặc trưng của loại bộ nhớ này là thông tin sẽ bị mất đi khi mất nguồn nuôi cấp cho vi mạch
SRAM (Static RAM – RAM tĩnh): Mỗi phần tử nhớ của loại này được cấu tạo
từ mạch lật (flip – flop) nên có đặc điểm là tác động nhanh, thông tin ổn định Kèm theo đó là tốn nhiều transistor cho một đơn vị nhớ nên đắt tiền Chúng thường được dùng vào những thành phần nhớ quan trọng như thanh ghi, cache,
DRAM (Dynamic RAM): Mỗi phần tử nhớ của loại này được cấu tạo từ một tụ điện nhỏ, được chế tạo bằng công nghệ PMOS Loại này có đặc điểm là tác động chậm, thông tin không ổn định vì có sự dò điện tích giữa 2 bản tụ (1: tụ được tích điện, 0: tụ không được tích điện) nên cần các mạch phụ trợ để bù lại lượng điện tích bị dò – gọi là các mạch làm tươi Loại này rẻ hơn SRAM và có thể sản xuất vi mạch nhớ với dụng lượng lớn
2.1.4 Phối ghép I/O
• Chức năng
Giao tiếp, trao đổi thông tin giữa hệ thống máy tính với thế giới bên ngoài
• Các thành phần cơ bản
Trang 27ngoài được gọi là các cổng vào/ra (I/O port) Mỗi cổng có một địa chỉ xác định Các I/O port lại được chia thành các cổng vào để nhận thông tin vào hệ thống và các cổng ra để đưa thông tin từ hệ thống ra thế giới bên ngoài CPU trao đổi thông tin với các thiết bị ngoại vi thông qua các cổng tương ứng Các mạch cổng này có thể được xây dựng từ các mạch logic đơn giản hay bằng các vi mạch chuyên dụng mà ta sẽ nghiên cứu trong các chương sau
2.1.5 Bus system và bus mở rộng
Liên hệ giữa các khối là hệ thống bus - tập hợp các
đường dây dùng để kết nối, trao đổi thông tin từ phần
mạch này đến phần mạch khác (các khối) trong phạm
Khả năng phân biệt địa
chỉ của CPU phụ thuộc vào
số bit (số đường dây) của bus địa chỉ
Bus địa chỉ gồm An-1( A0 (n bit) ( địa chỉ hoá được 2n địa chỉ
Ví dụ:
Nếu n = 16 ( đánh địa chỉ được 216 = 64 Kilô ô nhớ
Nếu n = 20 ( đánh địa chỉ được 220 = 1 Mega ô nhớ
Số lượng các ô nhớ có thể đánh địa chỉ được gọi là không gian nhớ của máy tính
CPU
Bé nhí
Phèi ghÐp
Trang 28Khi đọc/ghi với ô nhớ hay cổng vào/ra, CPU đưa ra trên bus địa chỉ các bit tương ứng (trên hình vẽ ta cũng thấy tính một chiều của bus địa chỉ vì CPU chủ động đưa địa chỉ lên bus này) Các bộ vi xử lý 8088, 8086 có 20 bit bus địa chỉ ( không gian nhớ là : 220 = 1 Mega
Bộ vi xử lý Pentium II có n = 36 ( không gian nhớ của nó là: 236 = 64 Giga ô nhớ
Kết luận: Độ rộng của bus địa chỉ cho biết khả năng quản lý bộ nhớ (độ lớn của không gian nhớ)
Bus dữ liệu
Độ rộng của bus dữ liệu thường là 8, 16, 32, 64 tuỳ theo các bộ vi xử lý Ngày nay các bộ
vi xử lý tiên tiến thường làm việc với bus dữ liệu có độ rộng 64 hoặc thậm chí là 128 Độ rộng bus dữ liệu quyết định số bit dữ liệu mà CPU có khả năng nhận hay chuyển cùng lúc Bus dữ liệu là bus 2 chiều Dữ liệu có thể truyền đi từ CPU ra bộ nhớ (hoặc cổng vào/ra) hay từ bộ nhớ (hoặc cổng vào/ra) đến CPU Dữ liệu ở đây bao gồm cả lệnh và các thông tin khác
Bus điều khiển
Độ rộng bus điều khiển thường khá nhỏ, nhỏ hơn độ rộng bus dữ liệu và bus địa chỉ Mỗi tín hiệu điều khiển có 1 chiều nhất định CPU có thể gửi các tín hiệu điều khiển tới các khối trong hệ đồng thời nó cũng nhận tín hiệu điều khiển từ các khối Trong chừng mực nào đó có thể coi bus điều khiển là bus 2 chiều Tính 2 chiều ở đây không phải là của 1 tín hiệu mà là của 1 nhóm tín hiệu
• Một số tín hiệu điều khiển điển hình
Các tín hiệu phát ra từ CPU ghi/đọc bộ nhớ hay cổng vào/ra
Memory Read (MEMR) là tín hiệu điều khiển đọc nội dung ô nhớ có địa chỉ xác định, đưa lên bus dữ liệu
Trang 29Non Maskable Interupt (NMI) : Ngắt mà không có khả năng che được (không cấm được) Tín hiệu từ bên ngoài gửi đến CPU và CPU phải ngắt
Interupt Request (INTR) là tín hiệu ngắt từ bên ngoài gửi đến CPU yêu cầu ngắt Yêu cầu này có thể được chấp nhận hoặc không, nên ngắt này gọi là ngắt che được
Interupt Acknowledge (INTA) là tín hiệu phát ra từ CPU báo cho thiết bị yêu cầu ngắt rằng CPU chấp nhận ngắt
Reset : Thuộc loại ngắt không che được (CPU phải ngắt) Nó yêu cầu CPU thực hiện chương trình khởi động (Restart) Ngắt này thường xuất hiện khi ta ấn nút Reset trên máy
Các tín hiệu chuyển nhượng bus
Bus Request (BRQ - Hold): Tín hiệu phát ra từ một mạch điều khiển bên ngoài gửi đến yêu cầu CPU chuyển nhượng bus
Bus Grant (BGT - HLDA): Tín hiệu phát ra từ CPU báo cho mạch điều khiển bên ngoài biết CPU chấp nhận chuyển nhượng bus
độ tin cậy cao và ổn định với sóng nhiễu từ bên ngoài Cũng như nhiều loại máy điện, điện tử khác, bo mạch chính và vỏ máy phải tuân thủ các quy định quốc gia về an toàn điện, an toàn
Trang 30nhiễu điện từ (đặc biệt do tần số làm việc của máy tính nằm trong giải tần số sóng vi ba nên rất dễ gây nhiễu cho các máy móc khác)
Bo mạch chính được sản xuất theo công nghệ mạch in (PCB – Printed Circuit Board) Do
số chân nối của các vi mạch (IC) ngày các nhiều (Pentium có 273 chân) nên số lượng dây dẫn trên board ngày càng lớn khiến diện tích bản mạch chính cũng tăng theo Số chân nối và
độ phức tạp tăng khiến việc thiết kế bản mạch cũng trở nên khó khăn Để giải quyết vấn đề này người ta sử dụng kỹ thuật chế tạo mạch in nhiều lớp (Multi layer PCB) cho các bo mạch máy tính hiện đại Bo mạch chính được sản xuất theo lối xếp chồng (sandwich) nhiều lớp tương tự như công nghệ chế tạo mạch tin, nhờ đó mà main board giảm đáng kể diện tích bề mặt
Hình vẽ: Cấu trúc bản mạch 4 lớp
Các hãng sản xuất vi mạch (IC) đều có tài liệu hướng dẫn cách bố trí các chân vi mạch Những tài liệu này giúp phần giảm nhẹ chi phí thiết kế main board nói chung và các card mở rộng nói riêng Các main board hiện này thường có từ 4 – 6 lớp (điều đó cho thấy việc sửa chữa thủ công cho main board là gần như không thể) Một công nghệ nữa góp phần thu nhỏ kích thước main board là công nghệ (hàn) dán chi tiết bề mặt (SMT – Surface Mounted Technology) Công nghệ này cho phép “dán” trực tiếp vi mạch lên trên main board ==> giảm bớt công đoạn khoan bản mạch và làm giảm đáng kể kích thước vỏ của vi mạch
Để giảm hơn nữa độ phức tạp bề mặt main board và giảm diện tích, người ta chế tạo các main board nhiều hơn 4 lớp Với các main board nhiều lớp, để giảm ảnh hưởng nhiễu điện
từ, dây dẫn giữa các lớp trong thường được đặt vuông góc nhau Công nghệ main board nhiều lớp cùng với các vi mạch hỗ trợ tổng hợp (Chipset) góp phần giảm đáng kể các chi tiết trên bề mặt main board và bản thân kích thước bản mạch, điều này có lợi điểm khi thiết kế những máy tính nhỏ gọn (như máy tính xách tay – note book, máy tính bỏ túi – palmtop) nhưng có khó khăn về vấn đề tản nhiệt Kích thước máy càng nhỏ (độ tích hợp cao), tần số làm việc càng cao thì nhiệt năng toả ra càng nhiều Quản lý nhiệt độ làm việc của bộ vi xử lý nói chung và của máy vi tính nói riêng nói chung là vấn đề nan giải của các nhà thiết kế khi thiết kế một máy vi tính
Hình vẽ: Cấu trúc bản mạch 6 lớp
Trang 31cấp vì vậy chúng ta nên tránh dùng chúng Các kiểu dáng bo mạch chính PC phổ biên thường gồm:
• Baby AT (BAT) – AT nhỏ
Main đầu tiên phổ biến trong các máy tính IBM PC ra đời vào khoảng 1981 Như hình
vẽ, sau đó IBM đưa ra loại main XT năm 1983, có cùng hình dáng main board trước đó nhưng có 8 khe cắm ISA Main XT có 8 khe cắm ISA 8 bit (cũ là 5) và khoảng cách giữa các khe cắm là 0.8 inch (cũ là 1 inch), bỏ đi cổng cassette Vì vào thời điểm này nhiều hãng cũng sản xuất nhiều loại main board này nên IBM lại đưa ra main board AT (Baby AT – AT nhỏ, Full size AT – AT lớn) Các hãng khác cải tiến Main board XT cho giống Main board AT và gọi là Baby AT Main này cần ổn áp 3,3 V cung cấp cho bộ vi xử lý
Hình vẽ: Main Baby AT (1981)
Giữa năm 1996, mainboard ATX ra đời Nó có nhiều ưu việt và thay thế mainboard Baby
AT Mainboard này có kích thước 30,5x24,4 cm Loại mainoard Mini AT có kích thước 28,5x20,8 cm
Mainboard ATX không tương thích các loại mainboard trước đó, nó cần một thùng máy riêng, ATX quy định nguồn mới cho phép tắt và mở nguồn Điện áp 3,3 V được nguồn cung cấp nên không cần ổn áp 3,3 V trên mainboard nữa Giao diện nối tiếp, song song, bàn phím
và chuột được gắn trực tiếp trên mainboard (Từ đó ta có thể thấy) một số ưu điểm của mainboard ATX so với mainboard Baby AT như sau:
I/O kết nối là 2 tầng (double external I/O connector peripheral) tích hợp sẵn Điều này cho phép các connector bên ngoài có thể cắm thẳng vào mainboard mà không cần cáp nối từ các connector bên trong tới phía sau thùng máy như Baby AT
Connector nguồn có khoá một chiều: Ngoài ra nó còn có góc vát rất dễ cắm và không thể cắm nhầm (các jac cắm nguồn cho mainboard cũng như ổ cứng, mềm, …)
Connector này còn có chân cấp nguồn 3,3 V nên không cần ổn áp 3,3 V cho bộ vi xử
lý
Thay đổi vị trí của CPU và Memory: Việc này không ảnh hưởng tới các card mở rộng, chúng ta có thể tháo lắp dễ dàng mà không cần phải tháo các thành phần khác CPU và memory được đặt cạnh nguồn (gần quạt chính) giúp cho việc tản nhiệt tốt hơn
Đặt lại vị trí các đầu nối vào/ra nội bộ: như ổ mềm, ổ cứng giúp tháo lắp dễ dàng và cáp nối ngắn hơn
Cải tiến về tản nhiệt
Giảm chi phí sản xuất
Hình vẽ: Main ATX (1996)
Trang 32• Micro AT
Là một chuẩn mới của Intel có kích thước 24,4x24,4 cm, ra đời: 12/1997 Loại này được dùng trong các hệ thống nhỏ, rẻ tiền Micro ATX tương thích ngược được với ATX (cần thùng máy, nguồn nhỏ hơn nên giá thấp) Micro ATX chỉ có 4 khe cắm cho card mở rộng Micro ATX có thể lắp vào thùng máy ATX nhưng không thể thực hiện điều ngược lại
Ngoài ra còn có môt số loại mainboard sau:
Plex ATX: ra đời năm 1999 do Intel, kích thước: 22,9x19,1 cm
ATX Riser: ra đời 12/1999 do Intel: cắm card đứng – Case nằm
NLX: ra đời 11/1998, dùng cho máy thấp (slim line)
WTX: ra đời 9/1998, dùng cho máy trạm
LPX và các thiết kế đặc chủng khác
• Các bộ phận trên mainboard:
Đế cắm hay khe cắm cho bộ vi xử lý
Chipset (North/South Bridge hay các HUB)
ROM BIOS (Flash ROM)
Socket cho SIMM/DIMM/RIMM
Khe cắm cho ISA/PCI/AGP
Connector AMR (Audio Modem Riser)
Connector CNR (Communication and Networking Riser)
ổn áp cho CPU (nếu có)
Trang 33Chức năng PC/XT PC/AT
Bộ điều khiển bàn phím 8255 (cổng song song) 8042
Năm 1996, công ty Chips and Technologies giới thiệu vi mạch 80C206 Chip này chứa
(tích hợp) các thành phần: 82284, 82288, 8245, 8259, DMAC 8237 kép và cả MC-146818 4
chip khác phụ cho 82C206 gồm các bộ đệm, chốt và điều khiển bộ nhớ nên mainboard chỉ
còn 5 chips 82C206 được đổi tên gọi là CS 8220, là khời nguồn của chipset
Rồi 4 chip phụ cho 82C206 được thay bằng bộ 3 gọi chung là NEAT CS 8221 (New
Những chipset, ví dụ 440xx dùng cho PII/PIII/Pentium Pro bao gồm 2 bộ phận quan
trọng là:
North Bridge: 82443 BX (( số hiệu chipset): Liên kết giữa bus bộ vi xử lý tốc
độ cao (200/133/100/66 MHz) và các bus AGP (66MHz), PCI (33MHz)
South Bridge: 82371 EX: Là cầu nối giữa PCI (33 MHz) và bus (ISA (8 MHz)
Super IO: Là chip riêng gắn với ISA, nó không thuộc chipset và thường do
hãng thứ 3 sản xuất, nó chứa các thành phần ngoại vi thường dùng, tất cả được tích hợp trong một chip
• Một số chip quan trọng của Intel và hãng khác
Intel 430 LX (Mereury) : 3/1993
Loại này đi kèm Pentium đầu tiên, phiên bản 60/66 MHz, socket 4
North Bridge gồm 3 thành phần:
Trang 34Đặc điểm: Chỉ đi với vi xử lý đơn
Hỗ trợ cache L2 có dung lượng = 512 KB
Hỗ trợ DRAM có dung lượng = 192 MB Loại này chỉ đi được với Pentium 60/66 MHz
Intel 430 NX (Mereury) : 3/1994
Loại này đi vỡi pentiun thế hệ thứ hai – 3.3 V, socket 5 Về lý thuyết, có thể ghép với vi
xử lý: 75 – 133 MHz
2.2.3 Mạch tạo xung nhịp (8284)
Mạch tạo xung clock dùng để cung cấp xung clock cho CPU
CSYNC (Clock Synchronisation): ngõ vào xung đ ồng bộ chung khi hệ thống có các 8284
dùng dao động ngoài tại chân EFI Khi dùng mạch dao dộng trong thì phải nối GND
PCLK (Peripheral Clock): xung clock f = fX/6 (fX là tần số thạch anh) với chu kỳ bổn phận 50%
AEN 1 , AEN 2 (Address Enable): cho phép chọn các chân tương ứng RDY1, RDY2
báo hiệu trạng thái sẵn sàng của bộ nhớ hay thiết bị ngoại vi
RDY1, RDY2 (Bus ready): kết hợp với AEN1 , AEN2 tạo các chu kỳ đợi ở CPU
READY: nối đến chân READY của ∝P
Trang 35F/ C (Frequency / Crystal): chọn nguồn tín hiệu chuẩn cho 8284, nếu ở mức cao thì chọn
tần số xung clock bên ngoài, nguợc lại thì dùng xung clock từ thạch anh
EFI (External Frequency Input): xung clock từ bộ dao động ngoài
ASYNC : chọn chế độ làm việc cho tín hiệu RDY Nếu ASYNC = 1, tín hiệu RDY có
ảnh huởng đến tín hiệu READY cho đến khi có xung âm của xung clock Nguợc lại thì RDY chỉ ảnh huởng khi xuất hiện xung âm
X1,X2: ngõ vào của thạch anh, dùng để tạo xung chuẩn cho hệ thống
Mạch khởi động cho 8284
2.2.4 Mạch định thời PIT – 8253 / 8254 (Programmable Interval Timer)
Sơ đồ chân của PIT 8253
D7 ÷ D0: bus dữ liệu
CLK0 ÷ CLK2: ngõ vào xung clock cho các bộ đếm
OUT0 ÷ OUT2: ngõ ra bộ đếm
Trang 36RD , WR : cho phép CPU đọc / ghi dữ liệu từ / đến các thanh ghi của 8253
A1, A0: giải mã chọn bộ đếm hay thanh ghi điều khiển, thuờng đuợc nối với bus địa chỉ của CPU
G0 - G2 (Gate): cho phép hay cấm các bộ đếm hoạt động ( =1: cho phép,cấm) =0: PIT 8253 có tất cả 5 chế độ đếm tùy thuộc vào giá trị trong thanh ghi điều khiển
Trang 37PIT 8253 có 3 bộ đếm lùi 16 bit có thể lập trình và độc lập với nhau Mỗi bộ đếm có tín hiệu xung clock riêng (8254 tương tự như 8253 nhưng có thêm lệnh đọc thanh ghi từ điều khiển CWR) Ðịa chỉ các thanh ghi của PIT đối với PC là:
Trang 38Chế độ2 (Rate Generator): tín hiệu ngõ ra xuống mức thấp trong chu kỳ đầu tiên và sau
đó chuyển lên mức cao trong các chu kỳ còn lại
Chế độ3 (Square-Wave Generator): tương tự như chế độ2 nhưng xung ngõ ra là sóng vuông khi giá trị đếm chẵn và sẽ thêm một chu kỳ ở mức cao khi giá trị đếm lẻ
Chế độ4 (Software-triggered Pulse): giống như chế độ2 nhưng xung Gate không khởi động quá trình đếm mà sẽ đếm ngay khi số đếm ban dầu duợc nạp Ngõ ra ở mức cao để đếm
và xuống mức thấp trong chu kỳ xung đếm Sau dó, ngõ ra sẽ trở lại mức cao Chế độ5 (Hardware-triggered Pulse): giống như chế độ2 nhưng xung Gate không khởi động quá trình đếm mà duợc khởi động bằng cạnh đương của xung clock ngõ vào Ngõ ra ở mức cao và xuống mức thấp sau một chu kỳ clock khi quá trình đếm kết thúc
• Ba chức năng của 8253 trong PC:
Cập nhật đồng hồ hệ thống: bộ đếm 0 của PIT phát tuần hoàn một ngắt cứng qua IRQ0 của 8259 để CPU có thể thay dổi đồng hồ hệ thống Bộ đếm hoạt động trong chế độ2 Ngõ vào duợc cấp xung clock tần số 1.19318 MHz G0 = 1 để bộ đếm luôn duợc phép đếm Giá trị ban dầu duợc nạp là 0 cho phép PIT phát ra xung chính xác với tần số:1.19318/65536 = 18.206Hz Cạnh đương của mỗi xung này sẽ tạo ra một ngắt cứng trong 8259 Yêu cầu này
sẽ dẫn tới ngắt 08h để cập nhật dồng hổ hệ thống 18.206 lần trong 1 giây
Làm tươi bộ nhớ: PIT nối với chip DMAC dùng làm tươi bộ nhớ DRAM Bộ đếm 1 sẽ định kỳ kích hoạt kênh 0 của DMAC-8237A để tiến hành 1 chu trình đọc giả làm tuoi bộ nhớ Bộ nhớ 1 hoạt động trong chế độ3 phát sóng vuông với giá trị nạp ban dầu là 18 Do dó sóng vuông duợc phát ra có tần số 1,19318 MHz/18 = 66288 Hz (chu kỳ bằng 0.015s) Như vậy cứ sau 15 ms cạnh đương của sóng vuông này sẽ tạo 1 chu kỳ đọc giả để làm tuoi bộ nhớ
Phát sóng âm với tần số biến đổi ra loa của PC: Bộ đếm 2 của PIT đuợc dùng để
phát sóng âm ra loa của PC
2.2.5 Mạch điều khiển bus 8288
Trang 39Mạch điều khiển bus 8288 lấy một số tín hiệu điều khiển của CPU và cung cấp các tín hiệu điều khiển cần thiết cho hệ vi xử lý
Mạch điều khiển bus 8288
IOB (Input / Output Bus Mode): điều khiển để 8288 làm việc ở các chế độ bus khác
nhau
CLK (Clock): ngõ vào lấy từ xung clock hệ thống (từ 8284) và dùng để đồng bộ toàn bộ
các xung điều khiển đi ra từ mạch 8288
S 2 , S 1 , S 0 : các tín hiệu trạng thái lấy trực tiếp từ CPU Tuỳ theo các giá trị nhận duợc
mà 8288 sẽ đưa các tín hiệu theo bảng:
DT/ R (Data Transmit/Receive): CPU truyền (1) hay nhận (0) dữ liệu
ALE (Address Latch Enable): tín hiệu cho phép chốt địa chỉ, tín hiệu này thuờng đuợc nối với chân G của 74573 để điều khiển chốt địa chỉ
AEN (Address Enable): chờ thời gian trễ khoảng 150 ns sẽ tạo các tín hiệu điều khiển ở đầu ra của 8288 để đảm bảo rằng địa chỉ sử dụng đã hợp lệ
MRDC (Memory Read Command): điều khiển đọc bộ nhớ
MWTC (Memory Write Command): điều khiển ghi bộ nhớ
AMWC (Advanced MWTC),: giống như MWTC nhưng hoạt động sớm hơn một chút dùng cho các bộ nhớ chậm đáp ứng kịp tốc dộ CPU
IOWC (I/O Write Command): điều khiển ghi ngoại vi
Trang 40AIOWC (Advanced IOWC),: giống như IOWC nhưng hoạt động sớm hơn một chút dùng cho các ngoại vi chậm dáp ứng kịp tốc dộ CPU
IORC (I/O Read Command): điều khiển đọc ngoại vi
INTA (Interrupt Acknowledge): ngõ ra thông báo CPU chấp nhận yêu cầu ngắt của thiết
bị ngoại vi
CEN (Command Enable): cho phép dua ra tín hiệu DEN và các tín hiệu điều khiển khác của 8288
DEN (Data Enable): điều khiển bus dữ liệu thành bus cục bộ hay bus hệ thống
MCE / PDEN (Master Cascade Enable / Peripheral Data Enable): định chế độ làm việc cho mạch điều khiển ngắt PIC 8259 để nó làm việc ở chế độ master
2.2.6 Chip điều khiển ngắt ưu tiên PIC 8259A (Priority Interrupt Controller)
Trong truờng hợp nhiều yêu cầu ngắt cần phải phục vụ, ta thuờng dùng vi mạch 8259A
để giải quyết vấn đề ưu tiên 8259A có thể giải quyết duợc 8 yêu cầu ngắt với 8 mức ưu tiên khác nhau
• Các khối chức năng:
IRR (thanh ghi yêu cầu ngắt): lưu trữ các yêu cầu ngắt tại ngõ vào
ISR (thanh ghi phục vụ ngắt): lưu trữ các yêu cầu ngắt đang phục vụ
IMR (thanh ghi mặt nạ ngắt): lưu trữ mặt nạ của các yêu cầu ngắt tại ngõ vào
Control logic (logic điều khiển): gởi yêu cầu ngắt tới chân INTR của CPU khi có tín hiệu
ngắt tại ngõ vào của 8259A và nhận trả lời chấp nhận yêu cầu ngắt hay không INTA từ CPU
để dua kiểu ngắt vào CPU
Data bus buffer (ệm bus dữ liệu): giao tiếp giữa 8259A với bus dữ liệu của CPU
Cascade buffer / comparator (ệm nối tầng và so sánh): lưu trữ và so sánh số hiệu của các
kiểu ngắt trong truờng hợp dùng nhiều mạch 8259A