Nội dung text VXL câu hỏi vấn đáp lý thuyết.docx
Câu 1. Trình bày kiến trúc & nguyên lý hoạt động của máy tính theo Von Neumann. Nêu vai trò của bộ nhớ và CPU trong hệ. Nêu cơ chế mà nhờ đó CPU có thể thực hiện lệnh tuần tự. #Kiến trúc máy tính theo Von newmann gồm các thành phần sau: 1. Bộ nhớ: Bộ nhớ máy tính là hệ thống con dùng lưu trữ các chỉ thị của chương trình và dữ liệu sẽ được thực hiện bởi máy tính. Thường gọi RAM, ROM. Trong kiến trúc Von Neumann chương trình và dữ liệu có chung không gian nhớ. 2. Hệ thống vào/ra (I/O): Đây là hệ thống con cho phép máy tính tương tác với các thiết bị khác và liên lạc với thế giới bên ngoài. 3. Hệ thống điều khiển trung tâm (CPU): Gồm có tập các thanh ghi (register) lưu trữ tạm thời thông tin, đơn vị số học và logic ALU thao tác trên các thông tin này, đơn vị giải mã lệnh và điều khiển xác định thao tác cần thực hiện và các hoạt động cần thiết để thực hiện thao tác, thanh ghi lệnh IR lưu mã nhị phân của lệnh cần thực thi, bộ đếm chương trình PC lưu địa chỉ của lệnh cần ghi. #Nguyên lý hoạt động: Dữ liệu (data) cùng với lệnh (instruction) được dùng để xử lí dữ liệu đó có thể được lưu giữ trên cùng một vùng nhớ của máy tính. Khi khối điều khiển Von Neumann bắt đầu gọi một lệnh để xử lí, nó gọi tới bộ đếm chương trình (program counter) để trỏ tới địa chỉ của lệnh trong bộ nhớ, rồi thì lệnh này sẽ được nạp và thực thi bởi vi xử lí. Địa chỉ của dữ liệu cần xử lí được chứa trong chính lệnh cần thực thi. Đang lúc tìm nạp và thực thị lệnh, bộ đếm chương trình sẽ tăng lên để trỏ tới lệnh tiếp theo cần thực thi. Quá trình này là tuần tự, nghĩa là các lệnh được thực thi một cách tuần tự, tại mỗi thời điểm chỉ có một lệnh được thực thi. #Vai trò của CPU và bộ nhớ trong hệ: - CPU thực hiện 2 thao tác: tìm nạp lệnh và thực thi lệnh. - Bộ nhớ lưu chương trình và dữ liệu. #Cơ chế thực hiện lệnh tuần tự: Đang lúc tìm nạp và thực thị lệnh, bộ đếm chương trình sẽ tăng lên để trỏ tới lệnh tiếp theo cần thực thi. Quá trình này là tuần tự, nghĩa là các lệnh được thực thi một cách tuần tự. Câu 2. Nói rõ vì sao CPU có thể truy nhập theo địa chỉ. Nêu nguyên lý mà nhờ đó CPU có thể thực hiện lệnh rẽ nhánh có điều kiện. # CPU có thể truy nhập theo địa chỉ vì dữ liệu, chương trình và các IO đều chia sẻ chung 1 không gian địa chỉ và được đánh địa chỉ cụ thể. CPU có thể truy nhập tất cả các thành phần này qua bus địa chỉ. #Khi gặp câu lệnh rẽ nhánh có điều kiện, vi xử lý sẽ kiểm tra điều kiện. Nếu điều kiện không được thỏa mãn, PC tăng lên 1 để thực hiện lệnh tiếp theo. Nếu điều kiện được thỏa mãn,chương trình sẽ nhảy đến nhãn được chỉ định. Lệnh rẽ nhánh có điều kiện xác định địa chỉ đích bằng kiểu định địa chỉ tương đối. Tức là địa chỉ đích trừ đi địa chỉ hiện tại được bao nhiêu cộng vào PC. Giới hạn khoảng cách nhảy từ -128 đến +127 byte kể từ lệnh sau lệnh nhảy có điều kiện.
Câu 3. Nêu rõ vì sao có thể nối chung bus số liệu trong hệ. Bạn hiểu thế nào khi CPU truy cập vổng vào ra như 1 ô nhớ, hay truy cập ô nhớ nhờ cổng vào ra. #Các vùng nhớ dữ liệu và chương trình có cùng không gian địa chỉ nên có thể nối bus chung. #Các port của vi điều khiển được đánh địa chỉ và lưu trong thanh ghi SFR. Nhờ vậy các cổng được truy nhập thông qua địa chỉ như 1 vị trí trong bộ nhớ. Khi vi xử lý có kết nối bộ nhớ ngoài, địa chỉ bộ nhớ sẽ được truyền dẫn giữa CPU và các mạch giải mã thông qua các port. Sau khi xác định ô nhớ, dữ liệu cũng được truyền dẫn giữa CPU và ô nhớ thông qua các port. Vậy là CPU truy nhập ô nhớ nhờ cổng vào ra. Câu 4. Bằng cách nào CPU có thể truy nhập tới các phần tử khác nhau thông qua địa chỉ khác nhau. #Các địa chỉ được biên dịch sang mã máy, được truyền dẫn thông qua bus địa chỉ và nhờ 1 hệ thống mạch logic tổ hợp làm hệ thống giải mã địa chỉ mà xác định đường đến phần tử tương ứng. Câu 5. Mô tả chi tiết hoạt động thực hiện 1 lệnh của CPU. Minh họa trường hợp truy nhập trực tiếp MOV R0,50H # Việc thực hiện 1 lệnh của CPU như sau: - Nội dung của PC được đặt lên bus địa chỉ. - Tín hiệu điều khiển read được xác lập. - Opcode của lệnh được đọc từ RAM và đưa lên bus dữ liệu. - Opcode được chốt vào thanh ghi lệnh bên trong CPU. - PC được tăng để chuẩn bị tìm nạp lệnh kế tiếp từ bộ nhớ. - Khối giải mã lệnh giải mã opcode và tạo tín hiệu điều khiển. ALU nhận tín hiệu và thực thi lệnh. #Minh họa trường hợp truy nhập trực tiếp: - Địa chỉ nơi lưu mã opcode của lệnh MOV được PC đặt lên bus địa chỉ. - Xác lập tín hiệu read. - Opcode của lệnh được đọc từ RAM và đưa lên bus dữ liệu: 1010 1000. Lệnh này có mã opcode 10101rrr, rrr từ 000 đến 111 mã hóa 7 thanh ghi từ R0 đến R7. - Thanh ghi lệnh được chốt nội dung 1010 1000 - PC tăng lên - Khối giải mã lệnh và diều khiển giải mã opcode này, tạo ra các tín hiệu điều khiển, khối ALU thực hiện các thao tác đã định. Quá trình này bao gồm việc đưa 50H lên bus địa chỉ, đọc nội dung ô nhớ từ Ram và đưa lên bus dữ liệu, nhận dữ liệu đọc được và chuyển vào R0, thông báo thực hiện lệnh tiếp theo. Câu 6: Minh họa trường hợp đọc toán hạng ở chế độ gián tiếp qua thanh ghi. ADD A,@R0 #Minh họa: - Địa chỉ nơi lưu mã opcode của lệnh MOV được PC đặt lên bus địa chỉ. - Xác lập tín hiệu read. - Opcode của lệnh được đọc từ RAM và đưa lên bus dữ liệu: 0010 0110. Lệnh này có mã opcode 0010 011i, I có giá trị 0 hoặc 1 mã hóa 2 thanh ghi R0 và R1. - Thanh ghi lệnh được chốt nội dung 0010 0110 - PC tăng lên - Khối giải mã lệnh và diều khiển giải mã opcode này, tạo ra các tín hiệu điều khiển, khối ALU thực hiện các thao tác đã định. Quá trình này bao gồm việc đọc dữ liệu ở R0, đặt dữ liệu này
lên bus địa chỉ, đọc nội dung ô nhớ có địa chỉ lưu ở R0 rồi đưa lên bus dữ liệu, nhận dữ liệu đọc được và chuyển vào thanh ghi A, thông báo thực hiện lệnh tiếp theo. Câu 7. Mô tả chi tiết trường hợp đọc toán hạng ở chế độ tức thì. MOV A,#50H #Mô tả: - Địa chỉ nơi lưu mã opcode của lệnh MOV được PC đặt lên bus địa chỉ. - Xác lập tín hiệu read. - Opcode của lệnh được đọc từ RAM và đưa lên bus dữ liệu: 0111 0100. Do ở chế độ định địa chỉ tức thì, giá trị 50H được lưu ở ô nhớ ngay sau ô nhớ lưu opcode của lệnh và được đưa lên bus sau khi opcode của lệnh được chốt. Bộ nhớ Ram chỉ được đọc 1 lần. - Thanh ghi lệnh được chốt nội dung 0111 0100 - PC tăng lên - Khối giải mã lệnh và diều khiển giải mã opcode này, tạo ra các tín hiệu điều khiển, khối ALU thực hiện các thao tác đã định. Quá trình này bao gồm các việc cần thiết để chốt giá trị 50H vào thanh ghi A và thông báo thực hiện lệnh tiếp theo. Câu 8. Minh họa trường hợp đọc toán hạng ở chế độ thanh ghi. SUBB A,R7 #Minh họa: - Địa chỉ nơi lưu mã opcode của lệnh SUBB được PC đặt lên bus địa chỉ. - Xác lập tín hiệu read. - Opcode của lệnh được đọc từ RAM và đưa lên bus dữ liệu: 1001 1111. Lệnh này có mã opcode là 10011rrr, với rrr mã hóa từ 000 đến 111 tương ứng với các thanh ghi R0 đến R7 - Thanh ghi lệnh được chốt nội dung 1001 1111 - PC tăng lên - Khối giải mã lệnh và diều khiển giải mã opcode này, tạo ra các tín hiệu điều khiển, khối ALU thực hiện các thao tác đã định. Quá trình này bao gồm các việc cần thiết để trừ nội dung thanh chứa A bởi nội dung của thanh ghi R7 và cờ nhớ rồi lưu kết quả vào A và thông báo thực hiện lệnh tiếp theo. Câu 9. Nêu cơ chế ngắt trong vi xử lý, giải pháp cất giữ và khôi phục trạng thái. Trình bày cách xác định nguồn báo ngắt bằng phần mềm. #Cơ chế ngắt, giải pháp cất giữ và khôi phục trạng thái: Khi chương trình chính đang thực hiện mà có 1 ngắt xuất hiện,CPU sẽ kiểm tra xem ngắt có được phép hay không, nếu được phép, việc thực thi chương trình chính tạm dừng và CPU thực hiện việc rẽ nhánh đến chương trình phục vụ ngắt ISR. CPU thực thi ISR để thực hiện 1 công việc và kết thúc việc thực thi này khi gặp lệnh “ quay về từ 1 trình phục vụ ngắt”, chương trình chính được tiếp tục tại nơi bị tạm dừng. Để cất giữ và khôi phục trạng thái, khi xảy ra ngắt, giá trị của PC được lưu vào ngăn xếp và dược nạp lại vào PC sau khi hoàn thành chương trình ngắt. # Xác định nguồn báo ngắt bằng phần mềm: Để xác định nguồn báo ngắt bằng phần mềm, trong chương trình phục vụ ngắt cần có câu lệnh kiểm tra trạng thái của các vector ngắt, trạng thái của thanh ghi cho phép ngắt và thanh ghi mức ưu tiên của các ngắt. Nếu các giá trị đều trùng nhau ta xác định dựa vào chuỗi vòng cố định, ngắt nào đứng trước là ngắt được phục vụ: ngắt ngoài 0, ngắt do timer 0, ngắt ngoài 1, ngắt do timer 1, ngắt do truyền tin nối tiếp, ngắt do timer2. Câu 10. Nêu ưu, khuyết điểm của cơ chế ngắt trong VXL. Trình bày cách xác định nguồn báo ngắt bằng phần cứng.
# Cơ chế ngắt có ưu điểm là giúp chương trình không phải liên tục kiểm tra cờ ngắt nên có thể thoải mái thực hiện các công việc khác khi không có ngắt xảy ra. Nhược điểm là quá trình lưu trạng thái và khôi phục trạng thái dễ gây ra lỗi, đặc biệt là nếu trong chương trình phục vụ ngắt có tác động đến ngăn xếp. Chương trình có sử dụng ngắt có hoạt động phức tạp gây khó khăn , nhầm lẫn cho người lập trình. #Cách xác định nguồn báo ngắt bằng phần cứng: ??? Bạn nào biết trả lời hộ mình câu này Câu 11. Vai trò và hoạt động của ngăn xếp. Liệu có tồn tại hệ vi xử lý hoạt động mà không cần sự tồn tại của ngăn xếp không? Giải thích? #Ngăn xếp có tác dụng lưu giữ trạng thái của PC khi chương trình xuất hiện ngắt, hoặc các câu lệnh gọi hàm. Ngăn xếp cũng có thể dùng để lưu 1 số dữ liệu tạm thời. Ngăn xếp hoạt động theo cơ chế fisrt in- last out, dữ liệu nào được lưu và trước thì phải được lấy ra sau. Ngăn xếp sử dụng 1 con trỏ ngăn xếp SP trỏ đến địa chỉ lưu giữ liệu. Khi lưu giữ liệu, trước khi thực hiện mỗi lệnh ghi PUSH, con trỏ ngăn xếp tự động tăng 1 đến ngăn nhớ tiếp theo. Khi lấy dữ liệu, trước khi thực hiện mỗi lệnh POP, SP tự động giảm đi 1. Con trỏ SP mặc định là trỏ đến 07H, tức là lệnh cất đầu tiên sẽ cất vào ô nhớ 08H. #Theo kiến trúc Von Neumann, VXL tại 1 thời điểm chỉ thực hiện 1 công việc. Vậy để có thể thực hiện được lệnh gọi các chương trình con hoặc chương trình ngắt thì bắt buộc phải có ngăn xếp hoặc 1 cơ chế nào đó tương tự ngăn xếp để lưu trạng thái làm việc . Câu 12. Vẽ lược đồ hoạt động của VXL kể từ lúc RESET. Vector reset và vector ngắt có thể trùng nhau không? Giải thích. Nêu sự cần thiết của ngắt không che. #Lược đồ hoạt động của VXL kể từ lúc reset??? #Vector reset và vetor ngắt có thể trùng nhau. Vì thực ra reset cũng coi là 1 hoạt động ngắt. Khi chân reset ở mức cao trong tối thiểu 2 chu kì rồi chuyển về mức thấp, VXL sẽ reset và PC nạp giá trị của vector reset là 0000H. #Ngắt không che là cần thiết. Ngắt không che hữu dụng trong các trường hợp VXL gặp sự cố. 8051 có 1 ngắt không che được là reset. Câu 13. Kiến trúc phần cứng của hệ VXL. Vai trò của mạch giải mã địa chỉ. Bằng cách nào CPU có thể trao đổi với các thiết bị ngoại vi. #Kiến trúc phần cứng giống y chang kiến trúc Von Neuman. Chỉ khác ở chỗ chưa xác định không gian bộ nhớ dữ liệu và chương trình chung hay riêng. #Khi giao tiếp với các thiết bị ngoại vi, cần có mạch giải mã địa chỉ tạo ra tín hiệu chip select để chọn thiết bị ngoại vi nào sẽ giao tiếp với CPU. #Mỗi thiết bị ngoại vi được đánh địa chỉ theo kiểu ánh xạ bộ nhớ. Vì vậy CPU có thể thao tác với ngoại vi như thao tác với 1 ngăn nhớ. Câu 14. Trình bày phương thức điều khiển vào ra bằng chương trình, điều khiển ở đây là điều khiển gì? Nêu ưu khuyết điểm của phương thức này. #Để điều khiển vào ra, ta có thể sử dụng vòng lặp trong chương trình. Trong chương trình ta dùng các vòng lặp để CPU dành ra 1 khoảng thời gian quét dữ liệu ở cồng vào hoặc các cờ ngắt để xác định xem có ngoại vi nào cần giao tiếp không. Nếu có thì sẽ gọi các chương trình con để thao tác. #Phương pháp này có ưu điểm là cấu trúc chương trình đơn giản. Nhược điểm là CPU sẽ tốn thời gian liên tục kiểm tra các ngoại vi kể cả khi không có ngoại vi nào yêu cầu giao tiếp. Câu 15. Trình bày phương thức điều khiển vào ra bằng ngắt. Nêu ưu khuyết điểm của phương thức này, nêu điểm giống và khác so với điều khiển bằng chương trình. #Khi thiết bị vào ra có nhu cầu trao đổi thông tin với CPU, thiết bị có thể gửi tín hiệu yêu cầu giao tiếp vào chân ngắt ngoài của VXL. Khi đó CPU sẽ kiểm tra ngắt xem có được phép hay