Giáo trình Kiến trúc máy tính - Ngô Như Khoa (Phần 1)
I. Khái niệm về kiến trúc máy tính
Kiến trúc máy tính (Computer architecture) là một khái niệm trừu tợng của một hệ thống tính toán dới quan điểm của ngời lập trình hoặc ngời viết chơng trình dịch.
Nói cách khác, kiến trúc máy tính đợc xem xét theo khía cạnh mà ngời lập trình có thể can thiệp vào mọi mức đặc quyền, bao gồm các thanh ghi, ô nhớ các ngắt . có thể đợc thâm nhập thông qua các lệnh.
II. Lịch sử phát triển của máy tính.
Chiếc máy tính điện tử đầu tiên là ENIAC đợc ra đời năm 1946, đợc chế tạo từ những đèn điện tử, rơle điện tử và các chuyển mạch cơ khí.
Lịch sử phát triển của máy tính điện tử có thể chia làm bốn thế hệ nh sau:
- Thế hệ 1: (1945-1955). Máy tính đợc xây dựng trên cơ sở đèn điện tử mà mỗi đèn tợng trng cho 1 bit nhị phân. Do đó máy có khối lợng rất lớn, tốc độ chậm và tiêu thụ điện năng lớn. Nh máy ENIAC có khối lợng 30 tấn, tiêu thụ công suất 140KW.
- Thế hệ thứ 2: (1955-1965). Máy tính đợc xây dựng trên cơ sở là các đèn bán dẫn (transistor), máy tính đầu tiên thế hệ này có tênlà TX-0 (transistorized experimental computer 0).
- Thế hệ thứ ba: (1965-1980). Máy tính đợc xây dựng trên các vi mạch cỡ nhỏ (SSI) và cỡ vừa (MSI), điển hình là thế hệ máy System/360 của IBM. Thế hệ máy tính này có những bớc đột phá mới nh sau:
- Tính tơng thích cao: Các máy tính trong cùng một họ có khả năng chạy các chơng trình, phần mềm của nhau.
- Đặc tính đa chơng trình: Tại một thời điểm có thể có vài chơng trình nằm trong bộ nhớ và một trong số đó đợc cho chạy trong khi các chơng trình khác chờ hoàn thành các thao tác vào/ra.
- Không gian địa chỉ rất lớn.
- Thế hệ thứ t: (1980- ). Máy tính đợc xây dựng trên các vi mạch cỡ lớn (LSI) và cực lớn (VLSI).
Đây là thế hệ máy tính số ngày nay, nhờ công nghệ bán dẫn phát triển vợt bậc, mà ngời ta có thể chế tạo các mạch tổ hợp ở mức độ cực lớn. Nhờ đó máy tính ngày càng nhỏ hơn, nhẹ hơn, mạnh hơn và giá thành rẻ hơn. Máy tính cá nhân bắt đầu xuất hiện và phát triển trong thời kỳ này.
(đánh số từ 0 tới 3 ) dùng để truyền số liệu 8 bit giữa các adapter I/O 8 bit với nhớ 16 bit. Mỗi kênh có thể giúp truyền 16 MByte số liệu tổ chức thành các khối 64 kByte. ( Các chân BHE là đảo của A0). DMAC2 có các kênh từ 4 -7. Kênh 4 dùng để nối tầng bốn kênh 0 đến 3 vào VXL. Ba kênh 5, 6, 7 dùng truyền số liệu 16 bit giữa các adapter I/O16 bit với nhớ 16 bit. Các kênh DMA có thể truyền 16 MByte của các khối 128 kByte. Các kênh 5, 6, 7 không thể truyền số liệu của các byte bắt đầu bằng địa chỉ lẻ (các chân A0, và BHE đều = 0). Trong slot ISA của máy vi tính AT có các chân sau dùng cho hai DMAC: DRQ0, DRQ1, , DRQ2, DRQ3, DRQ4, DRQ5, DRQ6, DRQ7 và DACK0 ACK1, DACK2, DACK3, DACK4, DACK5, DACK6, DACK7. Chương VII. Giao diện trong máy vi tính Một hệ thống máy tính điển hình từ cỡ nhỏ đến cỡ trung bình, bao gồm một bộ vi xử lý trung tâm, bộ nhớ trong và hệ thống phối ghép vào/ ra. Các thành phần này liên hệ với nhau thông qua hệ thống các bus. Chương này sẽ nghiên cứu phần cuối cùng của hệ thống máy tính, là bộ phối ghép vào/ ra. Cụ thể là các chip phối ghép vào/ ra, máy tính được liên hệ với thế giới bên ngoài thông qua các chip này. I. Các chip vào/ ra (I/O chip) Trong thế giới máy tính, đã có rất nhiều loại chip vào/ra và các chủng loại chip mới cũng liên tục xuất hiện. Trong số các chip thông dụng có thể nói đến các chip điều khiển truyền thông UART, USART, chip điều khiển hiển thị màn hình CRTC, chip điều khiển các đơn vị ổ đĩa HDC/FDC và các chip điều khiển vào/ ra qua các cổng song song PIO. I.1. Chip nhận - phát không đồng bộ UART Chip UART (Universal Asynchronous Receiver Transmitter), có thể đọc một byte dữ liệu từ bus dữ liệu và chuyển từng bit dữ liệu của nó lên đường dây nối tiếp tới các thiết bị đầu cuối (terminal) hoặc nhận dữ liệu từ terminal. Các chip UART thường hoạt động ở tốc độ từ 50bps tới 19,2 Kbps. I.2. Chip nhận - phát đồng bộ/không đồng bộ USART Chip USART(Universal Synchronouns Asynchronous Receiver Transmitter) có thể quản lý việc truyền dữ liệu đồng bộ bằng việc sử dụng nhiều giao thức khác nhau, cũng như có thể sử dụng tất cả các chức năng của UART. I.3. Các chip vào/ra song song PIO(Parallel I/O) Một trong những chip PIO điển hình là chip 8255A, như hình 7.1. Nó có 24 cổng vào/ra, có thể ghép nối với mọi thiết bị tương thích TTL, như bàn phím, các chuyển mạch, máy in. Cho phép CPU đọc hoặc ghi các bit dữ liệu trên mọi cổng vào/ra, làm cho chip này hoạt động rất linh hoạt. CPU có thể định cấu hình cho 8255A bằng cách nạp giá trị cho các thanh ghi trạng thái bên trong vi mạch này. Vi mạch gồm: a. Phần ghép nối với vi xử lý có: - Bộ đệm số liệu để trao đổi dữ liệu hai chiều (vào, ra) giữa vi xử lý và vi mạch. - Bộ logic điều khiển đọc/ghi, tức là bộ giải mã địa chỉ lệnh cho các thanh ghi đệm và thanh ghi điều khiển. b. Phần ghép nối với các thiết bị ngoài có: - Trạm A và trạm B, mỗi trạm này được gắn với một thanh ghi chốt 8 bit, có chức năng vào hoặc ra tuỳ theo chương trình khởi phát. - Trạm C 8 bit, chia thành hai phần, nửa thấp 4 bit và nửa cao 4 bit. Tuỳ theo chế độ sử dụng được xác lập bởi lời điều khiển, trạm C có thể được dùng để trao đổi dữ liệu vào hoặc ra (chế độ 0); điều khiển hoặc đối thoại với thiết bị ngoài và vi xử lý khi trạm A và trạm B ở chế độ 0 bằng cách xác lập và xoá từng bit PCj ; điều khiển hoặc đối thoại với thiết bị ngoài và vi xử lý khi các trạm A và B ở chế đọ 1 và 2. ở các chế độ 1 và 2, đọc các bit của trạm C, ta biết được trangh thái của trạm A và B. c. Phần các mạch điều khiển nội bộ: Có các khối điều khiển (nhóm A hay nhóm B) các trạm A, B và C. I.1.1. Các lệnh ghi và đọc các cửa (trạm) và các thanh ghi điều khiển Với tổ hợp của các tín hiệu địa chỉ (A0, A1), chọn chip (), các lệnh đọc (), và ghi () của vi xử lý Chương VII. Vào ra dữ liệu với thiết bị ngoại vi I. Vai trò và nhiệm vụ của bộ phối ghép I.1. Vai trò của bộ phối ghép Bộ phối ghép nằm trung gian giữa máy vi tính và các thiết bị ngoài, đóng vai trò trung chuyển dữ liệu (nhận và truyền) giữa chúng. Khi truyền dữ liệu từ máy vi tính ra thiết bị ngoài, bộ phối ghép đóng vai trò nhận dữ liệu từ máy tính và là nguồn cấp dữ liệu cho thiết bị ngoài. Khi truyền dữ liệu từ thiết bị ngoài vào máy vi tính, bộ phối ghép đóng vai trò nhận dữ liệu từ thiết bị ngoài và là nguồn cấp dữ liệu vào cho máy tính. I.2. Nhiệm vụ của bộ phối ghép. Bộ phối ghép làm nhiệm vụ phối hợp trao đổi dữ liệu giữa máy tính và thiết bị ngoài về mức và công suất của tín hiệu, về dạng tín hiệu, về tốc độ và phương thức trao đổi. I.2.1. Phối hợp về mức và công suất tín hiệu Mức tín hiệu của máy vi tính thường là mức (0V, 5V) trong khi của các thiết bị ngoài, hoặc ở mức cao (± 15V, ± 48V) hoặc rất thấp (<<1V). Do đó, bộ phối ghép phải biến đổi các mức trên cho phù hợp. Công suất của các tín hiệu trên bus dữ liệu của máy vi tính rất nhỏ (cõ vài chục mA), trong khi cần công suất lớn hơn nhiều cho thiết bị ngoài. Do đó bộ phối ghép phải biến đổi công suất cho phù hợp. ở các ngõ vào và ngõ ra của bộ phối ghép thường dùng các mạch đệm ba trạng thái. I.2.2. Phối hợp về dạng dữ liệu (tín hiệu). Bộ phối ghép phải đảm bảo tính tương thích về cơ chế trao đổi dữ liệu giữa máy tính và thiết bị ngoài. I.2.3. Phối hợp về tốc độ trao đổi dữ liệu. Máy tính thường hoạt động với tốc độ cao, trong khi các thiết bị ngoài thường hoạt động chậm hơn. Do đó bộ phối ghép phải có khả năng cấp, nhận dữ liệu nhanh với máy tính, nhưng vói thiết bị ngoại thì ngược lại . I.2.4. Phối hợp về phương thức trao đổi dữ liệu. Để đảm bảo sự trao đổi dữ liệu một cách tin cậy, cần có bộ phối ghép và phương thức trao đổi dữ liệu diễn ra theo một trình tự nhất định và hợp lý. - Nếu việc trao đổi dữ liệu do máy tính yêu cầu thì quá trình diễn ra như sau: Máy tính đưa lệnh điều khiển để khởi động bộ phối ghép hay thiết bị ngoài. Máy tính đọc tín hiệu trả lời. Nếu có tín hiệu sẵn sàng mới trao đổi tin, nếu không, thêm một chu kỳ chờ và đọc lại trạng thái. Máy tính trao đổi tin khi đọc thấy trạng thái sẵn sàng. - Nếu việc trao đổi tin do TBN yêu cầu: để giảm thời gian cồ đợi trạng thái sẵn sàng của TBN, máy tính có thể khởi động TBN rồi thực hiện các nhiệm vụ khác. Việc trao đổi tin diễn ra khi: TBN gửi yêu cầu trao đổi tin tới bộ xử lý ngắt của khối ghép nối, để đưa yêu cầu ngắt chưng trình đến máy tính. Nếu có nhiều thiết bị ngoài cùng gửi yêu cầu, KGN xử lý theo mức ưu tiên ngắt định trước, rồi đưa yêu cầu trao đổi tin cho máy tính. Máy tính nhận yêu cầu, chuẩn bị trao đổi và gửi tín hiệu xác nhận sẵn sàng trao đổi. KGN nhận và truyền tín hiệu xác nhận cho TBN. TBN trao đổi tin với KGN và KGN trao đổi tin với máy tính (nếu là đưa tin vào) hoặc máy tính trao đổi tin với KGN và KGN trao đổi tin với TBN (nếu là đưa tin ra). II. Cấu trúc chung của khối ghép nối II.1. Nhiệm vụ của các khối trong KGN. KGN có nhiệm vụ chung là nhận và chuyển tin giữa máy tính và TBN. Nhưng cụ thể, có những nhiệm vụ nhỏ khác nhau trong sơ đồ khối. Những nhiệm vụ và các khối tương ứng là: 1. Ghép nối và biến đổi tin giữa MT - KGN và KGN - TBN về: - Mức và công suất tín hiệu. - Dạng tin (song song, nối tiếp, tín hiệu số, tín hiệu analog). 2. Giải mã địa chỉ, giải mã lệnh cho các thanh ghi đệm của KGN. 3. Ghi nhận trạng thái TBN hay yêu cầu trao đổi tin của TBN, xử lý yêu cầu ưu tiên, gửi yêu cầu vào MT và xác nhận trao đổi tin từ MT. 4. Ghi nhận, biến đổi dạng tin, phát tin cho thiết bị nhận tin. 5. Nhận và phát tín hiệu nhịp thời gian trao đổi tin cho các khối trong KGN và TBN. II.2. Sơ đồ khối. data in data out INTA INTR A0 ..An I/O BUS Phối hợp I/O bus Thanh ghi đệm đọc Thanh ghi đệm viết Thanh ghi điều khiển Thanh ghi trạng thái Phối hợp TBN bus TBN Giải mã địa chỉ- lệnh data in data out INTR to local bus From local bus Xử lý ngắt 1. Khối phối hợp đường dây MT. Khối có nhiệm vụ: - Phối hợp mức và công suất tín hiệu với bus I/O của MT. - Cô lập bus I/O với các TBN khi không trao đổi tin. - Điều khiển đưa tin ra, đưa tin vào bus I/O. Các nhiệm vụ trên dược thực hiện nhờ các vi mạch đệm ba trạng thái. 2. Khối giải mã địa chỉ - lệnh. Mỗi thanh ghi đệm (điều khiển, trạng thái, số liệu đọc vào, số liệu đưa ra) của KGN được chọn để ghi và đọc tin nhờ các lệnh đọc, ghi từ khối giả mã địa chỉ - lệnh. Khối giải mã này là những vi mạch giải mã hay tổ hợp các cổng logic. Lối vào được nối với bus I/O của MT, để nhận các tín hiệu địa chỉ (A0 .. An), tín hiệu điều khiển đọc, ghi, các tín hiệu chốt địa chỉ, chốt dữ liệu. Lối ra của khối này là các tín hiệu đọc, ghi cho từng thanh ghi đệm của KGN. 3. Các thanh ghi đệm gồm: - Thanh ghi điều khiển chế độ hoạt động, thanh ghi điều khiển TBN. - Thanh ghi trạng thái hay yêu cầu trao đổi tin của TBN. - Thanh ghi đệm số liệu ghi - Thanh ghi đệm số liệu đọc. 4. Khối xử lý ngắt. Khi nhận, che chắn yêu cầu trao đổi tin của TBN, xử lý ưu tiên và đưa yêu cầu trao đổi tin vào MT. 5. Khối phát nhịp thời gian. Phát nhịp thời gian cho các hoạt động truyền và xử lý tin trong KGN hay TBN. Đôi khi, để đồng bộ, khối còn nhận tín hiệu nhịp đồng hồ từ MT. 6. Khối đệm TBN. Khối có thể biến đổi mức (TTL), biến đổi công suất (cho các TBN là các mạch điều khiển công suất) và biến đổi về dạng tin. 7. Khối điều khiển: Điều khiển hoạt động của các khối, như khối phát nhịp thời gian, chế độ hoạt động, vv... . III. Giải mã địa chỉ cho bộ ghép nối. Việc giải mã địa chỉ cho bộ ghép nối cũng gần giống như giải mã địa chỉ cho mạch nhớ. Chủ yếu ta nghiên cứu việc giải mã địa chỉ cho các cổng. Thông thường các cổng có địa chỉ 8 bit tại A0-A7 hoặc có địa chỉ 16 bit tại A0-A15. Tuỳ theo độ dài của toán hạng trong lệnh là 8 hay 16 bit ta sẽ có 1 cổng 8 bit hay 2 cổng 16 bit có địa chỉ liền nhau để tạo nên từ với độ dài tương ứng. Trong thực tế ít có hệ sử dụng hết 256 cổng I/O khác nhau, nên ta chỉ xét ở đây các bộ giải mã địa chỉ 8 bit A0-A7 và mạch giải mã thông dụng như 74LS138 để tạo ra các xung chọn thiết bị.
File đính kèm:
- giao_trinh_kien_truc_may_tinh_ngo_nhu_khoa.doc