Các siêu máy tính được thiết kế với kỹ thuật xử lý song song với rất nhiều bộ xử lý hàng ngàn đến hàng trăm ngàn bộ xử lý trong một siêu máy tính, có khả năng thực hiện các phép tính cơ
Trang 1(Dành cho Đại học Công nghệ thông tin)
Tác giả: ThS Nguyễn Nương Quỳnh
Năm 2015
Trang 2MỤC LỤC
CHƯƠNG 1 GIỚI THIỆU CHUNG 3
1 Máy tính và phân loại máy tính 3
2 Kiến trúc máy tính 4
3 Các thế hệ của máy tính 6
CHƯƠNG 2 HỆ THỐNG MÁY TÍNH 30
1 Các thành phần cơ bản của máy tính 30
2 Các hoạt động của máy tính 33
3 Liên kết hệ thống 36
CHƯƠNG 3 BỘ XỬ LÝ TRUNG TÂM 46
1 Cấu trúc cơ bản của CPU 46
2 Tập lệnh của CPU 55
3 Hoạt động của CPU 63
4 Cấu trúc chung của các bộ xử lý tiên tiến 67
5 Kiến trúc Intel 68
CHƯƠNG 4 BỘ NHỚ MÁY TÍNH 71
1 Tổng quan về hệ thống nhớ 71
2 Bộ nhớ bán dẫn 74
3 Bộ nhớ chính 77
4 Bộ nhớ đệm nhanh (CACHE) 78
5 Bộ nhớ ngoài 81
6 Hệ thống nhớ dung lượng lớn: RAID 92
CHƯƠNG 5 HỆ THỐNG VÀO-RA 96
1 Tổng quan về hệ thống vào-ra 96
2 Các phương pháp điều khiển vào-ra 100
3 Bộ xử lý vào-ra 108
4 Nối ghép với thiết bị ngoại vi 108
TÀI LIỆU THAM KHẢO 111
Trang 3CHƯƠNG 1 GIỚI THIỆU CHUNG
1 Máy tính và phân loại máy tính
1.1 Máy tính
Máy tính hay máy tính điện tử là thiết bị điện tử cho phép lưu trữ và xử lý thông tin một cách tự động theo một chương trình định trước mà con người không cần can thiệp vào trong quá trình xử lý
Máy tính có khả năng lưu trữ một khối lượng thông tin rất lớn trên một diện tích nhỏ, tốc độ xử lý thông tin nhanh chóng và chính xác Máy tính được lắp ráp từ vài mạch tích hợp (IC) bao gồm bộ vi xử lý, bộ nhớ và các mạch giao tiếp vào ra, gọi là máy vi tính
1.2 Phân loại máy tính
Thông thường máy tính được phân loại theo tính năng kỹ thuật và giá tiền
a Các siêu máy tính (Super Computer): là các máy tính đắt tiền nhất và tính năng kỹ thuật cao nhất Giá bán một siêu máy tính từ vài triệu USD Các siêu máy tính thường là các máy tính vectơ hay các máy tính dùng kỹ thuật vô hướng và được thiết kế để tính toán khoa học, mô phỏng các hiện tượng Các siêu máy tính được thiết kế với kỹ thuật xử lý song song với rất nhiều bộ xử lý (hàng ngàn đến hàng trăm ngàn bộ xử lý trong một siêu máy tính), có khả năng thực hiện các phép tính cơ bản trong vài pico giây
b Máy tính lớn (Mainframe) : có khả năng giải những bài toán lớn, tốc độ tính toán nhanh Kích thước bộ nhớ làm việc lớn Được dùng cho các ứng dụng quản lý, quân sự và được dùng trong khoa học để mô phỏng nghiên cứu các hiện tương vật lý như các vụ nổ hạt nhân Dùng kỹ thuật xử lý song song và có hệ thống vào ra mạnh Giá một máy tính lớn có thể từ vài trăm ngàn USD đến hàng triệu USD
Trang 4c Máy tính mini (Minicomputer): Là loại máy cở trung, giá thành thấp hơn máy tính lớn, tính năng mạnh nên máy tính mini được ưa dùng trong nghiên cứu khoa học, giá một máy tính mini có thể từ vài chục USD đến vài trăm ngàn USD
d Máy vi tính (Microcomputer): là loại máy tính dùng bộ vi xử lý làm cốt lõi, vi điều khiển Tốc độ phát triển các vi xử lý 32 bit và 64 bit hiện đại làm khoảng cách giữa máy tính lớn và máy vi tính ngày càng thu hẹp Giá một máy vi tính có thể từ vài trăm USD đến vài ngàn USD
2 Kiến trúc máy tính
2.1 Kiến trúc máy tính
Để tìm hiểu kiến trúc máy tính, cần phân biệt rõ sự khác nhau cơ bản, thuộc về nguyên lý giữa kiến trúc (architecture) và cấu trúc (organization & structure) của một máy tính:
- Kiến trúc máy tính nghiên cứu những thuộc tính của một hệ thống mà người lập trình có thể nhìn thấy được, những thuộc tính quyết định trực tiếp đến việc thực thi một chương trình tính toán, xử lý dữ liệu
- Cấu trúc máy tính nghiên cứu về các thành phần chức năng và sự kết nối giữa chúng để tạo nên một máy tính, nhằm thực hiện những chức năng và tính năng kỹ thuật của kiến trúc
Những thuộc tính liên quan đến kiến trúc bao gồm tập lệnh cơ bản mà CPU có thể thực hiện, số bit được sử dụng để biểu diễn các loại dữ liệu khác nhau, cơ chế nhập/xuất
dữ liệu, và các kỹ thuật đánh địa chỉ ô nhớ, v.v Cấu trúc máy tính lại bao gồm các thuộc tính kỹ thuật mà người lập trình không nhận biết được như các tín hiệu điều khiển, giao diện giữa máy tính và thiết bị ngoại vi, công nghệ xây dựng bộ nhớ, v.v…
Chẳng hạn việc quyết định máy tính có cần một lệnh cơ bản để thực hiện phép nhân hay không là vấn đề về kiến trúc Còn thể hiện lệnh nhân bằng các đơn vị vật lý cụ thể nào (chẳng hạn, một đơn vị thuộc phần cứng đặc biệt, hay thực hiện lặp nhiều phép cộng) lại là vấn đề về cấu trúc
Để làm ví dụ minh họa sự khác biệt đó ta có thể xem các máy tính ở Trung tâm nghiên cứu nào đó Các máy tính này có thể có kiến trúc rất giống nhau theo quan điểm của người lập trình Chúng có cùng số thanh ghi (tức là thiết bị lưu trữ tạm thời), có cùng
Trang 5một tập lệnh cơ bản và dạng các toán hạng được nạp vào bộ nhớ giống nhau Tuy nhiên các hệ thống này khác nhau về mặt cấu trúc: số bộ vi xử lý khác nhau, kích thước bộ nhớ của chúng cũng khác hẳn nhau, cách thức dữ liệu được truyền từ bộ nhớ đến bộ vi xử
lý cũng không giống nhau
Kiến trúc máy tính thường được ứng dụng trong khoảng thời gian dài, hàng chục năm; trong khi cấu trúc thường thay đổi cùng với sự phát triển của công nghệ Trên cùng một kiến trúc, các hãng chế tạo máy tính có thể đưa ra nhiều loại máy tính khác nhau về cấu trúc, do đó các đặc trưng về hiệu suất, giá thành cũng khác nhau Các sản phẩm của IBM là một ví dụ điển hình Kiến trúc máy tính của IBM vẫn còn được ứng dụng cho tới ngày nay và là ngọn cờ của thương hiệu IBM
Người lập trình thường cần đến kiến thức về kiến trúc, nó có thể giúp người lập trình nhận biết khi nào chương trình của mình tạo ra chạy chưa đạt hiệu suất tối đa của hệ thống, hiểu được các kỹ năng làm tăng hiệu suất chương trình, v.v
Kiến trúc máy tính bao gồm ba phần: Kiến trúc phần mềm, tổ chức của máy tính và lắp đặt phần cứng
- Kiến trúc phần mềm của máy tính chủ yếu là kiến trúc phần mềm của bộ xử lý, bao gồm: tập lệnh, dạng các lệnh và các kiểu định vị
+ Trong đó, tập lệnh là tập hợp các lệnh mã máy (mã nhị phân) hoàn chỉnh có thể hiểu và được xử lý bới bộ xử lý trung tâm, thông thường các lệnh trong tập lệnh được trình bày dưới dạng hợp ngữ Mỗi lệnh chứa thông tin yêu cầu bộ xử lý thực hiện, bao gồm: mã tác vụ, địa chỉ toán hạng nguồn, địa chỉ toán hạng kết quả, lệnh kế tiếp (thông thường thì thông tin này ẩn)
+ Kiểu định vị chỉ ra cách thức thâm nhập toán hạng
Kiến trúc phần mềm là phần mà các lập trình viên hệ thống phải nắm vững để việc lập trình hiểu quả, ít sai sót
- Phần tổ chức của máy tính liên quan đến cấu trúc bên trong của bộ xử lý, cấu trúc các bus, các cấp bộ nhớ và các mặt kỹ thuật khác của máy tính
- Lắp đặt phần cứng của máy tính ám chỉ việc lắp ráp một máy tính dùng các linh kiện điện tử và các bộ phận phần cứng cần thiết
Trang 6Ta nên lưu ý rằng một vài máy tính có cùng kiến trúc phần mềm nhưng phần tổ chức
và lắp đặt phần cứng là khác nhau
2.2 Kiến trúc tập lệnh
Kiến trúc tập lệnh của máy tính bao gồm:
- Tập lệnh: là tập hợp các chuỗi số nhị phân mã hoá cho các thao tác mà máy tính có thể thực hiện được
- Các kiểu dữ liệu: là các kiểu dữ liệu mà máy tính có thể xử lý
2.3 Tổ chức của máy tính
Các thành phần cơ bản của máy tính:
- Bộ xử lý trung tâm (Central Processing Unit): Điều khiển hoạt động của máy tính
Trang 7Về ứng dụng : Mỗi máy tính được một nhóm người thực hiện tất cả từ thiết kế, xây dựng lập trình , thao tác đến quản lý Mục đích chủ yếu là phục vụ nghiên cứu khoa học
kỹ thuật
Hình 1: Máy tính dùng đèn điện tử đầu tiên ENIAC
ENIAC (Electronic Numerical Integrator and Computer) là máy tính điện tử số đầu tiên do Giáo sư Mauchly và người học trò Eckert tại Đại học Pennsylvania thiết kế vào năm 1943 và được hoàn thành vào năm 1946 Đây là một máy tính khổng lồ với thể tích dài 20 mét, cao 2,8 mét và rộng vài mét ENIAC bao gồm: 18.000 đèn điện tử, 1.500 công tắc tự động, cân nặng 30 tấn, và tiêu thụ 140KW giờ Nó có 20 thanh ghi 10 bit (tính toán trên số thập phân) Có khả năng thực hiện 5.000 phép toán cộng trong một giây Công việc lập trình bằng tay bằng cách đấu nối các đầu cắm điện và dùng các ngắt điện
3.2 Thế hệ 2: Máy tính dùng transistor
Công ty Bell đã phát minh ra transistor vào năm 1947 và do đó thế hệ thứ hai của máy tính được đặc trưng bằng sự thay thế các đèn điện tử bằng các transistor lưỡng cực Máy tính ở thế hệ này có các đặc điểm sau :
Về kỹ thuật : Linh kiện chủ yếu là transistor Bộ nhớ có dung lượng khác lớn Kích thước máy tính giảm, rẻ tiền hơn, tiêu tốn năng lượng ít
Trang 8Về phần mềm : Ngôn ngữ cấp cao xuất hiện như FORTRAN năm 1956, COBOL năm 1959, ALGOL năm 1960 và hệ điều hành kiểu tuần tự (Batch Processing) được dùng Trong hệ điều hành này, chương trình của người dùng thứ nhất được chạy, xong đến chương trình của người dùng thứ hai và cứ thế tiếp tục
Về ứng dụng : tham gia giải các bài toán kinh tế xã hội
Hình 2: Máy tính thế hệ thứ hai
3.3 Thế hệ 3: Máy tính dùng mạch tích hợp SSI, MSI và LSI
Thế hệ thứ ba được đánh dấu bằng sự xuất hiện của các mạch kết (mạch tích hợp - IC: Integrated Circuit) Các mạch kết độ tích hợp mật độ thấp (SSI: Small Scale Integration) có thể chứa vài chục linh kiện và kết độ tích hợp mật độ trung bình (MSI: Medium Scale Integration) chứa hàng trăm linh kiện trên mạch tích hợp Mạch in nhiều lớp xuất hiện, bộ nhớ bán dẫn bắt đầu thay thế bộ nhớ bằng xuyến từ Máy tính đa chương trình và hệ điều hành chia thời gian được dùng
Máy tính ở thế hệ này có các đặc điểm sau :
Về kỹ thuật: Linh kiện chủ yếu sử dụng các mạch tích hợp (IC), các thiết bị ngoại vi được cải tiến, đĩa từ được sử dụng rộng rãi Tốc độ tính toán đạt vài triệu phép toán trên giây, dung lượng bộ nhớ đạt vài MB
Trang 9Về phần mềm: Xuất hiện nhiều hệ điều hành khác nhau, xử lý song song Phần mềm
đa dạng, chất lượng cao, cho phép khai thác máy tính theo nhiều chế độ khác nhau
Về ứng dụng: Tham gia vào nhiều lĩnh vực của xã hội
Hình 3: Máy thế hệ thứ ba UNIVAC
3.4 Thế hệ 4: Máy tính dùng mạch tích hợp VLSI
Thế hệ thứ tư được đánh dấu bằng các IC có mật độ tích hợp cao (LSI: Large Scale Integration) có thể chứa hàng ngàn linh kiện Các IC mật độ tích hợp cỡ lớn (VLSI: Very Large Scale Integration) có thể chứa hơn 10 ngàn linh kiện trên mạch Hiện nay, các chip VLSI chứa hàng triệu linh kiện Tốc đọ đạt tời hang chục triệu phép tính trên giây
Với sự xuất hiện của bộ vi xử lý (microprocessor) chứa cả phần thực hiện và phần điều khiển của một bộ xử lý, sự phát triển của công nghệ bán dẫn các máy vi tính đã được chế tạo và khởi đầu cho các thế hệ máy tính cá nhân
Các bộ nhớ bán dẫn, bộ nhớ cache, bộ nhớ ảo được dùng rộng rãi Các kỹ thuật cải tiến tốc độ xử lý của máy tính không ngừng được phát triển: kỹ thuật ống dẫn, kỹ thuật vô hướng, xử lý song song mức độ cao,…
Về ứng dụng: máy tính được ứng dụng trong hầu hết các lĩnh vực của xã hội
3.5 Thế hệ 5:
Các nhà sản xuất đã nghiên cứu chế tạo ra các máy tính mô phỏng các hoạt động của con người, có trí khôn nhân tạo với khả năng tự suy diễn phát triển các tình huống nhận được và giải quyết được các yêu cầu đa dạng
Trang 10Người Nhật đã và đang đi tiên phong trong các chương trình nghiên cứu để cho ra đời thế hệ thứ 5 của máy tính, thế hệ của những máy tính thông minh, dựa trên các ngôn ngữ trí tuệ nhân tạo như LISP và PROLOG, và những giao diện người - máy thông minh Đến thời điểm này, các nghiên cứu đã cho ra các sản phẩm bước đầu và gần đây nhất (2004) là sự ra mắt sản phẩm người máy thông minh gần giống với con người nhất: ASIMO (Advanced Step Innovative Mobility: Bước chân tiên tiến của đổi mới và chuyển động) Với hàng trăm nghìn máy móc điện tử tối tân đặt trong cơ thể, ASIMO có thể lên/xuống cầu thang một cách uyển chuyển, nhận diện người, các cử chỉ hành động, giọng nói và đáp ứng một số mệnh lệnh của con người Thậm chí, nó có thể bắt chước cử động, gọi tên người và cung cấp thông tin ngay sau khi bạn hỏi, rất gần gũi và thân thiện
Hiện nay có nhiều công ty, viện nghiên cứu của Nhật thuê Asimo tiếp khách và hướng dẫn khách tham quan như: Viện Bảo tàng Khoa học năng lượng và Đổi mới quốc gia, hãng IBM Nhật Bản, Công ty điện lực Tokyo
Hãng Honda bắt đầu nghiên cứu ASIMO từ năm 1986 dựa vào nguyên lý chuyển động bằng hai chân Cho tới nay, hãng đã chế tạo được 50 robot ASIMO
Các tiến bộ liên tục về mật độ tích hợp trong VLSI đã cho phép thực hiện các mạch
vi xử lý ngày càng mạnh (8 bit, 16 bit, 32 bit và 64 bit với việc xuất hiện các bộ xử lý RISC năm 1986 và các bộ xử lý siêu vô hướng năm 1990) Chính các bộ xử lý này giúp thực hiện các máy tính song song với từ vài bộ xử lý đến vài ngàn bộ xử lý
4 Biểu diễn dữ liệu và số học máy tính
Các máy tính xử lý các thông tin số và chữ Các thông tin được biểu diễn dưới dạng
mã nhất định Bản chất vật lý của việc biểu diễn thông tin là điện áp (“0” ứng với không
có điện áp, “1” ứng với điện áp ở mức quy chuẩn trong mạch điện tử) và việc mã hoá các thông tin số và chữ được tuân theo chuẩn quốc tế Mã hiệu để mã hoá các thông tin cho máy tính xử lý là các giá trị của biến nhị phân "0" hoặc "1", tương ứng với biến logic
"False" hoặc "True" Một biến chỉ nhận một trong hai giá trị duy nhất là “0” hoặc “1” được gọi là một bit (Binary Digit) Hai trạng thái này của bit, thực chất là các giá trị tương ứng với "False" hoặc "True", hay trạng thái "tắt" hoăc "đóng" của một công tắc điện, được sử dụng để mã hoá cho tất cả các ký tự (gồm số, chữ và các ký tự đặc biệt khác) Các bit được ghép lại thành các đơn vị mang thông tin đầy đủ - các mã tự - cho các ký tự biểu diễn các số, các ký tự chữ và các ký tự đặc biệt khác
Trang 114.1 Các hệ đếm cơ bản
1 Hệ thập phân
Từ xa xưa con người đã sử dụng công cụ tự nhiên và sẵn có nhất của mình để đếm các vật, đó là các ngón tay trên hai bàn tay của mình Vì hai bàn tay chỉ có 10 ngón nên
hệ đếm thập phân mà chúng ta sử dụng ngày nay là kết quả tự nhiên của cách đếm đó
Trong hệ thập phân, 10 ký tự khác nhau được dùng để biểu đạt 10 giá trị riêng biệt (0, 1, 2, 3, 4, 5, 6, 7, 8 và 9) Để biểu diễn các số lớn hơn 10, hệ đếm thập phân sử dụng
kí pháp vị trí Theo kí pháp này giá trị mà kí hiệu biểu diễn phụ thuộc vào vị trí của nó trong dãy kí hiệu Ví dụ 2 trong số 29 biểu diễn số 20, nhưng trong 92 biểu diễn số 2 Cũng cần nhắc lại rằng: tất cả các hệ đếm đều tuân thủ ký pháp vị trí
Những con số này còn được dùng cùng với dấu thập phân - ví dụ dấu "phẩy" - để định vị phần thập phân sau hàng đơn vị Con số còn có thể được dẫn đầu bằng các ký hiệu
"+" hay "-" để biểu đạt số dương và số âm
Quy tắc biểu diễn tổng quát một số tự nhiên trong hệ thập phân là
Trang 122 Hệ nhị phân
Máy tính số được xây dựng từ các mạch điện tử Các mạch điện tử trong máy tính phân biệt được sự khác nhau giữa hai trạng thái (có dòng điện hay không, điệp áp cao hay thấp, v.v.) và biểu diễn các trạng thái đó dưới dạng một trong hai số 1 hoặc 0 Vì vậy các số 0 và 1 rất thích hợp và đủ để biểu diễn các số tùy ý trong máy tính
Các số 0 và 1 được gọi là các số nhị phân Hệ đếm nhị phân là hệ đếm chỉ dùng các
số 0 và 1 và kí pháp vị trí để biểu diễn các số Các vị trí có trọng số bằng bậc luỹ thừa của
cơ số 2 Chấm cơ số được gọi là chấm nhị phân trong hệ đếm cơ số 2 Mỗi một con số nhị phân được gọi là một bit (Binary digit), bit ngoài cùng bên trái là bit có trong số lớn nhất (MSB – Most Significant Bit) và bit ngoài cùng bên phải là bit có trọng số nhỏ nhất (LSB – Least Significant Bit)
Số nhị phân có dạng: A = anan-1…a1a0.a-1…a-m
Giá trị của A được tính như sau:
i i
Chú ý: Dùng dấu ngoặc đơn và chỉ số dưới để ký hiệu cơ số của hệ đếm
* Biến đổi từ nhị phân sang thập phân
Ví dụ: Bíên đổi số nhị phân (11001)2 thành số thập phân:
* Biến đổi từ thập phân sang nhị phân:
Để thực hiện việc đổi từ thập phân sang nhị phân, ta áp dụng phương pháp chia lặp như sau: Lấy số thập phân chia cho cơ số để thu được một thương số và số dư Số dư
Trang 13được ghi lại để làm một thành tố của số nhị phân Sau đó số thương lại được chia cho cơ
số một lần nữa để có thương số thứ hai và số dư thứ hai Số dư thứ hai là một con số nhị phân thứ hai Quá trình tiếp diễn cho đến khi số thương bằng 0
Ví dụ: Biến đổi số thập phân (29)10 thành nhị phân:
Việc chuyển đổi số nguyên thập phân sang nhị phân ta có 2 phương pháp:
- Phương pháp 1: Chia dần cho 2 rồi lấy phần dư
Ví dụ 1: Đổi (23.375)10 sang nhị phân
Chúng ta sẽ chuyển đổi phần nguyên dùng phương thức số dư:
Phương thức nhân để biến đổi phần lẻ của số thập phân sang nhị phân
Trang 14Ví dụ 2 : Biến đổi số thập phân (0.625)10 thành nhị phân:
Trang 150 1 1 0 1 0 0 1 Kết quả là (105)10 = (01101001)2
* Các phép toán dùng trong hệ nhị phân:
Phép tính dùng trong hệ nhị phân cũng tương tự như các phép tính được áp dụng trong các hệ khác Tính cộng, tính trừ, tính nhân và tính chia cũng có thể được áp dụng với các giá trị số nhị phân
5 + 5 = 10
7 + 9 = 16
Hiện tượng này được gọi là "nhớ" hoặc "mang sang", trong hầu hết các hệ thống số dùng để tính, đếm Khi tổng số vượt lên trên gốc của hệ số, phương thức làm là "nhớ" một sang vị trí bên trái, thêm một hàng Phương thức "nhớ" cũng hoạt động tương tự trong hệ nhị phân:
1 1 1 1 1 (nhớ)
0 1 1 0 1 + 1 0 1 1 1
1 0 0 1 0 0 Tính trừ
Phép tính trừ theo quy chế tương tự:
Trang 16(hình sao * đánh dấu các cột phải mượn)
Trừ hai số dương cũng tương tự như "cộng" một số âm với giá trị tương đồng của một số tuyệt đối; máy tính thường dùng ký hiệu Bù 2 để diễn đạt số có giá trị âm Ký hiệu này loại trừ được nhu cầu bức thiết phải có một phương pháp làm phép trừ biệt lập Xin xem thêm chi tiết trong chương mục Bù 2
Tính nhân
Phép tính nhân trong hệ nhị phân cũng tương tự như phương pháp làm trong hệ thập phân Hai số A và B được nhân với nhau bởi những tích số cục bộ: với mỗi con số ở B, tích của nó với số một con số trong A được tính và viết xuống một hàng mới, mỗi hàng mới phải chuyển dịch vị trí sang bên trái, hầu cho con số cuối cùng ở bên phải đứng cùng cột với vị trí của con số ở trong B đang dùng Tổng của các tích cục bộ này cho ta kết quả tích số cuối cùng
Vì chỉ có 2 con số trong hệ nhị phân, nên chỉ có 2 kết quả khả quan trong tích cục bộ: + Nếu con số trong B là 0, tích cục bộ sẽ là 0
+ Nếu con số trong B là 1, tích cục bộ sẽ là số ở trong A
Ví dụ, hai số nhị phân 1011 và 1010 được nhân với nhau như sau:
Trang 17+ 1 0 1 1
1 1 0 1 1 1 0 Tính chia
Tính chia nhị phân cũng tương tự như phép chia trong hệ thập phân
1 1 0 1 1 1 0 1
Ở đây ta có số chia là 1012, hoặc 5 trong số thập phân, và số bị chia là 110112, hoặc
27 trong số thập phân Cách làm tương tự với cách làm trong số thập phân Ở đây số chia
1012 có thể chia được với 3 số đầu của số bị chia, tức là 1102, được 1, viết lên trên hàng
kẻ Kết quả này được nhân với số chia, và tích số được trừ với 3 số đầu của số bị chia Số tiếp theo là một con số 1 được hạ xuống để tạo nên một dãy số có 3 con số, tương tự với
số lượng các con số của số chia:
1 1 0 1 1 1 0 1
0 1 1 Quy luật trên được lặp lại với những hàng số mới, tiếp tục cho đến khi tất cả các con số trong số bị chia đã được dùng hết:
Phân số của 110112 chia cho 1012 là 1012, như liệt kê phía trên đường kẻ, trong khi
số dư còn lại được viết ở hàng cuối là 102 Trong hệ thập phân, 27 chia cho 5 được 5, dư
2
3 Hệ thập lục phân (hệ mười sáu)
Dữ liệu số trong máy tính được biểu diễn theo hệ đếm nhị phân Từ nhớ cơ bản của các loại máy tính đều tuân thủ chuẩn của IBM, nghĩa là theo từng Byte Mỗi Byte gồm 8 bit nhị phân Tuy nhiên, cách viết một số liệu nhị phân không thích hợp với chách nhìn và nhận biết độ lớn, nhất là khi dữ liệu là một số có độ dài nhiều Byte Do vậy, ta hay sử dụng các phương pháp biểu diễn theo hệ đếm Hexa (hệ đếm cơ số 16) Các hệ máy tính hiện đại thường dùng một hệ đếm khác là hệ thập lục phân
Trang 18Trong toán học và trong khoa học máy tính, hệ thập lục phân (hay hệ đếm cơ số
16, tiếng Anh: hexadecimal), hoặc chỉ đơn thuần gọi là thập lục, là một hệ đếm có 16 ký
tự, từ 0 đến 9 và A đến F (chữ hoa và chữ thường như nhau)
Hệ thập lục phân
* Biến đổi thập lục phân sang thập phân
Các số thập lục phân có thể biên đổi thành thập phân bằng cách tính tổng của các con số nhân với giá trị vị trí của nó
Ví dụ: Biến đổi các số (5B)16, (2AF)16 thành thập phân
Trang 19* Biến đổi thập phân thành thập lục phân
Để biến đổi các số thập phân thành thập lục phân, ta sử dụng phương pháp chia lặp, với cơ số 16
Ví dụ: Biến đổi số (1776)10 thành thập lục phân
1776/16 = 111 + 0 (LSB)
111/16 = 6 + 15 hoặc F
6/16 = 0 + 6 (MSB)
Số thập lục phân: (6F0)16
* Biến đổi thập lục phân thành nhị phân
Các số thập lục phân rất dễ dàng để đổi thành số nhị phân vì thực ra số thập lục phân cũng là một cách biểu diễn các số nhị phân thuận lợi hơn mà thôi Để đổi các số thâp lục phân thành nhị phân, chỉ cần thay thế một cách đơn giản từng con số thập lục phân bằng bốn bit nhị phân tương ứng của nó
Ví dụ: Đổi số thập lục phân (6F0)16 thành số nhị phân:
=> (6F0)16 = (011011110000)2
* Biến đổi nhị phân thành thập lục phân
Để biến đổi một số nhị phân thành số thập lục phân tương ứng thì chỉ cần gộp lại thành từng nhóm gôm 4 bit nhị phân, bắt đầu từ dấu chấm nhị phân
Ví dụ: Biến đổi số nhị phân (1111101000010000)2 thành thập lục phân
=> (1111101000010000)2 = (FA10)16
Trang 204.2 Biểu diễn giá trị số trong máy tính
Trong máy tính các số được biểu diễn bằng dãy các số nhị phân, ví dụ 1910 =
100112 Mỗi số nhị phân trong dãy biểu diễn này được gọi là bit Như vậy bit chỉ có thể nhận một trong hai giá trị "0" hoặc "1" Bit là đơn vị cơ bản nhất, nhỏ nhất để biểu diễn
dữ liệu trong máy tính
1 Số nguyên không dấu
Tất cả các số cũng như các mã trong máy tính đều được biểu diễn bằng các chữ số nhị phân Để biểu diễn các số nguyên không dấu người ta dung n bit Tương ứng với độ dài của số bit được sử dụng, ta có khoảng giá trị xác định như sau:
Nguyên tắc tổng quát biểu diễn số nguyên không dấu là dung n bit biểu diễn số nguyên không dấu A: an-1an-2….a2a1a0
Giá trị của A được tính theo công thức:
m i
i i
a
Dãi biểu diễn của A từ 0 đến 2n-1
Số bit Khoảng giá trị
Trang 21Hãy xác định giá trị của chúng?
1
Khoảng giá trị đƣợc biểu diễn sẽ đƣợc tính nhƣ sau:
Số bit Khoảng giá trị
Trang 22Số bù 2 của A = 1101 1011
Vì A + số bù 2 của A = 0 -> dung số bù 2 để biểu diễn số âm
Vậy để biểu diễn số nguyên có dấu ta có dạng tổng quát:
+ Biểu diễn số dương A: 0an-2…a2a1a0
biểu diễn cho số dương từ 0 đến 2n-1-1
+ Biểu diễn số âm A: 1an-2…a2a1a0
2 2
n
i
i i n
a A
biểu diễn cho số âm từ -1 đến -2n-1
Vậy ta có: Dạng số nguyên A = an-1an-2…a2a1a0 được xác định như sau:
n
i
i i n
n a a
Trang 23Ví dụ: Hãy xác định giá trị của các số nguyên có dấu được biểu diễn như sau:
b) Chuyển đổi từ byte sang word:
Đối với số dương:
c) Biểu diễn số nguyên theo mã BCD
BCD – Binary Coded Decimal Code
Dùng 4 bit để mã hoá cho các chữ số thập phân từ 0 đến 9:
Trang 241: 0001 2: 0010 3: 0011 4: 0100
6: 0110 7: 0111 8: 1000 9: 1001
Trong đó: m là phần định trị, e là phần mũ, R là cơ số của hệ đếm
Ví dụ: Trong hệ thập phân, số 25410 có thể biểu diễn dưới các dạng sau:
Trang 25Bit đầu tiên là bit dấu, 8 bit tiếp theo là số nguyên nhị phân biểu diễn số mũ, 23 bit cuối cùng là số nhị phân biểu diễn phần sau dấu chấm nhị phân Cơ số ở đây là 2 và phần định trị có dạng 1.F
Ví dụ 2: Biểu diễn số thực (9,75)10 dưới dạng dấu phẩy động
Ta đổi sang dạng nhị phân: (83,75)10 = (1010011.11)2 = 1.01001111E6
Bit dấu là bit 31 bằng 0
Mã excess – 127 của 6 là: 127 + = 133 = (10000101)2
Trang 26Được đưa vào các bit tiếp theo từ bit 30 đến bit 23 Bit 22 luôn mặc định là 0
Cuối cùng, số thực được biểu diễn dưới dạng dấu phẩy động 32 bit như sau:
0100 0010 1010 0111 1000 0000 0000 0000 bit |31|30 23|22 0|
4.3 Biểu diễn ký tự
1 Bảng mã ASCII (American Standard Code for Information Interchange)
Người ta xây dựng bộ mã để biểu diễn cho các ký tự, các con số và các ký hiệu đặc biệt khác Các mã đó gọi là bộ mã ký tự và số Bảng mã ASCII là mã 7 bit được dùng phổ biến trong các hệ máy tính hiện nay Với mã 7 bit nên có 27 = 128 tổ hợp mã Mỗi ký tự (chữ hoa, chữ thường), các con số thập phân và các ký hiệu đặc biệt đều được biểu diễn bởi một mã số (theo bảng dưới)
Việc biến đổi thành ASCII ta sử dụng mã tương ứng trong bảng sau:
Ví dụ: Đổi các ký tự BILL thành mã ASCII:
Trang 27HT = Horizontal tab; EM = End of medium; LF = Line feed;
SUB = Substitute VT = Vertical tab; ESC = Escape;
FF = From feed; FS = File separator SO = Shift out;
RS = Record separator; SI = Shift in; US = Unit separator
Trang 282 Unicode
Tuỳ theo các hệ thống khác nhau, có thể sử dụng các bảng mã khác nhau: ASCII, UNICODE, Các hệ thống trước đây thường dùng bảng mã ASCII (American Standard Codes for Information Interchange) để biểu diễn các chữ, số và một số dấu thường dùng
mà ta gọi chung là ký tự Mỗi ký tự được biểu diễn bởi 7 bit trong một Byte Hiện nay, một trong các bảng mã thông dụng được dùng là Unicode, trong bảng mã này, mỗi ký tự được mã hoá bởi 2 Byte
Trang 30CHƯƠNG 2
HỆ THỐNG MÁY TÍNH
1 Các thành phần cơ bản của máy tính
Từ khi ra đời cho đến nay, cấu trúc cơ sở của các máy vi tính không thay đổi mấy
Hình 4: Sơ đồ khối tổng quát của máy tính Máy tính, ở dạng đơn giản nhất, được cấu thành từ bốn khối chức năng cơ bản sau:
- Khối điều khiển và xử lý dữ liệu: Khối chức năng này được tích hợp trong cùng một vi mạch gọi là Đơn vị xử lý trung tâm (CPU – Central Proccessing Unit)
- Khối lưu trữ dữ liệu được gọi là bộ nhớ (Memory)
- Khối chức năng cung cấp dữ liệu cho máy tính xử lý, hoặc phản ánh dữ liệu đã được xử lý do máy tính cung cấp, được gọi là khối các thiết bị nhập xuất (I/O devices)
- Các kênh truyền dẫn cung cấp sự liên lạc và trao đổi dữ liệu giữa các khối trên, được gọi là kênh liên kết hệ thống (BUS)
Trong một máy tính, mỗi khối thực hiện các chức năng nói trên có thể tồn tại nhiều đơn vị, dưới các dạng khác nhau, trong đó CPU là quan trọng nhất
1.1 Đơn vị xử lý trung tâm (CPU)
CPU viết tắt của chữ Central Processing Unit - đơn vị xử lí trung tâm CPU có thể
được xem như não bộ, một trong những thành phần cốt lõi nhất của máy vi tính Nhiệm
vụ chính của CPU là xử lý các chương trình và dữ liệu
Trang 31CPU là một mạch xử lý dữ liệu theo chương trình được thiết lập trước Nó là một mạch tích hợp phức tạp gồm hàng triệu transitor trên một bảng mạch nhỏ
Đơn vị xử lý trung tâm bao gồm:
- Đơn vị điều khiển (Control unit - CU): điều khiển hoạt động của máy tính theo chương trình đã định sẵn
- Đơn vị số học và logic (Arithmetic Logic unit - ALU): thực hiện các phép toán số học và các phép toán logic trên các dữ liệu cụ thể
- Thanh ghi (Register File - RF): lưu giữ thong tin tạm thời phục vụ cho hoạt động của CPU
- Đơn vị bối ghép BUS (Bus Interface Unit): Kết nối và trao đổi thong tin giữa Bus bên trong và Bus bên ngoài
Nguyên tắc hoạt động của CPU là hoạt động theo chương trình định sẵn nằm trong
bộ nhớ chính
Tốc độ xử lý của CPU được tính bằng số lệnh được thực hiện trong một giây (MIPS – Millions of Instructions per second) Tốc độ xử lý của máy tính phụ thuộc vào tốc độ của CPU, nhưng nó cũng phụ thuộc vào các phần khác (như bộ nhớ trong, RAM, hay bo mạch đồ họa) nên chúng ta khó đánh giá chính xác tốc độ xử lý của máy tính
CPU hoạt động theo một xung (Clock) có tần số xác định (tính bằng các đơn vị như MHz, GHz, ), tốc độ của CPU được đánh giá gián tiếp thong qua tần số xung nhịp Tần số xung nhịp của bộ vi xử lý:
- Dạng xung nhịp:
T0 Trong đó: T0 là chu kỳ xung nhịp
Tần số xung nhịp: f0 = 1/T0
Trang 32Mỗi thao tác của bộ vi xử lý cần kT0 do đó T0 càng nhỏ thì bộ vi xử lý chạy càng nhanh
Các thiết bị lưu trữ dữ liệu tạm thời trong quá trình làm việc: RAM, Cache
Chức năng chính của bộ nhớ máy tính là lưu trữ chương trình và dữ liệu Các thao tác có thể thực hiện trên bị nhớ là đọc và ghi dữ liệu, chương trình
Bộ nhớ máy tính có thể chia thành hai dạng: Bộ nhớ trong và bộ nhớ ngoài
* Bộ nhớ trong
Bộ nhớ trong chứa các thong tin mà CPU có thể trao đổi trực tiếp để đọc và ghi dữ liệu Bộ nhớ trong thường có tốc độ nhanh và dung lượng không lớn, thường sử dụng bộ nhớ bán dẫn là ROM, RAM
Bộ nhớ trong gồm:
- Bộ nhớ đệm nhanh (cache memory): có tốc độ truy xuất nhanh được đặt đệm giữa CPU và bộ nhớ chính nhằm tăng tốc độ CPU truy nhập bộ nhớ, bộ nhớ đệm có tốc độ nhanh hơn nhưng dung lượng nhỏ hơn bộ nhớ chính
Thường nằm trong CPU, một số cache cũ có thể nằm ngoài CPU: như các cache trên
đế cắm kiểu slot 1, hoặc cache dạng thanh, có thể tháo rời giống như các thanh RAM ngày nay
- Bộ nhớ chính (main memory)
Bộ nhớ RAM (Random access memory), hay Bộ nhớ truy cập ngẫu nhiên: Tốc độ truy cập nhanh, lưu trữ dữ liệu tạm thời, dữ liệu sẽ bị mất đi khi bị cắt nguồn điện
Bộ nhớ ROM (Read Only Memory), hay Bộ nhớ chỉ đọc: Lưu trữ các chương trình
mà khi mất nguồn điện cung cấp sẽ không bị (xóa) mất Ngày nay còn có công nghệ FlashROM tức bộ nhớ ROM không những chỉ đọc mà còn có thể ghi lại được, nhờ có công nghệ này BIOS được cải tiến thành FlashBIOS
Trang 33* Bộ nhớ ngoài được hiểu là bộ nhớ máy tính gắn bên ngoài thùng máy, có thể dùng
để mang đi lại được
Bộ nhớ ngoài dung để lưu trữ tài nguyên phần mềm của máy, được kết nối với hệ thống dưới dạng các thiết bị vào ra, có dung lượng lớn và tốc độ chậm
Bao gồm:
- Bộ nhớ từ: đĩa cứng, băng từ, Đĩa mềm
- Bộ nhớ quang: đĩa CD-ROM, DVD
- Bộ nhớ bán dẫn: các bộ nhớ flash như thẻ nhớ
1.3 Hệ thống vào-ra (Input-Output)
Đây là hệ thống xuất nhập thông tin, hệ thống này thực hiện sự giao tiếp giữa máy tính và người dùng hay giữa các máy tính trong hệ thống mạng (đối với các máy tính được kết nối thành một hệ thống mạng)
Thiết bị xuất/nhập cho phép máy tính thu nhận thông tin từ bên ngoài qua thiết bị nhập Sau khi được xử lý bởi hệ điều hành sẻ được gửi kết quả công việc của nó đến thiết
bị xuất
Các bộ phận xuất nhập thường gặp là:
+ Thiết bị ngoại vi có chức năng chuyển đổi dữ liệu giữa bên trong và bên ngoài máy tính
- Các thiết bị nhập bao gồm: chuột, bàn phím, ổ đĩa mềm, ổ đĩa CD, webcam,
touchpad Công việc của thiết bị nhập (input) là mã hóa (chuyển đổi) thông tin từ nhiều
định dạng sang dạng dữ liệu mà máy tính có thể xử lý
- Các thiết bị xuất bao gồm: màn hình, máy in, ổ đĩa flash (usb), ổ cứng di động tới
những thiết bị không thông dụng như ổ zip Các thiết bị xuất (output) thì ngược lại, thực
hiện công việc giải mã dữ liệu thành thông tin mà người sử dụng có thể hiểu được
- Các thiết bị nhớ: các ổ đĩa
- Thiết bị truyền thong: modem,…
+ Module vào ra có chức năng nối ghép các thiết bị ngoại vi với máy tính Mỗi module vào ra có một hoặc vài cổng vào ra được đánh địa chỉ xác định, các thiết bị ngoại
vi được kết nối và trao đổi dữ liệu với máy tính thong qua các cổng vào ra đó
2 Các hoạt động của máy tính
2.1 Thực hiện chương trình
Chức năng cơ bản của máy tính là thực hiện chương trình Chương trình được thực hiện gồm một dãy các chỉ thị được lưu trữ trong bộ nhớ Đơn vị xử lý trung tâm (CPU) đảm nhận việc thực hiện này
Trang 34Việc đảm bảo thực hiện chương trình theo tuần tự là do CU đảm nhận thông qua việc điều khiển sự thay đổi nội dung của thanh đếm chương trình PC Tuần tự các lệnh trong chương trình là do người lập trình quyết định thông qua việc viết chương trình theo thuật giải
Khi thực hiện một chương trình, thông thường máy tính thực hiện các công việc sau:
- Thứ nhất, Xử lý dữ liệu: Xử lý các yêu cầu của con người/thiết bị trên cơ sở các dữ liệu được nhập vào Đây là chức năng quan trọng nhất Dữ liệu có thể ở nhiều dạng khác nhau và các yêu cầu xử lý cũng rất khác biệt Tuy nhiên máy tính chỉ có thể thực hiện được một số lượng hữu hạn các thao tác xử lý cơ bản, người lập trình dựa trên các khả năng xử lý dó mà tạo ra những khả năng xử lý các vấn đề lớn hơn và phức tạp hơn thông qua công việc lập trình
- Thứ hai, Lưu trữ dữ liệu: Muốn công việc xử lý dữ liệu đạt hiệu quả cao, máy tính phải có khả năng lưu trữ tạm thời dữ liệu và lưu trữ dữ liệu dài hạn để tái sử dụng sau này
- Thứ ba, Di chuyển dữ liệu: Để phục vụ việc xử lý, dữ liệu phải có thể di chuyển từ điểm này tới điểm khác bên trong máy tính Ngoài ra, để có dữ liệu cho xử lý và gửi kết quả ra bên ngoài, máy tính phải có khả năng trao đổi dữ liệu với môi trường bên ngoài
- Thứ tư, Điều khiển: Để thực hiện có hiệu quả ba chức năng nói trên, các tác vụ máy tính thực hiện phải được điều khiển một cách đồng bộ và hợp lý Quy trình điều khiển này sẽ được thực hiện nhờ con người cung cấp lệnh cho máy tính thi hành thông qua một đơn vị điều khiển bên trong máy tính
Kiến trúc máy tính phải được thiết kế để máy tính có khả năng thực hiện những công việc này
Trang 35- Ngắt do module vào ra phát tín hiệu ngắt đển CPU yêu cầu trao đổi dữ liệu
- Ngắt do lỗi phần cứng: Trang bộ nhớ thực sự không có trong bộ nhớ, Báo vi phạm vùng cấm của bộ nhớ, Báo phần cứng máy tính bị hư, Báo điện bị cắt
Mặc dù hoạt động ngắt không xảy ra thường xuyên nhưng bộ xử lý phải được thiết
kế sao cho có thể lưu giữ trạng thái của nó trước khi nhảy đi phục vụ ngắt Sau khi thực hiện xong chương trình phục vụ ngắt, bộ xử lý phải khôi phục trạng thái của nó để có thể tiếp tục công việc
Để đơn giản việc thiết kế, một vài bộ xử lý chỉ chấp nhận ngắt sau khi thực hiện xong lệnh đang chạy
Khi một ngắt xảy ra, bộ xử lý thi hành các bước sau đây:
1 Thực hiện xong lệnh đang làm
2 Lưu trữ trạng thái hiện tại
3 Nhảy đến chương trình phục vụ ngắt
4 Khi chương trình phục vụ chấm dứt, bộ xử lý khôi phục lại trạng thái cũ của nó
và tiếp tục thực hiện chương trình mà nó đang thực hiện khi bị ngắt
Khi có nhiều yêu cầu ngắt cùng một lúc thì CPU xử lý các yêu cầu ngắt theo hai cách:
- Xử lý ngắt tuần tự: Khi một ngắt đang thực hiện thì các ngắt khác sẽ bị cấm, bộ xử
lý sẽ bỏ qua các ngắt tiếp theo trong khi đang xử lý một ngắt Các ngắt đang đợi được kiển tra sau khi ngắt đầu tiên được xử lý xong và được thực hiện tuần tự theo thứ tự yêu cầu ngắt
- Xử lý ngắt ưu tiên: Các ngắt được định nghĩa các mức ưu tiên khác nhau, ngắt có mức ưu tiên thấp hơn có thể bị ngắt bởi ngắt có mức ưu tiên cao hơn -> xảy ra ngắt lồng nhau
2.3 Hoạt động vào-ra
Hoạt động vào ra là hoạt động trao đổi dữ liệu giữa thiết bị ngoại vi với bên trong máy tính
Trang 36Các kiểu hoạt động vào ra:
- CPU trao đổi dữ liệu với module vào ra
- Module vào ra trao đổi dữ liệu trực tiếp với bộ nhớ chính
3 Liên kết hệ thống
3.1 Khái niệm chung về Bus
Trong các bộ vi xử lý có một hệ thống các Bus dung để truyền số liệu, lệnh và các tín hiệu điều khiển,… giữa các khối bên trong của CPU
Vậy Bus là tập hợp các đường kết nối dung để vận chuyển thong tin giữa các thành phần trong máy tính với nhau
Độ rộng Bus là số đường dây của Bus có thể truyền các thong tin đồng thời (khái niệm này chỉ dung cho bus địa chỉ và bus dữ liệu)
BUS là tập hợp các đường dây kết nối hai hay nhiều thiết bị với nhau Rất nhiều thiết bị kết nối với BUS, một tín hiệu được truyền đi từ bất kỳ thiết bị nào cũng có thể được gửi đến tất cả các thiết bị kết nối với BUS
Một hệ thống máy tính chứa đựng một số loại BUS khác nhau tuỳ thuộc các đường kết nối giữa các bộ phận ở các mức khác nhau của hệ thống
Ta có thể phân loại BUS theo đường truyền:
- BUS đồng bộ: được điều khiển bởi nhịp đồng hồ với chu kỳ nhất định Hoạt động của vi xử lý đòi hỏi thời gian là bội số của chu kỳ máy
- BUS không đồng bộ: không hoạt động theo xung đồng hồ nhất định, khi truyền tín hiệu thiết bị truyền phát tín hiệu MSYN báo cho thiết bị nhận chạy nhanh nhất có thể, sau khi hoàn thành thiết bị nhận phát tín hiệu SSYN
BUS kết nối các bộ phận chính của máy gọi là BUS hệ thống BUS hệ thống gồm từ
50 đến 100 đường truyền riêng biệt, mỗi đường được phân chia một chức năng riêng biệt
Hệ thống BUS được phân loại thành 3 nhóm chính: BUS dữ liệu, BUS địa chỉ, BUS điều khiển
- BUS dữ liệu: truyền tải dữ liệu đến các thiết bị Một BUS dữ liệu tiêu biểu bao gồm 8, 16 hay 32 đường, số đường được coi là độ rộng của BUS dữ liệu Mỗi đường chỉ
Trang 37có thể mang một bit dữ liệu tại một thời điểm, số lượng đường xác định số lượng bit có thể được truyền trong một thời điểm
- BUS địa chỉ: dùng chỉ định rõ nguồn gốc hay đích đến của dữ liệu trên BUS dữ liệu Địa chỉ thường là địa chỉ các cổng vào/ra, từ nhớ trong ngăn nhớ
- BUS điều khiển: điều khiển việc truy nhập và việc sử dụng các đường địa chỉ và
dữ liệu Các đường dữ liệu và địa chỉ được chia sẻ cho tất cả các bộ phận, phải có sự điều khiển việc sử dụng các đường đó Các tín hiệu điều khiển truyền cả lệnh và thông tin thời gian giữa các module hệ thống Tín hiệu thời gian chỉ ra những thông tin về địa chỉ và dữ liệu hợp lệ Các tín hiệu lệnh định ra các thao tác được thực hiện
Những đường điều khiển tiêu biểu:
+ Memory write: điều khiển dữ liệu trên BUS được viết vào vị trí đã được xác định bằng địa chỉ
+ Memory read: điều khiển việc đưa dữ liệu từ một vị trí xác định vào BUS
+ I/O write: điều khiển đưa dữ liệu từ BUS ra cổng vào ra đã xác định
+ I/O read: điều khiển việc nhập dữ liệu từ cổng vào ra chuyển vào BUS
+ Clock: xung đồng hồ trong quá trình đồng bộ
+ Interrupt ACK: chấp nhận ngắt từ CPU
+ Transfer ACK: chỉ ra dữ liệu đã được chấp nhận
+ BUS request: chỉ ra module cần chiếm quyền điều khiển BUS
+ BUS grant: chỉ ra module đang yêu cầu đã được cấp quyền điều khiển BUS
+ Interrupt request: yêu cầu ngắt từ thiết bị ngoại vi
+ Reset: khởi động lại các module
3.2 Cấu trúc đơn bus
Đặc điểm:
- Bus hệ thống chỉ phục vụ được một yêu cầu trao đổi dữ liệu tại một thời điểm
Trang 38- Các thành phần nối vào BUS có thể có tốc độ khác nhau
- Bus hệ thống phải có tốc độ bằng tốc độ bus của modun nhanh nhất trong hệ thống
- Bus hệ thống phụ thuộc váo vầu trúc bus của bộ xử lý, các modun nhớ và các modun vào ra cũng phụ thuộc vào bộ xử lý
Khắc phục:
- Xây dựng cấu trúc đa BUS bao gồm các hệ thống BUS khác nhau về tốc độ
- Trong hầu hết các máy PC bus đƣợc phân 3 cấp và các bus nối với nhau thông qua cầu nối BUS
3.3 Phân cấp bus trong máy tính
Do yêu cầu tốc độ ở các bộ phận khác nhau nên có thể phân cấp bus cho các thành phần:
Trang 39Mô hình phân cấp bus
* Bus mở rộng (Expansion bus)
Bus mở rộng cho phép PC liên lạc được với các thiết bị ngoại vi, các thiết bị này được cài đặt qua các khe cắm mở rộng (expansion slot)
Các thông số chính của bus mở rộng: tốc độ truyền tối đa giữa các thiết bị với nhau
và giữa các thiết bị với bộ nhớ chính, số đường địa chỉ (số lượng ô nhớ có thể được truy xuất bởi 1 thiết bị), số đường ngắt cứng, …
a Bus ISA (Industry Standard Architecture)
Bus ISA dùng cho hệ thống chỉ được điều khiển bởi 1 CPU trên bảng mạch chính, tức là tất cả các chương trình và thiết bị đều chỉ được điều khiển bởi CPU đó Tần số làm việc cực đại là 8.33 MHz (tốc độ chuyển tải cực đại là 16.66 MBps với số liệu 2 bytes)
Bề rộng dữ liệu là 8 hay 16 bits ISA có 24 đường địa chỉ nên quản lý được 16 MB bộ nhớ Bus ISA tương thích 90% với bus AT
b Bus EISA và MCA: Sử dụng cho các CPU 32 bits (số liệu và đường địa chỉ) từ
80386 trở đi
Processor
Main memory
Cache
SCSI PL394 Graphic Video LAN
FAX Expansion bus interface Moder Serial
Local bus
System bus
High-speed bus
Expansion bus
Trang 40c Bus EISA (Extended ISA)
Đây là chuẩn mở rộng của ISA để bố trí các dữ liệu 32 bits nhưng vẫn giữ được sự tương thích với mạch nối ghép cũ Bus EISA có 2 nấc, các tín hiệu ISA được gửi qua nấc trên và các tín hiệu phụ trợ EISA qua nấc dưới Các đặc trưng của EISA như sau:
• Về mặt cơ khí: có nhiều chân cắm hơn nhưng vẫn tương thích với ISA
• Độ rộng dữ liệu: có thể truy xuất 2 đường 8 bits (tương thích với ISA), hay 2 đường 16 bits Do đó, đơn vị quản lý bus 32 bits có thể chuyển tải 4 byte với bộ nhớ hoặc thiết bị ngoại vi Điều này góp phần tăng tốc độ truyền tải lên khoảng 33 MBps so với 16.66 MBps của ISA
• Độ rộng địa chỉ: ngoài 24 đường như ISA còn thêm 8 đường bổ sung nữa, do đó
có thể định địa chỉ trong 4 GB bộ nhớ
• Phần cứng được thiết kế theo hệ thống EISA phức tạp hơn ISA vì nó cũng phải thực hiện các chu kỳ bus tương thích với ISA EISA có thể thực hiện phân xử bus, nó cho phép vi xử lý nằm ngoài bảng mạch chính có thể điều khiển toàn bộ bus Điều này rất hiệu quả trong các hệ thống đa xử lý (multiprocessor) Hãng Intel đã phát triển 4 chip điện
tử phục vụ cho bus EISA như sau:
o ISP (Intergrated system peripheral)
o BMIC (Bus master interface controller)
o EBC (EISA bus controller)
o EBB (EISA bus buffer)
d Bus MCA (Micro Channel Architecture)
Phục vụ cho hệ thống IBM PS/2 không tương thích với bus ISA, có thể hoạt động với 16 hay 32 bits dữ liệu Nó có nhiều đường dẫn hơn ISA, thiết kế phức tạp cho phép giảm bớt các nhiễu cao tần của PC tới các thiết bị xung quanh Tốc độ truyền dữ liệu có thể lên tới 160 MBps
e Bus cục bộ (Local Bus)
Nhược điểm của các bus chuẩn trên là mặc dù xung clock của CPU rất cao nhưng cũng chỉ làm việc với các ngoại vi với tốc độ truyền tải không quá 33MBps Điều này