Unibus

**Unibus** là thiết kế đầu tiên trong số nhiều thiết kế bus máy tính và bảng mạch hệ thống được sử dụng với các hệ thống PDP-11 và VAX đời đầu do Digital Equipment Corporation (DEC) tại Maynard, Massachusetts sản xuất. Unibus được phát triển vào khoảng năm 1969 bởi Gordon Bell và sinh viên Harold McFarland khi đang ở Đại học Carnegie Mellon.

Cái tên này ám chỉ tính chất hợp nhất (unified) của bus; Unibus được sử dụng vừa như một bus hệ thống cho phép đơn vị xử lý trung tâm giao tiếp với bộ nhớ chính, vừa như một bus ngoại vi, cho phép các thiết bị ngoại vi gửi và nhận dữ liệu. Việc hợp nhất các bus vốn dĩ riêng biệt này cho phép các thiết bị bên ngoài dễ dàng thực hiện truy cập bộ nhớ trực tiếp (DMA) và giúp việc xây dựng các trình điều khiển thiết bị trở nên dễ dàng hơn vì việc điều khiển và trao đổi dữ liệu đều được xử lý thông qua I/O ánh xạ bộ nhớ.

Unibus có kích thước vật lý lớn, dẫn đến việc ra đời Q-bus, loại bus đã dồn kênh một số tín hiệu để giảm số lượng chân cắm. Các hệ thống PDP hiệu suất cao hơn đã sử dụng Fastbus, về cơ bản là hai Unibus trong một. Hệ thống này sau đó đã được thay thế bởi Massbus, một bus I/O chuyên dụng được giới thiệu trên VAX và các dòng PDP-11 đời cuối.

## Thông số kỹ thuật

Unibus bao gồm 72 tín hiệu, thường được kết nối thông qua hai đầu nối cạnh 36 đường trên mỗi bảng mạch in. Khi không tính các đường nguồn và đất, nó thường được gọi là bus 56 đường. Nó có thể tồn tại bên trong một bảng mạch hệ thống hoặc trên một dây cáp. Có thể kết nối tối đa 20 nút (thiết bị) vào một phân đoạn Unibus duy nhất; các phân đoạn bổ sung có thể được kết nối thông qua một bộ lặp bus.

Bus này hoàn toàn bất đồng bộ, cho phép kết hợp các thiết bị nhanh và chậm. Nó cho phép chồng lấp quá trình phân xử (chọn *bus master* tiếp theo) trong khi bus master hiện tại vẫn đang thực hiện truyền dữ liệu. 18 đường địa chỉ cho phép đánh địa chỉ tối đa 256 KB. Thông thường, 8 KB trên cùng được dành riêng cho các thanh ghi của các thiết bị I/O ánh xạ bộ nhớ được sử dụng trong kiến trúc PDP-11.

Thiết kế này cố ý giảm thiểu lượng logic dư thừa cần thiết trong hệ thống. Ví dụ, một hệ thống luôn chứa nhiều thiết bị tớ (slave) hơn thiết bị chủ (master), vì vậy hầu hết các logic phức tạp cần thiết để thực hiện truyền dữ liệu bất đồng bộ được dồn vào số ít các thiết bị chủ. Đối với các ngắt, chỉ có *bộ xử lý tiếp nhận ngắt* mới cần chứa logic định thời phức tạp. Kết quả là hầu hết các bộ điều khiển I/O có thể được triển khai với logic đơn giản, và hầu hết các logic quan trọng được triển khai dưới dạng một IC MSI tùy chỉnh.

## Sơ đồ chân

Các đường loại 1 là bus wired-OR nhiều nguồn gửi thông thường với các điện trở kéo lên ở mỗi đầu của bus, thường nằm trên một thẻ kết thúc.

Các đường loại 2 được truyền có chọn lọc bởi mỗi thẻ đến khe cắm tiếp theo – nếu thẻ muốn giữ quyền chấp thuận yêu cầu, nó sẽ kích hoạt đường SACK và không truyền yêu cầu đến khe cắm tiếp theo. Nếu một khe cắm trống, cần phải lắp một "thẻ duy trì chấp thuận" vào khe đó để truyền bốn tín hiệu loại 2 đến thẻ tiếp theo.

Các tín hiệu loại 3 được tạo ra bởi bộ nguồn và chỉ có một nguồn gửi duy nhất. Chúng cảnh báo các thiết bị trên bus khi nguồn điện sắp hỏng, để các thiết bị đó có thể thực hiện tắt máy một cách tuần tự và vô hiệu hóa các hoạt động để ngăn chặn các lần ghi sai lệch.

Hai đường điều khiển (C0 và C1) cho phép lựa chọn bốn chu kỳ truyền dữ liệu khác nhau:
*DATI (Dữ liệu vào, một lệnh đọc)
*DATIP (Dữ liệu vào/Tạm dừng, phần đầu tiên của hoạt động Đọc-Sửa-Ghi. Một hoạt động DATO hoặc DATOB sẽ hoàn tất việc này.)
*DATO (Dữ liệu ra, một lệnh ghi từ)
*DATOB (Dữ liệu ra/Byte, một lệnh ghi byte)
*Trong một chu kỳ ngắt, kiểu truyền thứ năm sẽ tự động được gọi để chuyển một *vectơ ngắt* từ thiết bị gây ngắt đến *bộ xử lý tiếp nhận ngắt*.

## Tham khảo