(NB) Giáo trình Cấu trúc máy tính với mục tiêu giúp các bạn có thể giúp sinh viên hiểu cấu trúc của bộ xử lý trung tâm: tổ chức, chức năng và nguyên lý hoạt động của các bộ phận bên trong bộ xử lý. Mô tả diễn tiến thi hành một lệnh mã máy và một số kỹ thuật xử lý thông tin: ống dẫn, siêu ống dẫn, siêu vô hướng. Mời các bạn cùng tham khảo nội dung giáo trình phần 2 dưới đây.
Chương Cấu trúc phần mềm máy tính Giới thiệu chung Bài học cung cấp cho học sinh khái niệm thông tin, lịch sử phát triển máy tính, thành tựu máy tính Ngồi ra, cịn cung cấp kiến thức, hình ảnh để học sinh nhận biết rõ máy tính Mục tiêu Hiểu nhiệm vụ cách tổ chức đường liệu xử lý Hiểu nguyên tắc vận hành điều khiển vi chương trình Hiểu đợc tiến trình thi hành lệnh mã máy Biết số kỹ thuật xử lý thông tin: ống dẫn, siêu ống dẫn Nội dung 3.1 Đường liệu Phần đường liệu gồm có phận làm tính luận lý (ALU: Arithmetic and Logic Unit), mạch dịch, ghi đường nối kết phận Phần chứa hầu hết trạng thái xử lý Ngoài ghi tổng quát, phần đường liệu chứa ghi đếm chương trình (PC: Program Counter), ghi trạng thái (SR: Status Register), ghi đệm TEMP (Temporary), ghi địa nhớ (MAR: Memory Address Register), ghi số liệu nhớ (MBR: Memory Buffer Register), đa hợp (MUX: Multiplexor), điểm cuối kênh liệu - CPU nhớ, với nhiệm vụ lập thời biểu truy cập nhớ từ CPU kênh liệu, hệ thống bus nguồn (S1, S2) bus kết (Dest) Nhiệm vụ phần đường liệu đọc toán hạng từ ghi tổng quát, thực phép tính tốn hạng làm tính luận lý ALU lưu trữ kết ghi tổng quát Ở ngã vào ngã ghi tổng quát có mạch chốt A, B, C Thông thường, số lượng ghi tổng quát 32 Phần đường liệu chiếm phân nửa diện tích xử lý phần dễ thiết kế cài đặt xử lý 121 Hình 3.1: Tổ chức xử lý điển hình (Các đường khơng liên tục đường điều khiển) 122 3.2 Bộ điều khiển 3.2.1 Chức điều khiển Bộ điều khiển tạo tín hiệu điều khiển di chuyển số liệu (tín hiệu di chuyển số liệu từ ghi đến bus tín hiệu viết vào ghi), điều khiển tác vụ mà phận chức phải làm (điều khiển ALU, điều khiển đọc viết vào nhớ ) Bộ điều khiển tạo tín hiệu giúp lệnh thực cách Việc cài đặt điều khiển dùng hai cách sau: dùng mạch điện tử dùng vi chương trình (microprogram) a Bộ điều khiển mạch điện tử Hình 3.2: Nguyên tắc vận hành điều khiển dùng mạch điện Để hiểu vận hành điều khiển mạch điện tử, xét đến mơ tả Automate trạng thái hữu hạn: có nhiều hệ thống hay nhiều thành phần mà thời điểm xem xét có trạng thái (state) Mục đích trạng thái ghi nhớ có liên quan q trình hoạt động hệ thống Vì có số trạng thái định nên nói chung khơng thể ghi nhớ hết tồn lịch sử hệ thống, phải thiết kế cẩn thận để ghi nhớ quan trọng Ưu điểm hệ 123 thống (chỉ có số hữu hạn trạng thái) cài đặt hệ thống với lượng tài nguyên cố định Chẳng hạn, cài đặt Automate trạng thái hữu hạn phần cứng máy tính dạng mạch điện hay dạng chương trình đơn giản, đó, có khả định biết lượng giới hạn liệu cách dùng vị trí đoạn mã lệnh để đưa định Hình III.3 cho thấy nguyên tắc điều khiển mạch điện Các đường điều khiển phần đường số liệu ngã nhiều Automate trạng thái hữu hạn Các ngã vào Automate gồm có ghi lệnh, ghi chứa lệnh phải thi hành thông tin từ đường số liệu Ứng với cấu hình đường vào trạng thái tại, Automate cho trạng thái tương lai đường tương ứng với trạng thái Automate cài đặt dạng hay nhiều mạch mảng logic lập trình (PLA: Programmable Logic Array) mạch logic ngẫu nhiên Kỹ thuật điều khiển đơn giản hữu hiệu lệnh có chiều dài cố định, có dạng thức đơn giản Nó dùng nhiều xử lý RISC b Bộ điều khiển vi chương trình: Hình 3.3: Nguyên tắc vận hành điều khiển vi chương trình 124 Sơ đồ nguyên tắc điều khiển dùng vi chương trình trình bày hình III.4 Trong kỹ thuật này, đường dây điều khiển đường liệu ứng với ngã vi lệnh nằm nhớ vi chương trình Việc điều khiển tác vụ lệnh mã máy thực chuỗi vi lệnh Một vi máy tính nằm bên điều khiển thực lệnh vi chương trình Chính vi máy tính điều khiển việc thực cách vi lệnh để hoàn thành tác vụ mà lệnh mã máy phải thực Các tác vụ lệnh mã máy tuỳ thuộc vào trạng thái phần đường liệu Bộ điều khiển vi chương trình dùng rộng rãi xử lý CISC Bộ xử lý có tập lệnh phức tạp với lệnh có chiều dài khác có dạng thức phức tạp Trong xử lý CISC, người ta cài đặt lệnh mã máy cách viết vi chương trình Như cơng việc đơn giản hữu hiệu Các sai sót thiết kế automat điều khiển dễ sửa đổi 3.2.2 Các phương pháp thiết kế điều khiển a) Bộ điều khiển vi chương trình (Microprogrammed Control Unit) Hình 3.4: Nguyên tắc vận hành điều khiển dùng vi chương trình 125 Bộ nhớ vi chương trình (ROM) lưu trữ vi chương trình (microprogram) Một vi chương trình bao gồm vi lệnh (microinstruction) Mỗi vi lệnh mã hoá cho vi thao tác (microoperation) Để hoàn thành lệnh cần thực một vài vi chương trình Tốc độ chậm b) Bộ điều khiển dùng mạch điện tử Để hiểu vận hành điều khiển mạch điện tử, xét đến mô tả Automate trạng thái hữu hạn: có nhiều hệ thống hay nhiều thành phần mà thời điểm xem xét có trạng thái (state) Mục đích trạng thái ghi nhớ có liên quan trình hoạt động hệ thống Vì có số trạng thái định nên nói chung khơng thể ghi nhớ hết tồn lịch sử hệ thống, phải thiết kế cẩn thận để ghi nhớ quan trọng Ưu điểm hệ thống (chỉ có số hữu hạn trạng thái) cài đặt hệ thống với lượng tài nguyên cố định Chẳng hạn, cài đặt Automate trạng thái hữu hạn phần cứng máy tính dạng mạch điện hay dạng chương trình đơn giản, đó, có khả định biết lượng giới hạn liệu cách dùng vị trí đoạn mã lệnh để đưa định Hình 3.5: Nguyên tắc vận hành điều khiển dùng mạch điện tử 126 Hình 3.5 cho thấy nguyên tắc điều khiển mạch điện Các đường điều khiển phần đường số liệu ngã nhiều Automate trạng thái hữu hạn Các ngã vào Automate gồm có ghi lệnh, ghi chứa lệnh phải thi hành thông tin từ đường số liệu Ứng với cấu hình đường vào trạng thái tại, Automate cho trạng thái tương lai đường tương ứng với trạng thái Automate cài đặt dạng hay nhiều mạch mảng logic lập trình (PLA: Programmable Logic Array) mạch logic ngẫu nhiên Kỹ thuật điều khiển đơn giản hữu hiệu lệnh có chiều dài cố định, có dạng thức đơn giản Nó dùng nhiều xử lý RISC Tiến trình thực lệnh máy Việc thi hành lệnh mã máy chia thành giai đoạn: Đọc lệnh (IF: Instruction Fetch) Giải mã lệnh (ID: Instruction Decode) Thi hành lệnh (EX: Execute) Thâm nhập nhớ nhảy (MEM: Memory access) Lưu trữ kết (RS: Result Storing) Mỗi giai đoạn thi hành nhiều chu kỳ xung nhịp 3.3 Diễn tiến thi hành lệnh mã máy 3.3.1 Đọc lệnh Hình 3.6:Sơ đồ mơ tả trình đọc lệnh 127 MAR ← PC IR ← M[MAR] Thanh ghi PC chứa địa lệnh Địa chuyển vào ghi MAR Địa đưa lên bus địa Đơn vị điều khiển yêu cầu đọc nhớ Kết đưa lên data bus, chép vào ghi MBR, đưa vào ghi IR 3.3.2 Giải mã lệnh Lệnh từ ghi lệnh IR đưa đến đơn vị điều khiển Đơn vị điều khiển tiến hành giải mã lệnh để xác định thao tác phải thực Giải mã lệnh xảy bên CPU 3.3.3 Nhận liệu Giai đoạn thường dùng cho lệnh nạp liệu, lưu liệu lệnh nhảy Nhận liệu trực tiếp: - CPU đưa địa toán hạng bus địa - CPU phát tín hiệu điều khiển đọc - Toán hạng đọc vào CPU - Tương tự nhận lệnh Nhận liệu gián tiếp: - Quá trình nhận liệu gián tiếp: - CPU đưa địa bus địa - CPU phát tín hiệu điều khiển đọc - Nội dung ngăn nhớ đọc vào CPU, địa tốn hạng - Địa CPU phát bus địa để tìm tốn hạng - CPU phát tín hiệu điều khiển đọc - Toán hạng đọc vào CPU 128 Hình 3.7: Sơ đồ tả nhận tốn hạng gián tiếp 3.3.4 Thực lệnh Việc thi hành lệnh mã máy chia thành giai đoạn: - Đọc lệnh (IF: Instruction Fetch) - Giải mã lệnh (ID: Instruction Decode) - Thi hành lệnh (EX: Execute) - Thâm nhập nhớ nhảy (MEM: Memory access) (RS: Result Storing) Lưu trữ kết - Mỗi giai đoạn thi hành nhiều chu kỳ xung nhịp Đọc lệnh: MAR ← PC IR ← M[MAR] Bộ đếm chương trình PC đưa vào MAR Lệnh đọc từ nhớ trong, ô nhớ có địa nằm MAR đưa vào ghi lệnh IR Giải mã lệnh đọc ghi nguồn: A ← Rs1 B ← Rs2 PC ← PC + 129 Lệnh giải mã Kế ghi Rs1 Rs2 đưa vào A B Thanh ghi PC tăng lên để tới lệnh kế Để hiểu rõ giai đoạn này, ta lấy dạng thức lệnh làm tính tiêu biểu sau đây: Mã lệnh bit Thanh ghi Rs1 Thanh ghi Rs2 5 Thanh ghi Rd Tác vụ 11 Các ghi nguồn Rs1 Rs2 sử dụng tuỳ theo tác vụ, kết đặt ghi đích Rd Ta thấy việc giải mã thực lúc với việc đọc ghi Rs1 Rs2 ghi ln nằm vị trí lệnh Thi hành lệnh: Tuỳ theo loại lệnh mà ba nhiệm vụ sau thực hiện: - Liên hệ tới nhớ MAR ← Địa ALU tính tuỳ theo kiểu định vị (Rs2) MBR ← Rs1 Địa hiệu dụng ALU tính đưa vào MAR ghi nguồn Rs1 đưa vào MBR để lưu vào nhớ - Một lệnh ALU Ngã ALU ← Kết phép tính ALU thực phép tính xác định mã lệnh, đưa kết ngã - Một phép nhảy Ngã ALU ← Địa lệnh ALU tính ALU cộng địa PC với độ dời để làm thành địa đích đưa địa ngã Nếu phép nhảy có điều kiện ghi trạng thái đọc định có cộng độ dời vào PC hay không Thâm nhập nhớ nhảy lần cuối Giai đoạn thường dùng cho lệnh nạp liệu, lưu giữ liệu lệnh nhảy Tham khảo đến nhớ: MBR ← M[MAR] M[MAR] ← MBR 130 Hình 4.42 Cấu trúc tầng usb Chủ USB ( host USB) Chủ USB máy tính cá nhân với hệ điều hành có khả quản lý USB Một mạng USB phép có chủ USB, máy tính sử dụng phần cứng phần mềm USB để làm việc chủ bus Máy tính nhận biết việc cắm thêm hay dỡ bỏ thiết bị ngoại vi để khởi động trình đánh số q trình truyền liệu khác bus Máy tính có trách nhiệm kiểm tra trạng thái,thống kê hoạt động kiểm tra ghép nối điện điều khiển chủ thiết bị USB ngoại vi Thiết bị USB Các thiết bị USB có chức tớ mạng bus Ta chia làm hai loại thiết bị USB : - HUB Một hub có cổng hướng máy chủ (upstream) cổng thiết bị ghép nối (downstream) máy PC có hub cắm mạch hub gọi hub gốc (roothub) Hub thường gồm có điều khiển hub lặp (repeater) hub có chức : chuyển ổ cắm USB thành nhiều ổ cắm, nhận biết thiết bị đấu vào, xoá thiết bị đấu nối vào bus sau tháo để thực việc có trạng thái bus tạo theo cách đặc biệt (dựa vào mức điện áp, ta không đề cập đến kỹ thuật đây) Có thể nói trái tim hub vi điều khiển USB 8x930 loại vi điều khiển bit với nhớ cổng ngoại vi cấy bên vi điều khiển xử lí loại truyền liệu : điều khiển, ngắt đồng cách biệt khối 226 Truyền liệu thiết bị máy chủ thực thông qua cặp điểm cuối vi điều khiển điểm cuối trang bị đệm FIFO phát FIFO thu Tuỳ vào ứng dụng mà ta cần FIFO có dung lượng khác Hoạt động điều khiển USB lập trình thơng qua ghi chức đặc biệt , giao thức USB cấy bên ROM 8x930 người lập trình khơng cần quan tâm đến vấn đề - Thiết bị chức Là thiết bị ngoại vi : chuột, bàn phím Màn hình, máy qt, ADC, vi điều khiển ……mọi thiết bị chức bus phải theo qui định USB để máy chủ nhận biết chúng Mọi thiết bị USB thiết kế gồm phần chính: Phần giao diện SIE vi mạch chịu trách nhiệm nhận gửi liệu theo chuẩn USB Một tổ hợp giũa phần cứng firmware nhận nhiệm vụ truyền liệu khối SIE điểm cuối thiết bị qua đường ống (pipe) thích hợp chúng Thành phần thứ phần chức thiết bị ngoại vi 4.6.3.3 Giao diện vật lý Giao diện vật lý USB mô tả mặt điện tử khí kết nối USB Chuẩn khí (Mechanical): Chuẩn USB sử dụng cáp sợi để truyền tín hiệu nguồn ni Tín hiệu truyền qua dây cho đoạn liên kết điểm – điểm Có ba loại cáp Cáp USB tốc độ cao (high-speed) 480 Mb/s Cáp USB tốc độ đủ (full-speed) 12 Mb/s Cáp USB dành cho truyền thông tốc độ thấp 1.5 Mb/s Cáp USB high/full-speed Hình 4.43 Cáp dùng cho USB 227 USB quy định hai loại đầu cắm gọi dạng “A” “B” Hai loại khác kiểu dáng Hình 4.44: Đầu cắm USB dạng A B Chuẩn điện tử (Electrical) Tín hiệu đồng hồ truyền giải mã với liệu Phương pháp mã hoá bit NRZI với việc nhồi bit để đảm bảo xác truyền thơng Chân Tên gọi Màu dây Mô tả VBUS Đỏ +5Vdc D- Trắng Dữliệu - D+ Xanh lục Dữliệu + GND Đen Nối đất Qua ổ cắm USB phía sau máy tính lấy điện áp +5v với dòng tiêu thụ khoảng 100mA, số trường hợp lấy dịng tiêu thụ đến 500mA 228 Hai đường dẫn liệu D+ D- tín hiệu vi sai với mức điện áp 0/3,3V Điện áp nguồn nuôi bus USB đến +5.25 V Và chịu dịng tải lớn giảm xuống +4.2V, bổ sung vi mạch ổn áp tạo điện áp ổn định +3.3V Toàn hệ thống thiết kế cho chịu dòng tải lớn điện áp nguồn không vợt +4.2V Khi thiết bị ghép nối cần dòng lớn 100mA cần xem xét kỹ khả cung cấp chịu tải linh kiện máy tính Đấy ưu điểm USB thiết bị chức lấy nguồn ni ln từ host Mức tín hiệu Chuẩn USB quy định mức tín hiệu cho kiểu truyền low-speed, fullspeed high-speed Low-/Full-speed Mức tín hiệu Trạng thái bus Tại phía phát (vào thời điểm kết thúc thời gian bit) Tại phía nhận Yêu cầu Chấp nhận “1” D+ > VOH (min) and D- < (D+) - (D-) >200 mV (D+) - (D-) >200 VOL (max) D+ >VIH (min) mV “0” D- > VOH (min) and D+ < (D-) - (D+) > 200 mV (D-) - (D+) > 200 VOL (max) D->VIH (min) mV Trạng thái Không quan tâm rỗi: D- > VIHZ (min) D- > VIHZ (min) D+ < VIL (max) Low- D+ > VIHZ (min) D+ < VIH (min) speed D- < VIL (max) Full-speed D+ > VIHZ (min) D- < VIH (min) Reset D+ and D-