Một chương trình sẽ được sao chép từ đĩa cứng vào bộ nhớ trong cùng với các thông tin cần thiết cho chương trìnhhoạt động, các thông tin này được nạp vào bộ nhớ trong từ các bộ phận các
Trang 1Bài 1: TỔNG QUAN VỀ MÁY TÍNH 1.1 Giới thiệu chung
1.1.1 Giới thiệu
Máy tính (computer) - còn gọi là máy điện toán - là những thiết bị hay hệthống dùng để lưu trữ, xử lý thông tin Máy tính được cấu thành bởi các thànhphần chức năng cơ bản đã xây dựng trước Quá trình tác động tương hỗ phức tạpcủa các thành phần này tạo cho máy tính có tiềm năng to lớn trong xử lý thông tin.Nếu chương trình máy tính được xây dựng một cách chính xác, máy tính có thể môphỏng lại một số khía cạnh của một vấn đề hay của một hệ thống nào đó trong thếgiới thực
Kể từ khi ra đời từ những năm 1950, những tiến bộ trong khoa học và công nghệ không ngừng phát triển, các tính năng của máy tính được ngày càng hoàn thiện Tuy nhiên, các nguyên
lý hoạt động cũng như kiến trúc của máy tính vẫn chưa thay đổi đáng kể Bài này tập trung giới thiệu các nguyên lý thiết kế máy tính cơ bản.
1.1.2 Máy tính điện tử
Do sự phát triển nhanh của lĩnh vực ứng dụng máy tính, đã có nhiều quanniệm khác nhau về máy tính điện tử Theo nghĩa chung nhất, người ta quan niệmmáy tính điện tử (người ta thường gọi tắt là máy tính) như sau : “máy tính điện tử
là phương tiện được xây dựng dựa trên các linh kiện điện tử để thực hiện các phéptính toán, biến đổi toán học, ”
Có hai loại máy tính điện tử đó là :
- Máy tính số (Digital Computer) là máy tính có nhiệm vụ xử lý dữ liệu đượcbiểu diễn dưới dạng các đại lượng rời rạc như : bóng đèn, transistor,…
- Máy tính tương tự làm việc với các dữ liệu được biểu diễn dưới dạng các đạilượng liên tục điện từ, điện áp,…
Hệ thống máy tính thường được cấu thành bởi hai thành phần đó là phầncứng và phần mềm :
- Phần cứng (Hardware) là các đối tượng vật lý hữu hình như : bản mạchchính (Mainboard), bộ nhớ trong (RAM), đĩa cứng (HardDisk), màn hình (DisplayScreen),…
Trang 2- Phần mềm (Software): là các chương trình được cài đặt trên máy tính nhằmthực hiện các thao tác theo yêu cầu của con người Mỗi phần mềm máy tính là mộtánh xạ của phần cứng máy tính, hay còn gọi là máy ảo.
1.1.3 Phân loại máy tính
Dựa vào kích thước vật lý, hiệu suất và lĩnh vực sử dụng, người ta chia máytính số thành 5 loại cơ bản sau, các loại có thể trùm lên nhau một phần:
- MicroComputer: còn gọi là PC (personal computer), là những máy tính
có kích thước nhỏ, năng lực lưu trữ và tính toán thấp MicroComputer thường đượcdùng bởi một người và thực thi các ứng dụng phục vụ cho công việc cá nhân nhưcác ứng dụng văn phòng, giải trí,
- MiniComputer: là những máy tính cỡ trung bình, kích thước thường lớnhơn PC MiniComputer có khả năng hỗ trợ hàng trăm người sử dụng đồng thời, vàthường dùng để thực hiện các ứng dụng có khối lượng tính toán lớn như dịch vụWeb, dịch vụ Mail,…
- Mainframe: là loại máy tính cỡ lớn, có khả năng hỗ trợ hàng ngàn người
sử dụng tính đa dụng Nó có thể dùng cho các ứng dụng quản lý hoặc xử lý cácgiao dịch như trong ngân hàng,…cũng như các tính toán khoa học Mainframethường dùng kỹ thuật xử lý song song và có hệ thống vào/ra mạnh Giá một máytính lớn có thể từ vài trăm ngàn USD đến hàng triệu USD
- SuperComputer: Đây là các siêu máy tính, đắt tiền nhất và tính năng kỹthuật cao nhất, được thiết kế đặc biệt để đạt được tốc độ thực hiện các phép tínhdấu phẩy động cao nhất có thể được Các siêu máy tính thường là các máy tínhvectơ hay các máy tính dùng kỹ thuật vô hướng và được thiết kế để tính toán khoahọ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ý trongmột siêu máy tính)
Trang 31.2 Nguyên lý thiết kế máy tính cơ bản
1.2.1 Nguyên lý Turing
Alan Turing (1912 - 1954) là một nhà toán học người Anh đã đưa ra mộtthiết bị tính đơn giản gọi là máy Turing Về lý thuyết, mọi quá trình tính toán cóthể được thì đều có thể mô phỏng lại trên máy Turning Máy Turning gồm có :
- Một bộ điều khiển trạng thái hữu hạn (finite control), trong đó có cáctrạng thái đặc biệt như trạng thái khởi đầu và trạng thái kết thúc
- Một băng ghi (tape) chứa tín hiệu trong các ô
- Một đầu đọc (head) và ghi có thể di chuyển theo 2 chiều trái hoặc phảimột đơn vị
Hình 1.1: Sơ đồ máy Turing
Ðầu đọc/ghi mang chức năng thông tin nối giữa Bộ điều khiển hữu hạn vàbăng ghi Ðầu bằng cách đọc dấu hiệu từ băng và cũng dùng nó để thay đổi dấuhiệu trên băng Bộ kiểm soát vận hành theo từng bước riêng biệt; mỗi bước nó thựchiện 2 chức năng tùy thuộc vào trạng thái hiện tại của nó và tín hiệu hiện tại củabăng:
(1) Ðặt bộ điều khiển ở trạng thái ban đầu q1, băng trắng và đầu đọc/ghi chỉvào ô khởi đầu
(2) Nếu:
(a) trạng thái hiện tại q trùng với trạng thái kết thúc qo thì máy sẽ dừng.(b) ngược lại, trạng thái q sẽ chuyển qua q, tín hiệu trên băng s thành s và đầu đọcdịch chuyển sang phải hoặc trái một đơn vị Máy hoàn thành xong một bước tínhtoán và sẵn sàng cho bước tiếp theo
1.2.2 Nguyên lý Von Neumann
Trang 4Năm 1946, nhà toán học Mỹ Von Neumann (1903 - 1957) đã đề ra mộtnguyên lý máy tính hoạt động theo một chương trình được lưu trữ và truy nhậptheo địa chỉ Nguyên lý này được trình bày ở một bài báo nổi tiếng nhan đề: “Thảo
luận sơ bộ về thiết kế logic của máy tính điện tử” Nội dung nguyên lý Von
Neumann gồm:
(i) Máy tính có thể hoạt động theo một chương trình đã được lưu trữ
Theo Von Neumann, chúng ta có thể tập hợp các lệnh cho máy thi hành theomột chương trình được thiết kế và coi đó như một tập dữ liệu Dữ liệu này được càivào trong máy và được truyền bằng xung điện Ðây là một cuộc cách mạng mớicho máy tính nhằm tăng tốc độ tính toán vào thời đó vì trước kia máy chỉ có thểnhận được các lệnh từ băng giấy hoặc bìa đục lỗ và nạp vào bằng tay Nếu gặp bàitoán lặp lại nhiều lần thì cũng tiếp tục bằng cách nạp lại một cách thủ công nhưvậy gây hạn chế trong tính toán sử dụng
(ii)Bộ nhớ được địa chỉ hóa
Mỗi dữ liệu đều có một địa chỉ của vùng nhớ chứa số liệu đó Như vậy để
truy nhập dữ liệu ta chỉ cần xác định địa chỉ của nó trên bộ nhớ
Nếu mỗi câu lệnh phải dùng một vùng nhớ để chứa địa chỉ của câu lệnh tiếptheo thì không gian bộ nhớ sẽ bị thu hẹp Ðể khắc phục hạn chế này, máy được gắnmột thanh ghi để chỉ ra vị trí của lệnh tiếp theo cần được thực hiện và nội dung của
nó tự động được tăng lên mỗi lần lệnh được truy cập Muốn đổi thứ tự lệnh ta chỉcần thay đổi nội dung thanh ghi bằng một địa chỉ của lệnh cần được thực hiện tiếp
Trang 5Bài 2: TỔ CHỨC CỦA MÁY TÍNH
2.1 Kiến trúc chung của máy tính
Kể từ khi ra đời cho đến nay, kiến trúc cơ sở của các máy vi tính ngày naykhông thay đổi nhiều Mọi máy tính số đều được hình thành từ các thành phầnchính sau: bộ xử lý trung tâm (CPU: Central Processing Unit), bộ nhớ trong, bộphận Vào/Ra thông tin Các bộ phận trên được kết nối với nhau thông qua các hệthống Bus Hệ thống Bus bao gồm: bus địa chỉ, bus dữ liệu và bus điều khiển Busđịa chỉ và bus dữ liệu dùng trong việc chuyển dữ liệu giữa các bộ phận trong máytính Bus điều khiển làm cho sự trao đổi thông tin giữa các bộ phận được đồng bộ.Thông thường người ta phân biệt một bus hệ thống dùng trao đổi thông tin giữaCPU và bộ nhớ trong (thông qua cache), và một bus Vào/Ra dùng trao đổi thôngtin giữa các bộ phận Vào/Ra và bộ nhớ trong Một chương trình sẽ được sao chép
từ đĩa cứng vào bộ nhớ trong cùng với các thông tin cần thiết cho chương trìnhhoạt động, các thông tin này được nạp vào bộ nhớ trong từ các bộ phận các thiết bịvào dữ liệu (ví dụ như một bàn phím hay một đĩa từ) Bộ xử lý trung tâm sẽ đọccác lệnh và dữ liệu từ bộ nhớ, thực hiện các lệnh và lưu các kết quả trở lại bộ nhớtrong hay cho xuất kết quả ra bộ phận xuất thông tin (màn hình hay máy in)
Bộ xử lý trung tâm (CPU)
Bộ nhớ trong (Memory) ROM-RAM
Bộ nhớ ngoài (Mass store Unit)
Phối ghép vào/ra (I/O)
Thiết bị vào (Input Unit)
Thiết bị ra (Output Unit)
Data Bus
Control Bus
Adrress Bus
Trang 6Hình 2.1: Kiến trúc chung của máy tính
Thành phần cơ bản của một máy tính bao gồm :
Bộ nhớ trong: Đây là một tập hợp các ô nhớ, mỗi ô nhớ có một số bit nhất
định và chứa một thông tin được mã hoá thành số nhị phân mà không quan tâmđến kiểu của dữ liệu mà nó đang chứa Các thông tin này là các lệnh hay số liệu.Mỗi ô nhớ của bộ nhớ trong đều có một địa chỉ Thời gian thâm nhập vào một ônhớ bất kỳ trong bộ nhớ là như nhau Vì vậy, bộ nhớ trong còn được gọi là bộ nhớtruy cập ngẫu nhiên (RAM - Random Access Memory) Độ dài của một từ máytính (computer word) là 32 bit (hay 4 byte), tuy nhiên dung lượng một ô nhớ thôngthường là 8 bit (1 Byte)
Bộ xử lý trung tâm (CPU - Central Processing Unit): Đây là bộ phận thi
hành lệnh của máy tính, CPU lấy lệnh và lấy các số liệu mà lệnh đó xử lý từ bộnhớ trong để tiến hành xử lý Bộ xử lý trung tâm gồm có hai phần: phần thi hànhlệnh và phần điều khiển Phần thi hành lệnh bao gồm bộ số học và logic (ALU:Arithmetic And Logic Unit) và các thanh ghi Nó có nhiệm vụ làm các phép toántrên số liệu Phần điều khiển có nhiệm vụ đảm bảo thi hành các lệnh một cách tuần
tự và tác động các mạch chức năng để thi hành các lệnh
Hình 2.2 : Sơ đồ hoạt động của máy tính PC
Trang 7Bộ phận Vào/ Ra (I/O – Input/Output): đây là bộ phận xuất nhập thông tin,
bộ phận 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áytính với môi trường (như là các hệ thống khác trọng mạng máy tính, ) Các bộphận Vào/Ra thường gặp là: bộ lưu trữ ngoài, màn hình, máy in, bàn phím, chuột,máy quét ảnh, các giao diện mạng cục bộ hay mạng diện rộng
Sự khác biệt quan trọng nhất của các hệ máy tính là kích thước và tốc độ Sựphát triển không ngừng của các thế hệ máy tính nhờ vào hai yếu tố quan trọng, đó
là sự phát triển của công nghệ chế tạo IC và công nghệ chế tạo bộ nhớ
2.2 Hoạt động chung của hệ thống máy tính
Các đơn vị chức năng và mối quan hệ của chúng có thể được minh họa bằnghình 2.3 dưới đây (Các đường vẽ bằng nét đứt chỉ mối quan hệ điều khiển Cácđường vẽ bằng nét liền là các con đường truyền dữ liệu) Có thể mô tả sự hoạtđộng của máy tính một cách khái quát như sau:
Trước hết các chương trình và số liệu ban đầu được đưa vào bộ nhớ trong,
đó thường là bộ nhớ bán dẫn RAM Khi bắt đầu thi hành chương trình, lệnh đầutiên trong tập lệnh đã được tích lũy ở bộ nhớ trong được đưa vào đơn vị điều khiển
- CU
CU tiến hành giải mã lệnh, nếu việc giải mã cho thấy lệnh cần một hay một
số toán hạng thì nó sẽ xác định xem toán hạng đó nằm ở đâu trong bộ nhớ, việcnày thường được gọi là tính địa chỉ các toán hạng Toán hạng là thành phần thamgia phép tính cơ bản Ví dụ như một phép cộng có thể có hai toán hạng là hai sốhạng tham gia phép cộng Còn khi cộng một dãy hơn hai số hạng thì phải thực hiệntheo một thuật toán chẵng hạn như công liên tiếp từng số hạng với tổng
Sau khi tính địa chỉ các toán hạng, CU sẽ phát ra tín hiệu điều khiển tới cácthành phần cần thiết của hệ thống để lấy các toán hạng về, đặt vào các thanh ghibên trong đơn vị tính toán ALU CU phát tín hiệu điều khiển tới ALU để ALUthực hiện phép toán trên các toán hạng đã lấy về Kết quả phép toán có thể được đểtrong ALU để nó tham gia vào các phép toán tiếp theo hoặc đưa vào bộ nhớ trong.Điều này tùy thuộc vào mã lệnh mà CU đã nhận vào và giải mã Nếu CU giải mã
và thấy rằng, mã lệnh cho biết cần tiến hành rẽ nhánh chương trình, nó sẽ tính địa
Trang 8chỉ bộ nhớ của lệnh kế tiếp cần thực hiện và phát ra các tín hiệu điều khiển để lấylệnh kế tiếp về, sau đó mọi việc lại diễn ra lặp lại tương tự như quá trình trên trên.
Nếu sau khi giải mã, CU thấy rằng không cần rẽ nhánh chương trình, nó sẽphát ra tín hiệu điều khiển để lấy về lệnh ngay sau nó trong bộ nhớ, sau đó mọiviệc lại diễn ra lặp lại tương tự như quá trình trên
Hình 2.3: Mối quan hệ logic giữa các thành chức năng trong máy tính
Quan hệ giữa bộ nhớ trong và ALU là quan hệ 2 hướng, tức là số liệu saukhi đã được đưa vào xử lý trong ALU theo đúng ý muốn của người lập chươngtrình sẽ lại được đưa ra bộ nhớ trong để sau đó khi có lệnh từ CU số liệu này có thểđược đưa ra thiết bị ra
Qua mối quan hệ nêu trên ta thấy rằng, CU, ALU và Bộ nhớ trong tham giatrực tiếp vào quá trình xử lý số liệu, chính vì vậy mà chúng còn được gọi là Đơn vị
xử lý trung tâm - CPU
Tập hợp các thiết bị vào và thiết bị ra thường được gọi bằng một cái tên
chung là thiết bị ngoại vi (thuật ngữ tiếng Anh là Peripherals, hoặc I/O Devices).
Có những thiết bị trong quá trình hoạt động của máy tính khi thì đóng vai trò củathiết bị vào, khi thì đóng vai trò của thiết bị ra ví dụ như đĩa cứng, đĩa CD Thông
Trang 9tin trao đổi giữa bộ nhớ ngoài và hệ thống máy tính luôn thông qua bộ nhớ trong,dưới sự điều khiển của CU Bộ nhớ ngoài của các máy tính ngày nay được sử dụngthường xuyên nên tốc độ hoạt động của chúng có ảnh hưởng nhiều tới tốc độchung của hệ thống máy tính
2.4 Phần cứng và phần mềm
Các chương trình viết bằng ngôn ngữ máy (cấp 1) được thực thi trực tiếpbằng các mạch điện tử của máy tính, không có trình thông dịch và biên dịch nàocan thiệp vào Các mạch điện tử cùng với bộ nhớ và các thành phần xuất / nhập tạonên phần cứng máy tính Phần cứng bao gồm các mạch tích hợp, các board mạch
in, cable, nguồn cung cấp, bộ nhớ, thiết bị đầu cuối,… Phần mềm bao gồm các giảithuật và các biểu diễn của các giải thuật này gọi là chương trình Nó chính là tậphợp các lệnh tạo thành một chương trình, chứ không phải là các phương tiện vật lýlưu trữ chúng Một dạng trung gian giữa phần mềm và phần cứng gọi là phần dẻo(firmware) Nó chính là thành phần bao gồm phần mềm được đặt vào bên trong cácmạch điện tử trong quá trình sản xuất Phần dẻo được dùng khi chương trình khôngthay đổi hay hiếm khi phải thay đổi như chương trình điều khiển đặt trong ROMBIOS Một thao tác bất kỳ thực thi bằng phần mềm có thể được gắn trực tiếp vàophần cứng và một lệnh bất kỳ thực thi bằng phần cứng cũng có thể được mô phỏngbằng phần mềm Quyết định đặt một số chức năng vào phần mềm và các chứcnăng khác vào phần cứng dựa trên các yếu tố giá thành, tốc độ, độ tin cậy Trênnhiều máy tính đầu tiên, phần cứng và phần mềm được phân biệt rõ ràng Phầncứng thực hiện vài lệnh đơn giản như cộng và nhảy, các thủ tục khác phải do lậptrình viên tự thiết kế Sau đó, một số thao tác thường xuyên thực thi đòi hỏi cácnhà thiết kế hướng đến yêu cầu xây dựng các mạch điện từ thực thi các thao tácnày Kết quả là hình thành xu hướng di chuyển các thao tác theo hướng từ cấp caoxuống cấp thấp hơn Một số thao tác trước đây được lập trình ở cấp máy quy ước,sau đó được chuyển xuống thực thi ở phần cứng
Tuy nhiên, khi xuất hiện thế hệ máy tính dùng vi lập trình và thế hệ máy tínhnhiều cấp, lại xuất hiện xu hướng ngược lại, nghĩa là di chuyển các thao tác từ cấpthấp lên cấp cao hơn Ví dụ như lệnh cộng sẽ được thực hiện trực tiếp bằng phần
Trang 10cứng ở các máy trước kia Đối với máy tính được vi lập trình hóa, lệnh cộng củacấp máy quy ước được thông dịch bằng một vi chương trình chạy trên cấp thấpnhất và được thực thi bằng một chuỗi các bước nhỏ: tìm lệnh, nạp lệnh, xác địnhlệnh, định vị dữ liệu, tìm và nạp dữ liệu từ bộ nhớ, thực thi phép cộng và lưu trữkết quả.
Một số đặc trưng trước đây được lập trình ở cấp máy quy ước, sau đó đượcthực hiện bằng phần cứng hay vi chương trình:
- Các lệnh nhân, chia số nguyên
- Các xung clock cho thủ tục định thời
- Các ngắt báo hiệu cho máy tính
- Khả năng chuyển đổi quá trình
Như vậy, ta thấy ranh giới giữa phần cứng và phần mềm là không nhất định
và thường xuyên thay đổi Theo quan điểm của lập trình viên, cách thức thực thimột lệnh là không quan trọng, ngoại trừ tốc độ thực thi Như vậy, phần cứng củangười này có thể là phần mềm của người kia Từ đó dẫn đến ý tưởng thiết kế máytính có cấu trúc (structured computer) Đó là cấu trúc một máy tính thành mộtchuỗi các cấp, lập trình viên làm việc trên cấp n không quan tâm đến các cấp khác
Bài 3: BỘ VI XỬ LÝ CỦA INTEL
Có thể nói, lịch sử phát triển của máy tính PC gắn liền với lịch sử phát triểncủa các thế hệ bộ vi xử lý Bộ vi xử lí trong bản mạch chính là thành phần quan
Trang 11trọng nhất của máy tính của PC Có hai thuật ngữ dùng để chỉ bộ phận này là: Bộ
vi xử lý (MicroProcessor - MP) hoặc Đơn vị xử lý trung tâm (Central ProcessingUnit - CPU) Nó được phát triển trên cơ sở công nghệ chế tạo các mạch vi điện tử
có độ tích hợp rất lớn với các phần tử cơ bản là các transistor trường MOS có độtiêu hao công suất rất nhỏ Trong họ vi xử lý 80x86, chúng thực hiện tất cả cáchoạt động logic và số học Nói chung, vi xử lí đọc số liệu từ bộ nhớ, xử lí nó theocách được xác định bởi lệnh và sau đó ghi kết qủa vào bộ nhớ hoặc thiết bị ngoại
vi
3.1 Cấu trúc chung của bộ vi xử lý 80286 Intel
Các bộ vi xử lý tiên tiến hiện nay đã đạt đến tốc độ xử lý hàng trăm triệu,thậm chí hàng tỷ phép tính trong một giây do có mật độ tích hợp vô cùng lớn cộngvới việc áp dụng những giải pháp kỹ thuật nhằm tối ưu hoá hiệu năng tính toán.Tuy nhiên, cấu trúc chung của các bộ vi xử lý cho đến nay vẫn dựa trên nhữngnguyên tắc thiết kế cơ bản từ đầu những năm 70 của thế kỷ XX Intel là hãng điđầu trong công nghệ chế tạo bộ vi xử lý và bài này trình bày cấu trúc của bộ vi xử
lý 80286 - bộ vi xử lý được đánh giá là có vai trò đi tiên phong trong việc tiếp cậnvới các hệ điều hành đa nhiệm
Sơ đồ chân tín hiệu của 80286 được thể hiện như hình 3.1 Những đặc trưng
cơ bản của 80286 là:
- Tần số xung nhịp là 16MHz
- Khả năng địa chỉ hoá được 16MB bộ nhớ vật lý và 1GB nhớ ảo
- Có hai chế độ hoạt động là chế độ thực và chế độ ảo (chế độ bảo vệ)
- Có khả năng làm việc với bộ đồng xử lý
Trang 12Hình 3.1: Sơ đồ bố trí chân tín hiệu của 80286
Các tín hiệu của 80286 được phân theo nhóm và được tổ chức thành 3 nhóm
cơ bản:
a Nhóm tín hiệu địa chỉ:
A 0 – A 23 là 24 chân tín hiệu địa chỉ dùng để địa chỉ hoá cho các bộ nhớ vật lý
và các cổng vào/ra Dung lượng bộ nhớ tối đa có thể địa chỉ hoá trực tiếp được là
224 = 16MB Khi làm việc với các cổng vào/ra thì các chân địa chỉ A16 – A23 đượcghim ở mức logic 0, do đó 80286 có thể quản lý trực tiếp 16K cổng vào/ra
Trang 13- CLK là tín hiệu xung đồng bộ cho bộ vi xử lý Tần số vào CLK sẽ được
chia đôi ở bên trong 80286 và tạo thành đồng hồ ngoại vi PCLK Mỗi CLK đượcgọi là 1 pha của 80286
- Cap là chân gắn tụ lọc nhiễu Tụ này có giá trị 0,047μF ± 20% có tác dụngF ± 20% có tác dụng
khử nhiễu xung của nguồn nuôi
- /BHE là tín hiệu cho phép chọn phần cao của kênh dữ liệu Tín hiệu này kết hợp với A 0 cho phép cho biết dữ liệu được truyền theo byte hay word:
- M/IO là tín hiệu dùng để phân biệt bộ nhớ và cổng vào/ra thông tin khi mà
bộ vi xử lý cần quy chiếu chúng, nếu quy chiếu bộ nhớ thì M/IO = 1 còn quy chiếucổng vào/ra thì M/IO = 0
- Các tín hiệu COD/INTA cùng với các tín hiệu M/IO, /S 1 , /S 0 cho phépphân biệt các chu kỳ máy khác nhau theo bảng sau:
COD/INTA M/Io S1 S0 Chu kú m¸y cña 80286
- /READY là tín hiệu sẵn sàng làm việc của thiết bị ngoại vi, đây là tín hiệu
được dùng để hỗ trợ cho hoạt động của CPU khi giao tiếp với thiết bị ngoại vi cótốc độ chậm
Trang 14- INTR là tín hiệu yêu cầu ngắt của ngoại vi, /INTA là tín hiệu trả lời ngắt của CPU, NMI là tín hiệu ngắt không che được (các tín hiệu này được đề cập chi
tiết trong bài Hoạt động ngắt của máy tính)
- HOLD và HLDA là tín hiệu phục vụ cho chế độ thâm nhập bộ nhớ trực
tiếp DMA (sẽ được đề cập trong bài tổ chức bộ nhớ cho máy tính PC)
- LOCK là tín hiệu cấm các bộ vi xử lý khác (trong chế độ làm việc song
song) dành quyền làm chủ kênh hệ thống Lệnh LOCK khởi động tín hiệu trên và
nó sẽ trở thành mức tích cực một cách tự động khi thực hiện lệnh XCHG hoặc ởchu kỳ /INTA hoặc trong thời gian thâm nhập bảng các bộ mô tả
- PEREQ và /PEACK phục vụ chế độ đối thoại giữa bộ vi xử lý 80286 với
các bộ đồng xử lý ví dụ như bộ đồng xử lý 80287 Tín hiệu PEREQ ở mức logíc 1
là tín hiệu yêu cầu 80286 gửi một toán hạng cho bộ đồng xử lý Tín hiệu /PEACKthông báo cho bộ đồng xử lý biết toán hạng mà nó yêu cầu đang được chuyển tới
- /BUSY và /ERROR là tín hiệu điều khiển cho bộ đồng xử lý /BUSY
thông báo cho 80286 biết rằng bộ đồng xử lý đang bận Lúc này bộ vi xử lý 80286thực hiện các lệnh ESC và WAIT để đợi bộ đồng xử lý Tín hiệu /ERROR sẽ báocho 80286 biết rằng bộ đồng xử lý phát hiện điều kiện ngoại lệ không che được
- RESET là tín hiệu khởi động có mức tích cực là mức logíc 1 Tín hiệu này
sẽ lập trạng thái ban đầu cho tất cả các thành phần cần thiết của hệ máy tính Khi
có RESET thì các tín hiệu ra có mức logíc như sau:
Trang 15Hình 3.2: Sơ đồ khối cấu trúc của 80286
Bộ vi xử lý 80286 được cấu tạo từ 4 đơn vị có thể làm việc song song (hình2.2) Đó là các đơn vị: BU (BUS UNIT), IU (INSTRUCTION UNIT), EU(EXECUTE UNIT) và AU (ADDRESSED UNIT)
Đơn vị BU phát sinh các tín hiệu địa chỉ, dữ liệu và thông tin điều khiển đểthâm nhập vào bộ nhớ hay vào các cổng vào/ra Nó cho phép thiết lập các quan hệvới các bộ đồng xử lý hoặc với các bộ xử lý đang làm chủ kênh Đơn vị này chophép quá trình nhận lệnh diễn ra song song với các quá trình khác nhờ có tệp đệm
6 byte Nó cho phép loại trừ thời gian chết khi nhận lệnh từ bộ nhớ
Đơn vị lệnh IU nhận lệnh từ tệp đệm, giải mã rồi đưa vào tệp đợi Tệp đợichứa được 3 lệnh
Đơn vị thực hiện EU sẽ thực hiện lệnh đã được giải mã trong tệp đợi Nóliên hệ nới bộ nhớ và cổng vào/ra thông qua đơn vị BU
Đơn vị địa chỉ AU bảo đảm việc bảo vệ, quản lý bộ nhớ và chuyển địa chỉlogíc (địa chỉ ảo) thành địa chỉ vật lý (địa chỉ thực) cho đơn vị điều khiển kênhBU
Ngoài ra, để hỗ trợ cho các hoạt động của mình, bên trong CPU có một tậphợp các thanh ghi được chia thành các nhóm theo hình sau:
Trang 16Hình 3.3 : Các thanh ghi của họ 80x86
Trong đó:
AX (AH, AL): Thanh ghi tích luỹ
CX (CH, CL): Thanh ghi đếm
BP: Thanh ghi con trỏ cơ sở
DI: thanh ghi chỉ số đích
CS: Thanh ghi đoạn mã
SS: Thanh ghi đoạn ngăn xếp
IP: Thanh ghi con trỏ lệnh
BX( BH, BL): Thanh ghi cơ sở
DX (DH, DL): Thanh ghi số liệuSI: Thanh ghi chỉ số nguồnSP: Thanh ghi con trỏ ngăn xếpDS: Thanh ghi đoạn số liệuES: Thanh ghi đoạn phụF: Thanh ghi cờ
Có thể liệt kê các nhóm thanh ghi điển hình như sau:
Thanh ghi con trỏ lệnh IP
IP dùng để lưu trữ địa chỉ của lệnh kế tiếp sẽ được chạy trong đoạn chươngtrình hiện tại IP giống như bộ đếm chương trình của các laọi CPU trước Mỗi lầnmột từ lệnh được đọc ra từ bộ nhớ, BIU sẽ thay đổi giá trị của IP sao cho nó đếnđịa chỉ của từ lệnh kế tiếp trong bộ nhớ
Các thanh ghi dữ liệu
- Thanh ghi tích lũy AX, thường được sử dụng để tích luỹ các kết quả tínhtoán (cộng, trừ, nhân, chia )
Các thanh ghi đoạn
-Thanh ghi con trỏ lệnh -Thanh ghi cờ
Trang 17- Thanh ghi cơ sở BX, thường dùng chỉ địa chỉ cơ sở (đáy) của một vùngnhớ trong bộ nhớ.
- Thanh ghi đếm CX, thường dùng để khai báo số lần một thao tác nào đóphải được thực hiện trong các vòng lặp, phép dịch, phép quay giá trị của CX tănglên môt với một tác động
- Thanh ghi số liệu DX, thường dùng để lưu trữ dữ liệu dùng làm thông sốchuyển giao cho một chương trình DX là thanh ghi duy nhất dùng cho việc truynhập các địa chỉ vào/ra trên 255 (FFh)
Các thanh ghi con trỏ và chỉ số
- Thanh ghi con trỏ ngăn xếp SP, chứa địa chỉ đỉnh ngăn xếp, Ngăn xếp làmột vùng nhớ đặc biệt, hoạt động liên quan đến các chỉ thị của CPU Địa chỉ cũngnhư kích thước của nó do chương trình ấn định SP cho phép truy xuất dễ dàng cácđịa chỉ trong đoạn ngăn xếp SS Giá trị trong SP mô tả phần offset của địa chỉ ngănxếp kế tiếp, so với địa chỉ hiện tại đang được lưu trong SS
- Thanh ghi con trỏ cơ sở BP, cũng có chức năng mô tả offset tính từ SSnhưng còn được sử dụng để truy nhập dữ liệu bên trong ngăn xếp
- Các thanh ghi chỉ số (index regiters): được dùng để lưu trữ các địa chỉoffset đối với những lệnh truy nhập dữ liệu được cất trong thanh ghi đoạn dữ liệu
Do đó chúng luôn liên quan tới các trị số trong thanh ghi đoạn số liệu DS (datasegment) Chúng bao gồm thanh ghi chỉ số nguồn (source index) và thanh ghi chỉ
số đích (destination index)
Các thanh ghi đoạn
Bộ nhớ PC được chia thành các đoạn lôgic dài 64 kbyte một đoạn như sẽ nóidưới đây CPU có thể truy nhập một lần tới bốn đoạn Địa chỉ của đoạn (địa chỉ cơ
sở - địa chỉ bắt đầu thấp nhất của vùng nhớ) chứa trong các thanh ghi đoạn Có cácthanh ghi đoạn sau:
- Thanh ghi đoạn mã CS (code segment register), dùng để nhận diện địa chỉbắt đầu của đoạn chương trình hiện hành trong bộ nhớ
Trang 18- Thanh ghi đoạn dữ liệu DS (data segment register), dùng để nhận diện địachỉ bắt đầu của đoạn số liệu hiệnhành trong bộ nhớ, nghĩa là nơi chứa các biến củachương trình
- Thanh ghi đoạn ngăn xếp SS (stack segment register), chứa địa chỉ lôgic làđịa chỉ bắt đầu của ngăn xếp trong bộ nhớ
- Thanh ghi đoạn mở rộng ES (extra segment register), thường dùng để lưutrữ dữ liệu các chuỗi (string)
- 6 bit mô tả trạng thái (cờ trạng thái)
+ Cờ nhớ CF (carry): được đặt nếu một thao tác phát ra một tín hiệu carryhoặc borrow cho toán hạng đích Thí dụ, khi kết quả của phép lấy tổng hai toánhạng 8 bit quá 225 (= 28 -1) Cờ này có thể được đặt bởi lệnh STC (set carry), đượcxoá bởi lệnh CLC (clear carry) hoặc cộng thêm 1 bởi lệnh CMC (complementcarry)
+ Cờ chẵn lẻ PF (parity): được đặt nếu kết quả của một phép toán có chứa sốbit được đặt (=1)
+ Cờ mang phụ AF (auxiliary carry): được dùng cho mã BCD và được đặtnếu thao tác phát ra mộ tín hiệu carry hoặc borrow cho 4 bit thấp của toán hạng
+ Cờ zê - rô ZF (zero): được đặt nếu kết quả của phép toán bằng không (=0)+ Cờ đấu SF (sign): đấu tương ứng với bit nhiều ý nghĩa nhất của kết quảphép toán được đặt (0 = kết quả đương, 1 = kết quả âm)
+ Cờ tràn OF (overflow): được đặt nếu kết quả của phép toán quá lớn hoặcquá nhỏ cho toán hạng đích
- 3 bit cờ điều khiển:
Trang 19+ Cờ báo hướng DF (direction): xác định hướng của phép toán xử lí chuỗi.Nếu hướng được đặt, chuỗi sẽ được xử lí từ địa chỉ cao tới địa chỉ thấp và ngượclại Cờ này có thể được đặt bởi lệnh STD và được xoá bởi lệnh CLD.
+ Cờ ngắt IF (interrup enable): nếu được đặt, CPU sẽ chấp nhận một yêu cầungắt cứng IRQs và phục vụ ngắt Cờ này có thể được đặt bởi lệnh STI và được xoábởi lệnh CLI
+ Cờ bước TF (trap): nếu được đặt, CPU sẽ phát ra ngắt số 1 sau mỗi bướcchương trình dùng cho việc gỡ rối (debug) Trong trường hợp này, chương trìnhđược chạy từng bước một Cờ này có thể không được đặt hay xoá trực tiếp bởi lệnhmáy mà phải dùng với sự phụ trợ của ngăn xếp
Clock 82284
Synchr
CLK
Trang 20Hình 3.3: Sơ đồ ghép nối CPU với các vi mạch bổ trợ
Ghi chú:
82284: vi mạch phát xung nhịp đồng hồ 8284
asynchronous READY: tín hiệu READY không
đồng bộ
Sychr, READY: tín hiệu READY đồng bộ
Address Buffer: đệm địa chỉ Data Buffer: đệm số liệu:
Ports: các cổng Bus Controller: bộ điều khiển bus
3.2.1 Hoạt động đọc/ghi thông tin:
Chu kỳ máy đọc thông tin có thể chia làm 6 pha: A, B, C, D, E, F
Tại pha A (φ2 của Tc thuộc chu kỳ trước) bộ vi xử lý 80286 đưa ra kênh tínhiệu địa chỉ A23- A0 và các tín hiệu M/IO, COD/INTA để thông báo là chu kỳmáy quy chiếu bộ nhớ hay quy chiếu cổng vào/ra
Tại pha B (φ1 của Ts thuộc chu kỳ đọc) tín hiệu /S1/S0= 01 chỉ ra mã củachu kỳ máy đọc ở pha này tín hiệu /BHE cũng có hiệu lực, nếu sử dụng 8 bít caocủa kênh dữ liệu D15-D8
Pha C (φ2 của Ts thuộc chu kỳ đọc) sẽ đưa tín hiệu ALE ra để chốt các tínhiệu địa chỉ vào mạch 74533 (74373)
Tại pha D (φ1 của Tc thuộc chu kỳ đọc) các tín hiệu /MRDC và DT/R đượcđưa về mức tích cực âm Tín hiệu DEN được đưa về mức tích cực để chọn cácmạch truyền dữ liệu Các tín hiệu trạng thái /S0/S1 chuẩn bị cho chu kỳ tiếp theo
Tại pha E (φ2 của Tc thuộc chu kỳ đọc) các tín hiệu M/IO và COD/INTAđược thiết lập cho chu kỳ máy tiếp theo Nếu chu kỳ mới là chu kỳ trả lời ngắt haychu kỳ treo kênh thì các tín hiệu này ở phần trạng thái trở kháng cao
Cuối pha E, bộ vi xử lý 80286 kiểm tra tín hiệu /READY Nếu /READY= 0thì chu kỳ máy đọc thông tin sẽ kết thúc Dữ liệu đã sẵn sàng trên kênh dữ liệu và
bộ vi xử lý 80286 đọc dữ liệu này Nếu /READY= 1, bộ vi xử lý 80286 đưa ra mộttrạng thái Tc nữa và cứ như thế đến khi /READY= 0
Trang 21Tại pha F (φ1 của Ts của chu kỳ tiếp theo) chu kỳ đọc kết thúc, các tín hiệuDEN, /MRDC, DT/R trở về trạng thái không tích cực Mạch 82284 đưa tín hiệu/READY về mức cao.
Chu kỳ ghi thông tin của 80286 bao gồm các pha A, B, C, D, E, F và G.Tại pha A (φ2 của Tc của chu kỳ trước) bộ vi xử lý 80286 đưa ra kênh địachỉ A23-A0, các tín hiệu M/IO và COD/INTA Quá trình giải mã địa chỉ có thể bắtđầu
Tại pha B (φ1 của Ts thuộc chu kỳ đang thực hiện) các tín hiệu /S1/S0= 00chỉ ra rằng chu kỳ máy ghi thông tin đang được thực hiện Tín hiệu sẽ có giá trị 0hay 1 tuỳ theo các đường dữ liệu là 8 bít cao hay không
Tại pha C (φ2 của Ts thuộc chu kỳ đang thực hiện) bộ vi xử lý 80286 truyền
dữ liệu ra kênh Tín hiệu ALE chốt địa chỉ còn DEN chọn các mạch truyền dữ liệu
Vì dữ liệu đi từ kênh cục bộ sang kênh hệ thống nên tín hiệu DT/R= 1
Tại pha D (φ1 của Tc thuộc chu kỳ đang thực hiện), 80286 đưa các tín hiệu /S1/S0 về logíc 1, ALE về lôgíc 0 còn tín hiệu /MWTE có hiệu lực
Tại pha E (φ2 của Tc thuộc chu kỳ đang thực hiện) các tín hiệu địa chỉ,M/IO và COD/INTA của chu kỳ tiếp theo được đưa ra giải mã Như vậy, chu kỳmáy mới đang được tiến hành ngay khi chu kỳ máy cũ còn đang thực hiện để hoàntất lệnh Cuối pha E tín hiệu /READY được trích mẫu, nếu /READY= 0, chu kỳghi thông tin sẽ kết thúc, ngược lại thì một trạng thái Tc sẽ lại bắt đầu và cứ tiếptục cho đến khi /READY= 0
Tại pha F (φ1 của Ts thuộc chu kỳ tiếp theo) các tín hiệu /MWTC và/READY được đưa về mức không tích cực
Tại pha G (φ2 của Ts thuộc chu kỳ tiếp theo) dữ liệu được đưa vào bộ nhớ,tín hiệu DEN trở về mức thụ động và do đó kênh dữ liệu được giải phóng
3.2.2 Hoạt động quản lý bộ nhớ thực:
Không gian nhớ trong chế độ địa chỉ thực là không gian nhớ mà bộ vi xử lý
có thể quản lý trực tiếp bằng giá trị con trỏ do cặp thanh ghi mảng và thanh ghiOFFSET quy định (SEG : OFFSET) Không gian nhớ cực đại sẽ phụ thuộc vào sốbit của kênh địa chỉ mà bộ vi xử lý dành cho chế độ này Thí dụ, bộ vi xử lý 80286
Trang 22sử dụng 20 bit địa chỉ A19-A0 dành cho chế độ địa chỉ thực thì không gian nhớcực đại sẽ bằng 220 byte tức bằng 1MB Nếu hệ vi xử lý có IC nhớ (ROM, RAM)nằm ra ngoài không gian này thì bộ vi xử lý 80286 không thể quản lý được.
Trong quá trình hoạt động, khối quản lý bộ nhớ của bộ vi xử lý 80286 chophép chuyển các giá trị con trỏ do cặp thanh ghi mảng và thanh ghi OFFSET thànhnhững địa chỉ thực và đưa ra kênh hệ thống để kích hoạt các đối tượng tương ứngnhư bộ nhớ trung tâm hay các cổng vào/ra
Hình 3.4: Cơ chế tính địa chỉ vật lý từ địa chỉ logic
Để chuyển địa chỉ logic (SEG:OFFSET) 32 bit bên trong thành địa chỉ vật lý
20 bit (A19 – A0) trên kênh địa chỉ, AU sẽ thực hiện dịch trái SEG đi 4 bit rồi cộngvới giá trị của OFFSET
Trong chế độ thực, bộ vi xử lý 80286 có 6 phương pháp địa chỉ hoá:
Địa chỉ trực tiếp cho phép thâm nhập trực tiếp vào toán hạng có địa chỉ là giá trị của
SEG:OFFSET.
Địa chỉ gián tiếp cho phép thâm nhập trực tiếp vào toán hạng có địa chỉ là giá trị của
SEG:(SI hoặc DI hoặc BX).
Địa chỉ tương đối cho bởi giá trị của OFFSET cho phép thâm nhập vào toán hạng có
địa chỉ là giá trị của tổng giá trị dịch chuyển chứa trong lệnh và nội dung của các thanh ghi cơ sở
BX và BP.OFFSET= (BX hay BP) + Dịch chuyển.
Trang 23 Địa chỉ hoá theo chỉ số cho bởi OFFSET cho phép thâm nhập vào toán hạng có địa
chỉ là giá trị của tổng giá trị dịch chuuyển chứa trong lệnh và nội dung của thanh ghi SI hay DI.
OFFSET= (SI hay DI) + Dịch chuyển
Địa chỉ tương đối theo chỉ số cho bởi OFFSET cho phép thâm nhập vào toán hạng có
địa chỉ là giá trị của tổng nội dung thanh ghi cơ sở và nội dung thanh ghi chỉ số.
OFFSET= (BX hay BP) + (SI hay DI)
Khi ta có một vùng dữ liệu động và muốn làm việc với các phần tử của vùng thì chế độ địa chỉ này là thích hợp Thanh ghi cơ sở phục vụ chọn vùng, còn thanh ghi chỉ số trỏ đến bên trong của vùng xác định.
Địa chỉ tương đối theo chỉ số và giá trị dịch chuyển cho bởi OFFSET cho phép thâm
nhập đến toán hạng có địa chỉ là giá trị là tổng nội duing của thanh ghi cơ sở, nội dung của thanh ghi chỉ số và giá trị dịch chuyển chứa trong lệnh.
OFFSET= (BX hay BP) + (SI hay DI) + dịch chuyển
Nhờ có thanh ghi cơ sở, chế độ địa chỉ này cho phép lặp lại một cấu trúc mà ở trong đó
có các vùng dữ liệu cần tìm Chỉ số cho phép chọn phần tử xác định bên trong vùng dữ liệu này.
3.2.3 Hoạt động quản lý bộ nhớ ảo:
Không gian nhớ trong chế độ địa chỉ ảo là không gian nhớ mà bộ vi xử lý cóthể quản lý vượt dung lượng không gian nhớ thực rất nhiều Khả năng này có được
là do tổ chức phần cứng bên trong của bộ vi xử lý được cài cấy một cơ cấu đặc biệt
đó là phần ẩn của các thanh ghi quản lý
Hình 3.5: Mô tả mảng nhớ trong chế độ ảo
Trang 24Khối quản lý bộ nhớ của bộ vi xử lý 80286 cho phép chuyển các giá trị địachỉ ảo (hay còn gọi là địa chỉ lôgíc) thành những địa chỉ thực cho bộ nhớ trungtâm.
Nguyên tắc cơ bản của chế độ địa chỉ ảo là phương thức tạo mảng nhớ Mộtmảng nhớ được định nghĩa như là một tập hợp các ngăn nhớ liên tiếp có dunglượng không quá 64 KB và mảng này có thể trao đổi giữa bộ nhớ trung tâm và bộnhớ ngoài
Mỗi mảng nhớ được xác định từ ba tham số: địa chỉ cơ sở, kích thước mảngdung lượng của mảng nhớ) và đặc quyền thâm nhập Mỗi mảng nhớ có cấu trúcnhư được biểu diễn trên hình 3.5
Nhiệm vụ trong phương thức quản lý địa chỉ ảo được hiểu là việc thực hiệnmột tập hợp các tiến trình gắn với một trạng thái xác định của bộ vi xử lý
Không gian nhớ luôn luôn gắn với nhiệm vụ Không gian nhớ được dànhriêng cho một nhiệm vụ gọi là không gian nhớ cục bộ Không gian nhớ mà tất cảcác nhiệm vụ đều có thể thâm nhập tới gọi là không gian nhớ toàn cục
Hình 3.6: Tổ chức không gian nhớ dành cho các nhiệm vụ
Một địa chỉ trong chương trình chạy trên vi xử lý 80286 gồm có hai thànhphần: bộ chọn mảng 16 bít và OFFSET 16 bít 32 bít địa chỉ này có ý nghĩa khácnhau khi 80286 làm việc ở chế độ thực và chế độ bảo vệ Trong chế độ thực, bộchọn mảng biểu diễn các bít cao của địa chỉ cơ sở của mảng nhớ Trong chế độ bảo
vệ bộ chọn mảng có ý nghĩa như sau: hai bít thấp dùng để thể hiện mức đặc quyền
Trang 25của các yêu cầu RPL (Reqested Privelege level); bít TI (Table Indicator) được sửdụng để xác định không gian nhớ Nếu TI= 0, không gian nhớ là không gian toàncục còn nếu TI= 1 thì không gian nhớ là không gian cục bộ Mười ba bít cao của
bộ chọn mảng dành cho chỉ số nên nó xác định được 213= 8192 mảng nhớ trongkhông gian nhớ toàn cục và 8192 mảng nhớ trong không gian nhớ cục bộ Như vậy
bộ chọn mảng địa chỉ hoá được cho 16384 mảng nhớ khác nhau.
Dung lượng lớn nhất của một mảng nhớ là 64 KB nên không gian nhớ ảodành cho một nhiệm vụ có dung lượng cực đại là 214.216= 230= 1GB Lưu ý là dunglượng bộ nhớ ở chế độ thực chỉ là 24.216= 220= 1MB
Hình 3.7: Con trỏ địa chỉ ảo
Chỉ số giữ vai trò con trỏ đến bảng các bộ mô tả Bảng này thiết lập quan hệgiữa 32 bít địa chỉ ảo và 24 bít địa chỉ thực của bộ vi xử lý Bộ vi xử lý quản lý hailoại bảng các bộ mô tả là GDT (Global Descriptor table) tức là bảng các bộ mô tảkhông gian nhớ toàn cục và bảng các bộ mô tả không gian nhớ cục bộ LDT (LocalDeseriptor table) Các bộ mô tả của 80286 bao gồm: bộ mô tả mảng dữ liệu, bộ mô
tả mảng lệnh, bộ mô tả mảng hệ thống và bộ mô tả mảng các cổng giao tiếp
Trang 26Bộ mụ tả mảng dữ liệu được sử dụng để quy chiếu tới mảng dữ liệu và
mảng STACK Tỏm byte của bộ mụ tả chứa cỏc thụng tin về mảng: địa chỉ cơ sở,dung lượng (độ dài) của mảng, một byte đặc quyền thõm nhập vào mảng Lưu ýrằng hai byte đầu dành cho cỏc bộ vi xử lý cấp cao của hóng Intel (80386, 80486,
80586 ), do đú khi khởi động phải nạp giỏ trị 0 vào cho chỳng
Hỡnh 3.8: Bộ mụ tả mảng dữ liệu
Byte chứa giỏ trị quyền thõm nhập cú cỏc bớt sau:
Bớt P (Present)= 1 nếu mảng dữ liệu mà bộ mụ tả quy chiếu tới đó được nạp
trong bộ nhớ, cũn nếu chưa thỡ bit P= 0 Khi chương trỡnh thõm nhập vào mảng dữliệu chưa cú trong bộ nhớ sẽ gõy ra ngoại lệ 11 hay 12 Chương trỡnh xử lý ngoại lệnày sẽ nạp mảng dữ liệu cần thiết vào bộ nhớ từ thiết bị ngoại vi (từ ổ đĩa)
Bớt DPL (Descriptor Privilege Level) cho biết mức đặc quyền cuả mảng dữ
liệu mà bộ mụ tả quy chiếu
Bớt E (Executable)= 0 thụng bỏo rằng bộ mụ tả là bộ mụ tả mảng dữ liệu.
Bớt ED (Expansion Direction) chỉ ra chiều tiến triển của mảng dữ liệu NếuED= 1 thỡ mảng dữ liệu sẽ thuộc loại STACK Địa chỉ bắt đầu của mảng sẽ là tổngcủa địa chỉ cơ sở và độ dài cực đại của mảng, tức là nú phỏt triển từ vựng địa chỉcao nhất tới địa chỉ thấp nhất Nếu ED= 0 thỡ chiều phỏt triển của mảng sẽ đi từ địachỉ thấp nhất tăng dần tới địa chỉ giới hạn
Bớt W (Writable)= 1 thỡ mảng dữ liệu cú thể vừa đọc vừa ghi ra được RW
(Read - Write) Nếu W= 0 thỡ mảng dữ liệu được bảo vệ, tức là cấm ghi, chỉ đọcđược thụi, do đú nú cú ký hiệu là RO (Read - Only)
P DPL 1 0 Ed W A
Dành cho các bộ VXL cao cấp (phải nạp 0000h khi khởi động)
Địa chỉ cơ sở A23-A16 Địa chỉ cơ sở A15-A0
Dung l ợng L15-L0
Trang 27Bít A (Accesed)= 1 nếu mảng nhớ mà bộ mô tả đã được sử dụng Một khi A
đã được lập thì chỉ có thể xoá nó bằng chương trình Bít Accesed giúp cho việcthống kê tần xuất thâm nhập vào mảng dữ liệu của một chương trình
Bộ mô tả mảng lệnh dùng để quy chiếu tới mảng nhớ chứa chương trình.
Bộ mô tả lệnh có cấu trúc tương tự như bộ mô tả mảng dữ liệu, riêng byte quyềnthâm nhập có một số bít thay đổi
Hình 3.9: Bộ mô tả mảng mã lệnh
Nếu P= 1 có nghĩa là bộ mô tả quy chiếu tới mảng lệnh.
Nếu R= 0 thì chương trình chứa trong mảng lệnh chỉ có chức năng thực hiện
và được ký hiệu là EO (Executable Only) còn nếu R= 1 thì chương trình chứatrong mảng lệnh không những thực hiện được mà còn đọc được nên nó có ký hiệu
là ER (Executable and Read)
Nếu C= 0 thì chương trình con được gọi sẽ thực hiện với đặc quyền bằng
DPL trong bộ mô tả của mảng chứa chương trình con Nếu C= 1 thì chương trìnhcon được gọi sẽ thực hiện với đặc quyền bằng DPL trong bộ mô tả quy chiếu mảngchứa chương trình con đó
Bộ mô tả mảng hệ thống dùng để quy chiếu tới các mảng chứa thông tin
Trang 28Hỡnh 3.10: Bộ mụ tả mảng hệ thống
Nếu kiểu = 1, thỡ bộ mụ tả quy chiếu tới mảng chứa trạng thỏi của nhiệm vụTSS (Task State Segment) Nhiệm vụ này khụng ở trạng thỏi thực hiện Nếu kiểu =
3, bộ mụ tả quy chiếu mảng TSS của một nhiệm vụ đang hoạt động Nếu kiểu = 2,
bộ mụ tả quy chiếu mảng chứa bảng cỏc bộ mụ tả cục bộ
Thụng tin trong bảng cỏc bộ mụ tả bao gồm thụng tin trong GDT vàLDT.Trong GDT chứa cỏc bộ mụ tả mảng tương ứng vúi tất cả cỏc mảng nhớtrong khụng gian nhớ toàn cục, cũn trong LDT chứa cỏc bộ mụ tả mảng nhớ trongkhụng gian nhớ cục bộ của một nhiệm vụ
Mỗi bảng cỏc bộ mụ tả cũng chớnh là một mảng nhớ được định nghĩa bằngmột bộ mụ tả mảng đặc biệt, thuộc nhúm bộ mụ tả mảng hệ thống
GDT là một bảng duy nhất nờn khụng cần xỏc định trước bằng một bộ mụ tảriờng Địa chỉ và kớch thước của mảng GDT được chứa trong một thanh ghi đặcbiệt, gọi là thanh ghi bảng cỏc bộ mụ tả toàn cục GDTR (Global Descriptor Tableregister)
Bộ mụ tả cỏc cổng giao tiếp cú dạng như hỡnh 3.11 Cỏc lệnh CALL và
JMP chỉ cú thể thõm nhập vào mảng lệnh cú mức đặc quyền cao hơn thụng quamột cổng nối ghộp gọi là cổng giao tiếp Cú tất cả bốn loại cổng giao tiếp: cổngkiểu gọi (CALL GATE); cổng kiểu bẫy (TRAP GATE); cổng theo nhiệm vụ(TASK GATE)
Hỡnh 3.11: Bộ mụ tả mảng giao tiếp
Dành cho các bộ VXL cao cấp (phải nạp 0000h khi khởi động)
Trang 29Cơ chế thâm nhập vào một mảng nhớ trong chế độ địa chỉ ảo thông qua các
bộ mô tả mảng nhìn chung được mô tả như sau:
Hình 3.12: Cơ chế truy cập vào một mảng nhớ trong chế độ địa chỉ ảo
Từ cơ chế truy cập nêu trên, ta dễ dàng chỉ ra phương pháp tính địa chỉ thực
từ địa chỉ ảo như sau:
Hình 3.13: Cách tính địa chỉ thực từ địa chỉ ảo
Địa chỉ ảo của 80286 có 32 bít bao gồm 16 bít của bộ chọn và 16 bítOFFSET Bộ chọn có ba thành phần: chỉ số, TI, và RPL TI cho biết bộ mô tảthuộc GDT hay LDT Vì mỗi bộ mô tả mảng có 8 byte nên địa chỉ của bộ mô tảtrong bảng sẽ là địa chỉ cơ sở cộng với chỉ số nhân 8 lần 80286 sẽ tìm thấy trong
bộ mô tả địa chỉ cơ sở của mảng nhớ thực và giới hạn của nó Cộng 24 bít địa chỉ
cơ sở với 16 bít OFFSET trong địa chỉ ảo sẽ cho 24 bít địa chỉ thực của mảng nhớ
Quản lý bộ nhớ ảo được thực hiện nhờ có các thanh ghi quản lý bộ nhớ đặc
biệt Các thanh ghi mảng CS, DS, ES, SS có hai phần: phần hở là bộ chọn 16 bít,
M¶ng Nhí cho Mét nhiÖm vô
§Þa chØ c¬ së
Trang 30phần kín 48 bít bao gồm: một byte thể hiện đặc quyền thâm nhập, ba byte địa chỉ
cơ sở của mảng và hai byte kích thước mảng
Bộ chọn 16 bít được nạp giá trị bằng các lệnh LDS, LES, MOV Các lệnhnày làm thay đổi nội dung của SS, DS và ES Các lệnh CALL và JMP làm thay đổinội dung của CS
Trong khi thực hiện các lệnh này, bộ chọn của địa chỉ logíc được nạp vàophần cao của các thanh ghi 80286 sử dụng bộ chọn (chỉ số TI) để thâm nhập vào
bộ mô tả 48 bít và nó được tự động sao sang phần kín của thanh ghi mảng Quátrình này được thể hiện qua hình 2.24
Như vậy, thông qua thanh ghi mảng, bộ vi xử lý 80286 biết tất cả các tínhchất của mảng nhớ đang sử dụng 80286 dùng nội dung của thanh ghi này cùng 16bít OFFSET của địa chỉ lôgíc thâm nhập vào bên trong mảng, tránh được nhữngtìm kiếm trong các bảng ở bộ nhớ
Thanh ghi GDTR chứa địa chỉ cơ sở và giới hạn của mảng GDT Bộ vi xử lý
sử dụng các lệnh LGDT (Load) và SGDT (Store) để nạp hoặc cất giữ nội dung củanó
Vấn đề cần quan tâm cuối cùng là khởi động (RESET) bộ vi xử lý, sau khi
khởi động, các trạng thái của bộ vi xử lý được xác lập như sau:
Tín hiệu INTR bị che.
Bộ vi xử lý 80286 ở chế độ thực, không làm việc với bộ đồng xử lý (PE=
Trang 31Bảng mô tả giá trị các thanh ghi khi khởi động bộ vi xử lý
Để tạo ra khả năng liên lạc, trao đổi thông tin giữa các thành phần bên trong
và bên ngoài bảng mạch chính (Main Board), máy tính được trang bị hệ thống Busbao gồm:
1 Mb
Trang 32Bus địa chỉ (Address Bus): là bus một chiều hướng từ bộ vi xử lý ra các thiết
bị Bộ vi xử lý sử dụng kênh này để quản lý các thành phần bằng cách gán cho mỗithành phần một địa chỉ xác định
Bus dữ liệu (Data Bus): là bus hai chiều dùng để trao đổi thông tin giữa bộ
vi xử lý và các thành phần có trong hệ
Bus điều khiển (Control Bus): là tập hợp các đường dây tín hiệu điều khiển
để giám sát và đồng bộ toàn bộ hoạt động của hệ thống
4.1 Chức năng và thông số của BUS
Một trong những hoạt động và chức năng cơ bản của máy tính là truyền sốliệu Sự hoạt động của máy tính do các bộ vi xử lý điều khiển, bộ vi xử lý và cácchip hỗ trợ khác thường xuyên phải truyền số liệu giữa các khối, bộ phận trong vàngoài chúng với nhau
Vì có rất nhiều các bộ phận, khối riêng rẽ trong bản thân các Chip cũng như
số lượng và chủng loại các thiết bị rất phong phú nên các dạng truyền dữ liệu cũng
có thể được phân ra thành truyền dữ liệu giữa các thành phần trong cùng một chip,giữa các chip với nhau và giữa các chip với các thiết bị khác
Hình 4.1 : Các bus trong một hệ thống máy tính.
Coprocessor
Board
I/O Board
System bus
ALU CPU
Local bus register On chip bus
Trang 33Các bộ phận, khối được kết nối lên hệ thống bus phải thoả mãn một yêu cầu
là có khả năng được huỷ bỏ hoặc kết nối trở lại theo lệnh điều khiển Quy tắcnghiêm ngặt của truyền số liệu là tại mỗi thời điểm, tối đa chỉ có một luồng dữ liệuđược chiếm dụng bus
4.2 BUS trong máy vi tính
4.2.1 Bus trong vi xử lý và bus bộ xử lý
Trong các bộ vi xử lý có một hệ thống các bus dùng để truyền số liệu, lệnh,các tín hiệu điều khiển, giữa các khối bên trong của nó Ngoài ra có một hệ thốngcác bus đưa ra ngoài qua các chân của nó Các đường bus trong được điều khiểnbởi khối điều khiển tuỳ thuộc hoặc vào nội dung lệnh đuợc giải mã hoặc theo cácđiều khiển ngắt của bên ngoài đưa vào vi xử lý Các đường bus này hoạt động theonhịp của một clock bên trong vi xử lý
Bus bộ vi xử lý là đường truyền dẫn giữa CPU và các chip hỗ trợ trung gian.Những chip hỗ trợ này được gọi là bộ chip (chip set) Bus này dùng để truyền dữliệu giữa CPU và bus hệ thống chính hoặc giữa CPU và cache ngoài
Vì mục đích của bus bộ xử lý để gửi hoặc nhận thông tin từ CPU với tốc độnhanh nhất có thể, nên bus này hoạt động nhanh hơn nhiều so với bất kỳ bus nàokhác trong hệ thống và đảm bảo tránh hiện tượng tắc nghẽn ở đây Bus bộ xử lýbao gồm bus dữ liệu, bus địa chỉ và bus điều khiển Trong một hệ thống thiết kếcho vi xử lý Pentium, bus bộ xử lý có 64 đường dữ liệu, 32 đường địa chỉ PentiumPro và Pentium II có 36 đường địa chỉ Bus bộ xử lý hoạt động ở tốc độ đồng hồ cơ
sở giống như CPU chạy ngoại trú Ví dụ Pentium II 333MHz chạy ở tốc độ đồng
hồ 333MHz nội trú nhưng chỉ ở 66,6 MHz ngoại trú Tốc độ truyền của bus bộ xử
lý được xác định bằng cách nhân độ rộng dữ liệu với tốc độ đồng hồ cơ sở rồi chiacho 8
Khi thiết kế các bộ vi xử lý, có thể tuỳ ý lựa chọn loại bus bên trong vi xử
lý, còn với các bus liên hệ với bên ngoài cần phải xác định rõ các quy tắc làm việccũng như các đặc điểm kỹ thuật về điện và cơ khí để người thiết kế bảng mạchchính (Main Board) có thể ghép nối vi xử lý với các thiết bị khác Nói cách khác,
Trang 34các bus này phải tuân theo một chuẩn nhất định Tập các quy tắc của chuẩn cònđược gọi là giao thức bus.
Trong thế giới máy tính có rất nhiều loại bus khác nhau được sử dụng, cácbus này nói chung là không tương thích với nhau Sau đây là một số loại bus đượcdùng phổ biến:
- EISA Một sô hệ thống dùng bộ VXL 8036
- IBM PC, PC/AT Máy tính IBM PC, IBM/PC/AT
1 Theo tổ chức phần cứng (như các loại bus nêu trên)
2 Theo nghi thức truyền thông (bus đồng bộ và không đồng bộ)
3 Theo loại tín hiệu truyền trên bus (bus địa chỉ, bus dữ liệu )
Hoạt động của các bus
Thường có nhiều thiết bị nối với bus, một số là thiết bị tích cực và có thể đòihỏi truyền thông tin trên bus, trong khi đó lại có các thiết bị thụ động chờ các yêucầu từ các thiết bị khác Các thiết bị tích cực được gọi là chủ bus (master), còn cácthiết bị thụ động là tớ (slave)
Khi CPU ra lệnh cho bộ điều khiển đĩa đọc/ ghi một khối dữ liệu thì CPU làmaster cò bộ điều khiển đĩa là slave Tuy nhiên khi bộ điều khiển đĩa ra lệnh cho
bộ nhớ nhận dữ liệu mà nó đọc từ đĩa thì nó lại giữ vai trò của master
Bus Driver và Bus Receiver
Tín hiệu điện mà các thiết bị trong máy tính phát ra thường không đủ mạnh
để điều khiển được bus, nhất là khi bus khá dài và có nhiều thiết bị nối với nó
Trang 35Chính vì vậy mà hầu hết các bus master được nối với bus thông qua một chip đượcgọi là bus driver, về căn bản đó là bộ khuyếch đại tín hiệu số Tương tự như vậy,hầu hết các slave bus được nối với bus thông qua bus receiver Đối với các thiết bị
có thể khi thì đóng vai trò master, khi thì đóng vai trò slave, người ta sử dụng mộtchip kết hợp, gọi là transceiver Các chip này đóng vai trò ghép nối và thường làcác thiết bị 3 trạng thái, cho phép có thể ở trạng thái thứ ba: hở mạch (còn gọi làthả nổi)
Giống như MPU (Micro Processor Unit), bus có các đường địa chỉ, đường
số liệu và đường điều khiển Tuy nhiên không nhất thiết phải có ánh xạ một - mộtgiữa các tín hiệu ở các chân ra của MPU và các đường dây của bus
Những vấn đề quan trọng nhất liên quan đến thiết kế bus là: Nhịp đồng hồ bus (sựphân chia thời gian, hay còn gọi là bus clocking), cơ chế trọng tài bus (busarbitration), xử lý ngắt và xử lý lỗi
Các bus có thể được chia theo giao thức truyền thông tin thành hai loại riêngbiệt là bus đồng bộ và bus không đồng bộ phụ thuộc vào việc sử dụng nhịp đồng
hồ bus
4.2.2 Bus đồng bộ
Bus đồng bộ (Synchronous bus) có một đường dây điều khiển bởi một bộdao động thạch anh, tín hiệu trên đường dây này có dạng sóng vuông, với tần sốthường nằm trong khoảng 5MHz - 50 MHz Mọi hoạt động bus xảy ra trong một
số nguyên lần chu kỳ này và được gọi là chu kỳ bus
Giản đồ thời gian của một bus đồng bộ với tần số đồng hồ là 4MHz, như vậychu kỳ bus là 250nS
- T1 bắt đầu bằng sườn lên của tín hiệu đồng hồ , trong một phần thời gian
của T1, MPU đặt địa chỉ của byte cần đọc lên bus địa chỉ Sau khi tín hiệu địa chỉđược thiết lập giá trị mới, MPU đặt các tín hiệu MREQ và RD tích cực Tín hiệu
MREQ (memory request, truy cập bộ nhớ) chứ không phải thiết bị I/O; còn tín hiệu
RD (Read) chọn Read
Trang 36- T2 là thời gian cần thiết để bộ nhớ giải mã địa chỉ và đưa dữ liệu lên bus
dữ liệu
- T3 tại sườn xung xuống của T3, MPU nhận dữ liệu trên bus dữ liệu, chứa
vào thanh ghi bên trong MPU và chốt dữ liệu Sau đó MPU đảo các tín hiệu MREQ
- T DS : Giá trị nhỏ nhất là 50ns, thông số này cho phép dữ liệu được đưa ra
ổn định trên bus dữ liệu ít nhất là 50ns trước thời điểm giữa sườn xuống của T3.Yêu cầu về thời gian này đảm bảo cho MPU đọc dữ liệu liệu tin cậy
Khoảng thời gian bắt buộc đối với TAD và TDS cũng nói lên rằng, trongtrường hợp xấu nhất, bộ nhớ chỉ có 250 + 250+ 125 - 110 - 50 = 465ns tính từ thờiđiểm có tín hiệu địa chỉ cho tới khi nó đưa dữ liệu ra bus địa chỉ Nếu bộ nhớkhông đáp ứng đủ nhanh, nó cần phải phát tín hiệu xin chờ WAIT trước sườn xuốngcủa T2 Thao tác này đưa thêm vào một trạng thái chờ (wait state), khi bộ nhớ đãđưa ra dữ liệu ổn định, nó sẽ đảo tín hiệu WAIT thành WAIT
- T ML : Đảm bảo rằng tín hiệu địa chỉ sẽ được thiết lập trước tín hiệu MREQ
ít nhất là 60ns Khoảng thời gian này là quan trọng nếu tín hiệu MREQ điều khiển
sự tạo ra tín hiệu chọn chip CS, bởi vì một số chip nhớ đòi hỏi phải nhận được tín
hiệu địa chỉ trước tín hiệu chọn chip Như vậy không thể chọn chip nhớ với thời
gian thiết lập là 75ns.
- T M , T RL : Các giá trị bắt buộc đối với 2 đại lượng này có ý nghĩa là cả hai
tín hiệu MREQ và RD sẽ là tích cực trong khoảng thời gian 85ns tính từ thừi điểmxuống của xung đồng hồ T1 Trong trường hợp xấu nhất, chip nhớ chỉ có 250 +
250 - 85- 50 = 365ns sau khi hai tín hiệu trên là tích cực để đưa dữ liệu ra bus Sựbắt buộc về thời gian này bổ sung thêm sự bắt buộc thời gian với tín hiệu đồng hồ
Trang 37- T MH , T RH : Hai đại lượng này cho biết cần có bao nhiêu thời gian để các tín
hiệu MREQ và RD sẽ được đảo sau khi dữ liệu đã được MPU đọc vào
- T DH : Cho biết bộ nhớ cần phải lưu dữ liệu bao lâu trên bus sau khi tín hiệu
RD đã đảo
Truyền tải khối dữ liệu.
Ngoài các chu kỳ đọc/ ghi, một số bus đồng bộ còn hỗ trợ truyền dữ liệutheo khối Khi một thao tác đọc/ ghi bắt đầu, bus master báo cho slave biết có baonhiêu byte cần truyền đi, sau đó slave sẽ liên tục đưa ra mỗi chu kỳ một byte, chođến khi đủ số byte được thông báo Như vậy, khi đọc dữ liệu theo khối, n byte dữliệu cần n+2 chu kỳ, thay cho 3n chu kỳ như trước
Cách khác làm cho bus truyền dữ liệu nhanh hơn là làm cho các chu kỳ ngắnlại Trong ví dụ trên, mỗi byte được truyền đi trong 750ns, vậy bus có dải thông là1.33MBs Nếu xung đồng hồ là 8MHz, thời gian một chu kỳ chỉ còn một nửa, giảithông sẽ là 2.67MBs
Tuy vậy việc giảm chu kỳ bus dẫn đến các khó khăn về mặt kỹ thuật, các bittín hiệu truyền trên các đường dây khác nhau trong bus không phải luôn có cùng
vận tốc, dẫn đến một hiệu ứng, gọi là bus skew.
Khi nghiên cứu về bus cần phải quan tâm đến vấn đề tín hiệu tích cực nên làmức thấp hay mức cao Điều này tuỳ thuộc vào người thiết kế bus xác định mứcnào là thuận lợi hơn
T ML Thời gian địa chỉ ổn định trước tín hiệu MREQ 60
T M Thời gian trễ của MREQ so với sườn xuống của
Trang 38tín hiệu đồng hồ T3
T RH Thời gian trễ củaRD so với sườn xuống của tín
hiệu đồng hồ T3
85
T DH Thời gian lưu trữ dữ liệu từ lúc đảo tín hiệu RD 0
Giá trị của một số thông số thời gian
4.2.3 Bus không đồng bộ
Bus không đồng bộ (asynchronous bus) không sử dụng một xung đồng hồ
định nhịp Chu kỳ của nó có thể kéo dài tuỳ ý và có thể khác nhau đối với các cặpthiết bị trao đổi tin khác nhau
Làm việc với bus đồng bộ dễ dàng hơn do nó được định thời một cách giánđoạn, tuy vậy chính đặc điểm này cũng dẫn đến nhược điểm Thứ nhất là: mọicông việc được tiến hành trong những khoảng thời gian là bội số nhịp đồng hồ bus,nếu một thao tác nào đó của CPU hay bộ nhớ có thể hoàn thành trong 3,2 chu kỳthì nó sẽ phải kéo dài thành 4 chu kỳ Điều hạn chế lớn nữa là đã chọn chu kỳ bus
và đã xây dựng bộ nhớ, I/O Card cho bus này thì khó có thể tận dụng được đượcnhững tiến bộ của công nghệ Chẳng hạn sau khi đã xây dựng bus với sự định thờinhư trên, công nghệ mới đưa ra các chip CPU và chip nhớ có thời gian chu kỳ là100ns (thay cho 250ns như cũ), chúng vẫn cứ phải chạy với tốc độ thấp như cácCPU và chip nhớ loại cũ, bởi vì nghi thức bus đòi hỏi chip nhớ phải đưa ra dữ liệu
và ổn định dữ liệu ngay trước thời điểm ứng với sườn xuống của T3 Nếu có nhiềuthiết bị khác nhau nối với một bus, trong đó có một số thiết bị có thể hoạt độngnhanh hơn các thiết bị khác thì cần phải đặt bus hoạt động phù hợp với thiết bịchậm nhất
Bus không đồng bộ ra đời nhằm khắc phục các nhược điểm của bus đồng bộ.Hình 5.3 minh hoạ sự hoạt động của bus không đồng bộ, trong đó master yêu cầuđọc bộ nhớ
Trước hết master cần phát ra địa chỉ nhớ mà nó muốn truy cập, sau đó pháttín hiệu MREQ tích cực để báo rằng nó muốn truy cập bộ nhớ chứ không phải cổngI/O Tín hiệu này là cần thiết vì bộ nhớ và các cổng I/O đều có thể dùng chung một
Trang 39miền địa chỉ Tiếp theo master phải phát tín hiệu RD tích cực để bên slave biếtrằng master sẽ thực hiện thao tác đọc chứ không phải là thao tác ghi.
Các tín hiệu MREQ và RD được đưa ra sau tín hiệu định địa chỉ bao lâu tuỳthuộc vào tốc độ của master Sau khi hai tín hiệu này đã ổn định, master sẽ phát tínhiệu đặc biệt, là MSYN(Master SYNchronization) ở mức tích cực để báo cho slavebiết rằng các tín hiệu cần thiết đã sẵn sàng trên bus, slave có thể nhận lấy Khislave nhận các tín hiệu này, nó sẽ thực hiện công việc với tốc độ nhanh nhất có thểđược (nhanh chóng đưa dữ liệu của ô nhớ yêu cầu lên bus dữ liệu) Khi hoànthành, slave sẽ phát tín hiệu SSYN(Slave SYNchronization) tích cực
Khi master nhận được tín hiệu SSYNtích cực, nó biết rằng dữ liệu của slave
đã sẵn sàng và thực hiện việc chốt dữ liệu, sau đó đảo các đường địa chỉ cũng nhưcác tín hiệu MREQ và RD và MSYN
Khi slave nhận được sự đảo tín hiệu MSYN thành không tích cực, nó biếtrằng một chu kỳ đã kết thúc và đảo tín hiệu SSYN Bây giờ bus lại trở lại trạngthái ban đầu, mọi tín hiệu đều là không tích cực, tất cả sẵn sàng chờ bus mastermới
Trên giản đồ thời gian của bus không đồng bộ, ta sử dụng mũi tên để thểhiện nguyên nhân và kết quả Việc đưa MSYNlên mức tích cực dẫn đến việctruyền dữ liệu ra bus dữ liệu và đồng thời cũng dẫn đến việc slave phát ra tín hiệuSSYNtích cực Đến lượt mình, tín hiệu SSYNlại gây ra sự đảo mức của các đườngđịa chỉ, MREQ và RD và MSYN Cuối cùng sự đảo mức của MSYN lại gây ra sựđảo mức tín hiệu SSYNvà kết thúc một chu kỳ đọc
Full handshake
Tập các tín hiệu phối hợp với nhau như vậy được gọi là Full handshake, nóchủ yếu gồm có 4 sự kiện sau:
1 MSYNđược đặt lên mức tích cực
2 SSYNđược đặt tích cực để đáp lại tín hiệuMSYN
3 MSYNđược đảo để đáp lại tín hiệu SSYN
Trang 404 SSYN được đảo để đáp lại tín hiệu MSYN thành không tích cực.
Ta có thể nhận thấy Full handshake là quan hệ nhân quả, độc lập với thờigian Nếu một cặp master-slave nào đó hoạt động chậm hoặc thời gian bị kéo dàithì cặp master-slave kế tiếp không hề bị ảnh hưởng
Tuy ưu điểm của bus không đồng bộ rất rõ ràng, nhưng trong thực tế phầnlớn các bus đang được sử dụng là loại bus đồng bộ Lý do căn bản là các hệ thống
sử dụng bus đồng bộ là dễ thiết kế hơn CPU chỉ cần chuyển các mức tín hiệu cầnthiết sang trạng thái tích cực là các chip nhớ đáp ứng ngay, không cần tín hiệuphản hồi Chỉ cần các chip được chọn phù hợp thì mọi hoạt động đều trôi chảy
4.3 Trọng tài bus
Trong hệ thống máy tính không phải chỉ có CPU làm bus master, thực tế cácchip I/O cũng có lúc phải làm chủ bus để có thể đọc hoặc ghi vào bộ nhớ và để gọingắt; các bộ đồng xử lý cũng có thể làm chủ bus Như vậy cần phải giải quyết vấn
đề tranh chấp khi có từ hai thiết bị trở lên đồng thời muốn làm chủ bus Để giảiquyết vấn đề này cần có một cơ chế trọng tài để tránh sự xung đột Cơ chế trọng tài
có thể là tập trung hoặc không tập trung
4.3.1 Trọng tài bus tập trung
Hình 5.4 là một ví dụ đơn giản về trọng tài bus tập trung ở đây, một trọngtài bus duy nhất sẽ quyết định thiết bị nào được là chủ bus tiếp theo Nhiều bộVXL có đơn vị trọng tài bus được thiết kế ngay trong chip VXL, trong một số máytính mini, đơn vị trọng tài bus nằm ngoài CPU
Theo cơ chế này, trọng tài chỉ có thể biết là có yêu cầu chiếm dụng bus haykhông, chứ không biết có bao nhiêu đơn vị muốn chiếm bus Khi trọng tài busnhận được một yêu cầu, nó sẽ phát ra một tín hiệu cho phép trên đường dây busgrant (cho dùng bus) Đường dây này nối qua tất cả các thiết bị vào/ ra theo kiểunối tiếp
Khi thiết bị nằm gần trọng tài nhất nhận được tín hiệu cho phép, nó sẽ kiểmtra xem có phải chính nó đã phát yêu cầu chiếm bus không? Nếu đúng thì nó sẽchiếm lấy bus và không truyền tiếp tín hiêuh cho phép trên đường dây Nếu nó