Chức năng của bus ngoại vi trong máy tính là gì? *

7. ÐƯỜNG TRUYỀN - CỔNG - THIẾT BỊ NGOẠI VI

    Trong một máy tính thông thường, CPU và bộ nhớ được gắn với bo mạch chính cùng một vài linh kiện cần thiết khác nữa. Những thông tin chuyển qua lại giữa các linh kiện thông qua một mạch lưới gọi là các Bus. Các bus này có thể có 8, 16 hay 32 đường dẫn và do đó gọi là các bus 8 bit, bus 16 bit hay bus 32 bit. Hiển nhiên rằng xa lộ đa luồng làm tăng lưu lượng xe có thể chạy qua, ở đây cũng có thể các bus chấp nhận số bit lớn thì càng có thể chuyển tải nhiều thông tin cùng một lúc, như vậy sẽ làm tăng đáng kể tốc độ hệ thống.

    Có rất nhiều bus trong máy tính, chúng nối kết các phần tử linh kiện trong máy với nhau. Một số bus nối với các khe - slot trên bo mạch. Người dùng có thể thiết lập thêm các tính năng cho máy tính bằng cách cấm các bo mạch - cạc [card] có tính năng riêng nào đó vào các khe này. Một số bus khác thì được nối với các cổng nằm ngoài - chính xác là ló ra khỏi vỏ máy một chút. Các thiết bị ngoại vi có thể nối với máy ti?h thông qua các cổng có sẵn của máy, hay thông qua một card chuyên biệt cắm vào các khe cắm trên bo mạch chính - điều này thật tiện lợi. Cho đến nay đã có nhiều loại bus như sau :

   

Bus mở rộng ISA

:

Trên bo mạch chính của các kiểu máy tính cũ tương thích IBM PC/XT [Bộ vi xử lý 8088 hay 8086] người ta dùng bus mở rộng có khe cấm 62 chân gồm 3 đường dây đốt, 5 dây nguồn nuôi, 20 đường địa chỉ và 16 đường tín hiệu điều khiển. Bus mở rộng XT bị giới hạn nhiều mặt, bus dữ liệu 8 bit, dịch vụ hệ thống không đủ dùng [các ngắt DMA]. Thế nên các nhà sản xuất đưa ra bus ISA mở rộng cho máy AT dùng vi xử lý 80286 - tức là máy 286 với bus dữ liệu 16bit. Bus này gồm hai đoạn khe cấm rời nhau, một đoạn 62 chân như kiểu dùng cho XT, một đoạn bổ sung 36 chân - bổ sung 5 dịch vụ ngắt, 8 đường dữ liệu, 4 đường địa chỉ và một số đường chức năng điều khiển. Loại này vẫn tương thích với 8 bit. Tốc độ truyền loại này đạt khoản 8Mb mỗi giây, [ISA - Industry Standard Architecture].

    Bus MCA [Micro Chanel Architecture]

:

Năm 1987, bus này được đưa ra riêng cho loại máy PS/2 của IBM, nó là kiểu thiết kế bus 32bit. Nó gồm 32 bit dữ liệu, 32 đường địa chỉ [co khả năng địa chỉ hóa 4Gb bộ nhớ], một kênh âm thanh, khả năng VGA cài sẵn. Tốc độ của nó đạt 20Mb mỗi giây nên có thể đáp ứng cho các CPU đến 199Mhz. Tuy nhiên, do loại này không tương thích với bus AT và máy PC nên nếu muốn dùng, người dùng phải thay toàn bộ các thiết bị tương thích MCA nên không được hưởng ứng. Do đó nó không được phát triển và cuối cùng IBM phải tự hủy bỏ.

    Bus EISA [Enhanced ISA]

:

Là loại bus mở rộng AT được nâng cao do liên minh 9 công ty lơn?[AST,Compad, Epson, Hewlett Packard, NEC, Olivetti, Tandy, Wyse, Zenith Data System] cùng hợp tác phát triển. Nó được thiết kế để cạnh tranh với các MCA và đã thành công trong thời gian dài. Nó hoàn toàn tương thích với ISA - 16bit và ISA - 8bit của XT. Bus EISA có tốc độ 33Mb mỗi giây hoạt động với 8,33Mhz. EISA còn có một phiên bản mới nâng cấp tốc độ lên 132Mb mỗi giây, loại này vẫn còn dùng trong một số server và mạng.

    Local bus

:

Là loại bus mở rộng kéo dài trực tiếp bus dữ liệu trong bộ vi xử lý ra ngoài. Năm 1992 VESA Local Bus ra đời [VESA - Video Electronics Standard Association]. Nếu bo mạch chính 33Mhz thì tốc độ bus có thể đạt 107Mb mỗi giây, tuy nhiên hầu hết các bo mạch cùng có VESA Local Bus và ISA.

    Bus mở rộng PCI

:

Loại này có 32 bit hay 64 bit dựa vào thiết kế do Intel xây dựng năm 1992. PCI-Peripheral Component Interface bus, là kiểu trung gian giữa bus dữ liệu ngoài của vi xử lý và bus vào ra chung của máy tính, nó là loại bus mở rộng hoàn chỉnh nên nó cho phép các nhà sản xuất hoàn toàn có thể loại bỏ hẳn loại bus ISA.

    Thiết bị ngoại vi là các thiết bị giúp máy tính liên thông được với thế giới bên ngoài. Bàn phím nối liên kết người dùng và máy tính để nhập liệu, màn hình-máy in sẽ thể hiện kết quả xử lý của máy tính sau các tác vụ gửi cho người dùng, ngoài ra còn vô số các thiết bị khác như máy quét ảnh, máy ảnh số… mà chúng ta đã làm quen ở các phần trên

    Ðối với một số hệ máy, còn có một chuẩn cho máy được gọi là chuẩn PCM-CIA. Chuẩn này cho phép một khe cắm có thể đáp ứng nhiều khả năng khác nhau với từng loại card khác nhau được cắm vào. Khe cắm này cho các máy tính cá nhân xách tay, khe PCM-CIA có thể chấp nhận card [có thể từ 8Mb lên đến vài chục Mb bổ sung cho RAM], card Fax-Modem, card điều khiển CD nằm ngoài… và một số thiết bị ngoại vi khác. Chuẩn này vẫn đang được tiếp tục phát triển.

Hình 26 : Các khe cắm [slot] và cổng giao tiếp [port] cho phép CPU có thể giao tiếp với thế giới bên ngoài thông qua các thiết bị ngoại vi. Trong hình này, người dùng đăng cắm thêm một bảng mạch giao tiếp vào máy tính.

Hình 28 : Khe cắm PCM-CIA của máy tính xách tay có thể làm việc với nhiều loại card giao tiếp của nhiều thiết bị ngoại vi khác nhau. Bên phải là một card giao tiếp.

Cá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ầulà 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ính4.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 độ đồnghồ 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,33 cá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:Tên busLĩnh vực áp dụng- CamacVật lý hạt nhân- EISAMột sô hệ thống dùng bộ VXL 8036- IBM PC, PC/ATMáy tính IBM PC, IBM/PC/AT- MassbusMáy PDP - 1 và VAX- MicrochannelMáy PS/2- Multibus IMột số hệ thống có VXL 8088, 8086- Multibus IIMột số hệ thống có VXL 80386- VersabusMột số hệ thống dùng VXL Motorola- VMEMột số hệ thống dùng VXL 68x0 của Motorola.Người ta thường phân loại bus theo ba cách sau: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 busThườ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 chobộ 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 ReceiverTí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ó.34 Chí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ỉ, đườngsố 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 đồnghồ 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ộtsố 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 giancủ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ệuMREQ [memory request, truy cập bộ nhớ] chứ không phải thiết bị I/O; còn tín hiệuRD [Read] chọn Read.35 - T2 là thời gian cần thiết để bộ nhớ giải mã địa chỉ và đưa dữ liệu lên busdữ 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ứavào thanh ghi bên trong MPU và chốt dữ liệu. Sau đó MPU đảo các tín hiệu MREQvà RD .Như vậy đã kết thúc một thao tác đọc, tại chu kỳ máy tiếp theo MPU có thểthực hiện một thao tác khác.- TAD : theo giản đồ thời gian, TAD ≤ 110ns, đây là thông số do nhà sản xuấtđảm bảo, MPU sẽ đưa ra tín hiệu địa chỉ không chậm hươn 110ns tính từ thời điểmgiữa sườn lên của T1.- TDS : 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 T AD 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.- TML: Đả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ểnsự 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ínhiệ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ờigian thiết lập là 75ns.- TM, TRL: Các giá trị bắt buộc đối với 2 đại lượng này có ý nghĩa là cả haití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ồ.36 - TMH, TRH: Hai đại lượng này cho biết cần có bao nhiêu thời gian để các tínhiệu MREQ và RD sẽ được đảo sau khi dữ liệu đã được MPU đọc vào.- TDH: 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ệuRD đã đả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ùngvậ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.Ký hiệuTham sốTADThời gian trễ của tín hiệu địa chỉTMLThời gian địa chỉ ổn định trước tín hiệu MREQTMThời gian trễ của MREQ so với sườn xuống củaTRLTDSTMHtín hiệu đồng hồ T3Thời gian trễ của MREQ so với sườn xuống của37Max1106085tín hiệu đồng hồ T1Thời gian trễ của RD so với sườn xuống của tínhiệu đồng hồ T1Thời gian thiết lập dữ liệu trước sườn xuống củaMin855085 TRHtín hiệu đồng hồ T3Thời gian trễ của RD so với sườn xuống của tínTDHhiệu đồng hồ T3Thời gian lưu trữ dữ liệu từ lúc đảo tín hiệu RD850Giá trị của một số thông số thời gian4.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ỳ busvà đã 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ệuvà ổ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ột38 miề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 SSYN tí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 MSYN lê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ệuSSYN tích cực. Đến lượt mình, tín hiệu SSYN lạ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 SSYN và kết thúc một chu kỳ đọc.Full handshakeTậ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ệu MSYN3. MSYN được đảo để đáp lại tín hiệu SSYN39 4. 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ốngsử 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 busTrong 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àicó thể là tập trung hoặc không tập trung.4.3.1 Trọng tài bus tập trungHì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ó40 kiểm tra thấy không phải là yêu cầu của mình thì tiếp tục truyền tín hiệu cho phéptới thiết bị kế tiếp trên đường dây.Một số loại bus có nhiều mức độ ưu tiên, với mỗi mức ưu tiên có một đườngdây yêu cầu bus và một đường dây cho chiếm bus. Hình 5.5 là một ví dụ về bus cóhai mức [các bus trong thực tế thường có 4, 8 hay 16 mức]. Mỗi thiết bị trong hệthống máy tính nối với một trong các mức yêu cầu bus, các thiết bị thường được sửdụng hơn được gắn với đường dây có mức ưu tiên cao hơn.bus requestBusarbittrtionDevice 1Device 2Device 3Device 4Hình 4.2: Trọng tài bus tập trung có một mức, mắc nối tiếp.Nếu có một số thiết bị ở các mức ưu tiên khác nhau cùng yêu cầu, trọng tàibus sẽ chỉ phát tín hiệu cho phép đối với yêu cầu có mức ưu tiên cao nhất. Trongsố các thiết bị có cùng mức ưu tiên, thiết bị gần trọng tài bus hơn sẽ có quyền ưutiên cao hơn.bus requestBusarbittrtionDevice 1Device 2Device 341Device 4 Hình 4.3: Trọng tài bus tập trung có hai mức, mắc nối tiếp.Một số trọng tài bus có đường dây thứ ba nối tới các thiết bị để các thiết bịxác nhận việc nhận được tín hiệu cho phép và chiếm dụng bus, gọi là đường dâybiên nhận acknowledgement [ACK]. Ngay sau khi một thiết bị phát tín hiệu tíchcực trên đường dây ACK, trọng tài bus có thể đảo tín hiệu trên các đường dây trêncác đường dây yêu cầu bus và cho phép dùng bus thành mức không tích cực. Kếtquả là các thiết bị khác có thể đòi hỏi chiếm dụng bus trong khi thiết bị đầu tiênđang dùng bus. Khi kết thúc phiên làm việc hiện thời, bus master kế tiếp sẽ đượclựa chọn. Cách làm việc như vậy làm tăng hiệu quả sử dụng bus, nhưng cần thêmmột đường truyền tín hiệu ACK và cấu trúc của các thiết bị cũng phức tạp hơn.Các chip của Motorola sử dụng các bus loại này.4.3.2 Trọng tài bus không tập trungTrong cơ chế trọng tài bus không tập trung, không cần sử dụng một đơn vịriêng làm trọng tài bus, nhờ vậy giảm được giá thành phần cứng. Trong một số loạimáy tính khác nhau, người ta đã sử dụng một vài kiểu trọng tài bus theo cơ chếnày.Trọng tài bus không tập trong trong multibusTrong Multibus, người ta cho phép có thể lựa chọn cơ chế trọng tài bus tậptrung hoặc không tập trung, cơ chế trọng tài bus không tập trung được thực hiệntheo sơ đồ trên hình 3.4. Người ta chỉ sử dụng 3 đường dây, không phụ thuộc vàosố lượng thiết bị nối với bus. Bao gồm:+ Yêu cầu chiếm dụng bus [bus request]+ Trạng thái bus [bus busy], được bus master đặt ở mức tích cực+ Trọng tài bus, được mắc nối tiếp qua các thiết bị42 bus requestbus busybusarbitrationIODevice 1IODevice 2IODevice 3IODevice 4Hình 4.4: Trọng tài bus không tập trung trong Multibus.Khi không có thiết bị nào yêu cầu chiếm bus, đường dây trọng tài bus truyềnmức tích cực tới tất cả các thiết bị. Khi một đơn vị nào đó muốn chiếm dụng bus,đầu tiên nó kiểm tra bus có rỗi không và kiểm tra đầu vào của đường trọng tài bus,nếu thấy có điện áp IN = 5V thì nó có thể xin bus bằng cách đưa tín hiệu yêu cầubus [Request] và xoá tín hiệu OUT, tức là đặt OUT = 0V. Do đó các thiết bị ưutiên thấp hơn sẽ không xin được bus. Lúc này nó trở thành bus master.4.4 Xử lý ngắtMột chức năng quan trọng của bus là xử lý ngắt. Khi CPU ra lệnh cho mộtthiết bị trong máy tính thực hiện việc đọc, ghi hay xử lý tin, nó thường chờ đợi tínhiệu ngắt do thiết bị I/O phát ra khi hoàn thành công việc được CPU yêu cầu. Khinhận được tín hiệu ngắt, CPU đáp ứng ngay, đó có thể là việc nhận dữ liệu do thiếtbị I/O chuyển về, cũng có thể là việc tiếp tục gửi dữ liệu tới thiết bị I/O hoặc CPUsử dụng bus cho một thao tác khác ... . Như vậy chính ngắt phát ra tín hiệu yêu cầubus.Vì có thể có nhiều thiết bị ngoại vi cùng phát tín hiệu ngắt, cho nên cũng cầncó một cơ chế trọng tài giống như đối với các bus thông thường. Giải pháp thườngdùng là gán các mức độ ưu tiên cho các thiết bị và sử dụng một trọng tài tập trungđể trao quyền ưu tiên cho các thiết bị và sử dụng một trongh tài tập trung để traoquyền ưu tiên cho các thiết bị quan trọng thường xuyên được sử dụng.4.5 Một số bus thông dụng4.5.1 Bus IBM PC43

Video liên quan

Chủ Đề