Nguyên tắc hoạt động của bộ vi xử lý

Bên trong của bộ vi xử lýý. - Bộ vi xử lý thường được xem là bộ não của hệ máy vi tính. Bộ VXL là một vi mạch tích hợp cực lớn. Chúng ta sẽ nghiên cứu bộ VXL điển hình là 8086/8088 Bộ VXL 8086/8088 gồm có 2 phần chính là đơn vị thực hiện lệnh EU (Execution Unit) và đơn vị giao tiếp BIU (Bus Interface Unit). EU thực hiện tất cả các tính toán số học và logic, còn BIU thu nhận lệnh (Fetche) và dữ liệu từ bộ nhớ. Các lệnh này dùng để điều khiển và cho hoạt động của MP.

pdf10 trang | Chia sẻ: longpd | Lượt xem: 8534 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Nguyên tắc hoạt động của bộ vi xử lý, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Nguyên tắc hoạt động của bộ vi xử lý a. Bên trong của bộ vi xử lýý. - Bộ vi xử lý thường được xem là bộ não của hệ máy vi tính. Bộ VXL là một vi mạch tích hợp cực lớn. Chúng ta sẽ nghiên cứu bộ VXL điển hình là 8086/8088 Bộ VXL 8086/8088 gồm có 2 phần chính là đơn vị thực hiện lệnh EU (Execution Unit) và đơn vị giao tiếp BIU (Bus Interface Unit). EU thực hiện tất cả các tính toán số học và logic, còn BIU thu nhận lệnh (Fetche) và dữ liệu từ bộ nhớ. Các lệnh này dùng để điều khiển và cho hoạt động của MP. Các thanh ghi đa năng Các thanh ghi chỉ số và con trỏ Thanh ghi đoạn Con Trỏ lệnh Toán hạng Bộ tạo địa chỉ và Đ/K BUS Hàng đợi lệnh ALU BUS ĐƠN VỊ THỰC HIỆN EU ĐƠN VỊ GHÉP NỐI BIU Hình 2.3: Cấu trúc bộ vi xử lý 8086/8088 Sơ đồ khối chức năng của BVXL 8086/8088 được giới thiệu như hình vẽ. Dưới đây chúng ta nghiên cứu sâu hơn về khối chức năng đó. b. Tổ chức bên trong của EUvi mạch 8086/88. EU là nơi xảy ra các quá trình xử lý dữ liệu ở bên trong bộ VXL, ở đây có đơn vị số học và đơn vị logic (ALU Arithmetic And logic Unit) cùng với các thanh ghi để xử lý số liệu và ghi giữ các kết quả trung gian EU nhận các lệnh và dữ liệu do EU lại được chuyển ra bộ nhớ hoặc với các thiết bị ngoại vi thông qua BIU. Như vậy EU không liên hệ trực tiếp với thế giới bên ngoài mà luôn luôn thông qua BIU. Đơn vị thực hiện EU gồm có 2 phần là ALU và các thanh ghi chung, các lệnh từ hàng đợi lệnh trong BIU được thu nhận vào, giải mã và thực hiện tại đây. Các lệnh được lấy từ trên xuống theo nguyên tắc FIFO (First in First out). ALU gồm các mạch có nhiệm vụ thực hiện các phép tính số học hoặc logic trên các số nhị phân theo từng cặp bit vào. - Các thanh ghi đa năng (General Register): Bao gồm 4 thanh ghi 16 bít. Thanh ghi đa năng dùng để lưu giữ tạm các kết quả trung gian Là những thanh ghi 16 bit được ký hiệu là AX, BX, CX, DX (Accumulator, Base, Count, Data) được chia làm 2 nửa 8 bít: nửa cao (dùng chữ H) và nửa thấp (dùng chữ L). Các thanh ghi có thể dùng nửa 8 bit để lưu theo Byte hoặc kết hợp 2 nửa để lưu theo từ. AH AL AX: Accumulator BH BL BX: Base CH CL CX: Count DH DL DX: Data 8 bít cao 8 bít thấp Thanh ghi AX: Thanh ghi tích luỹ là thanh ghi chính để thực hiện các phép toán số học, các lệnh xuất nhập cổng. Thanh ghi BX: Thanh ghi cơ sở, dùng để chỉ đến vị trí 1 ô nhớ trong 1 đoạn Thanh ghi CX: Thanh ghi đếm, dùng để định số lần lặp của lệnh lặp. Thanh ghi DX: Thanh ghi dữ liệu, thường dùng để lưu kết quả của các phép tính nhân, chia và định địa chỉ trong các lệnh xuất, nhập cổng. - Các thanh ghi con trỏ và chỉ số Thanh ghi con trỏ và thanh ghi chỉ gồm có 4 thanh ghi chỉ số và thanh ghi con trỏ dùng cho việc lưu trú thông tin vào trong một khu vực đặc biệt của bộ nhớ. Các thanh ghi con trỏ (Pointer Register) được ký hiệu là SP và BP, còn các thanh ghi chỉ số (Index, Register) thì ký hiệu là SI và DI. Đây là các thanh ghi 16 bít, không thể chia thành 2 thanh ghi 8 bít. Các thanh ghi này thường được dùng chủ yếu để trỏ hoặc ghi chỉ số để xác định một địa chỉ trong bộ nhớ. Các địa chỉ được chứa trong các thanh ghi này có thể được liên hợp với các thông tin từ BIU để định vị trí thực của dữ liệu trong bộ nhớ. SP Stack pointer BP Base Pointer SI Source Index DI Destination Index - Bp: Thanh ghi con trỏ cơ sở, dùng trong phép định địa chỉ cơ sở khi truy xuất Stack - Stack: (Ngăn xếp) là một vùng trong bộ nhớ trong để lưu trữ các dữ liệu tạm thời. Stack được sử dụng khi chương trình thực hiện một lệnh gọi chương trình con hay 1 ngắt. Lúc đó CPU lưu địa chỉ của lệnh kế tiếp sau lệnh gọi vào Stack. Khi thực hiện xong chương trình con hoặc ngắt thì CPU sẽ lấy địa chỉ này ra khỏi Stack để có thể thực hiện lệnh kế tiếp. Stack làm việc theo nguyên tắc LIFO (Last in First out). Để quản lý Stack cần sử dụng con trỏ để chỉ đến tỉnh của Stack. - SP: Thanh ghi con trỏ ngăn xếp, được dùng làm con trò để chỉ đến phần tử ở đỉnh của Stack. - SI và DI: Được dùng trong các lệnh xử lý chuỗi và trong các phép định địa chỉ chỉ mục khi truy xuất bộ nhớ. SI: Thanh ghi chỉ số đích, dùng để xác định địa chỉ chỉ bắt đầu của chuỗi nguồn. DI: Thanh ghi chỉ số đích, dùng để xác định địa chỉ bắt đầu của chuỗi số đích. - Thanh ghi cờ.(Flags register). Là thanh ghi 16 bít Dùng để luư giữ thông tin về các trạng thái công tác của EU hoặc kết quả phép toán do ALU thực hiện. MP 8086/8088 có 9 cờ để ghi thông tin 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OF DF IF TF SF ZF AF PF CF Cờ Các cờ ý nghĩa AF CF OF SF PF ZF DF IF TF Auxiliary Flag Carry Flag Overflow Flag Sign Flag Parity Fiag Zero Flag Direcction Flag Interupt-Enable Flag Trap Flag Cờ phụ - chỉ thị nếu số nhớ vượt 4 LSB Cờ nhớ - chỉ thị nếu số nhớ vượt 4 MSB Cờ tràn - chỉ thị nếu kết quả vượt thang Cờ dấu - chỉ thị kết quả âm Cờ chẵn - chỉ thị nếu ở kết quả số các số 1 chẵn Cờ zero - chỉ thị nếu kết quả bằng 0 Cờ hướng - nếu DF=1 thực hiện theo chiều giảm Cờ ngắt - báo MP biết yêu cầu ngắt Cờ bẫy - đặt MP vào chế độ chạy từng lệnh CPU 8086/8088 chỉ dùng 9 bít làm cờ c.Tổ chức bên trong của BIU - Bộ tạo địa chỉ và điều khiển Bus. BIU gồm có mạch tạo địa chỉ và điều khiển BUS. Nó có nhiệm vụ bảo đảm cho BUS được sử dụng hết dung lượng. Để đảm bảo được điều đó, BIU phải thực hiện 2 chức năng sau: - Chức năng 1: BUS nhận trước các lệnh, cất tạm vào dãy chứa lệnh nhờ đó mà MP tăng được tốc độ tính toán. - Chức năng 2: BUS đảm đương mọi chức năng điều khiển BUS để EU có thể tập trung vào việc xử lý dữ liệu và thực hiện lệnh. Con trỏ lệnh chứa địa chỉ của lệnh thực hiện tiếp theo. BIU được dùng để trực tiếp truy xuất hoặc phối ghép với những bộ phận khác của máy tính. BIU gồm 3 khối chức năng - Đơn vị điều khiển BUS - Hàng chứa lệnh - Điều khiển địa chỉ - Đơn vị điều khiển BUS (Bus Control Unit). Dùng để thực hiện các thao tác Bus đối với MP. Nó tiếp nhận và tạo các lệnh, dữ liệu và các tín hiệu điều khiển giữa MP và các bộ nhớ khác của hệ. Ví dụ, xác định hướng di chuyển của dữ liệu trên BUS dữ liệu bằng đường dây điều khiển DT/R (Data transmit/receive) phát hoặc thu dữ liệu. -Hàng chứa lệnh (Instruction Queue) Dùng hàng chứa lệnh để làm nơi lưu trữ tạm thời các lệnh sẽ được thực hiện trong EU. Thông qua đơn vị điều khiển bus, BIU nhận trước các lệnh và cất tạm chúng vào trong hàng chứa lệnh. Đây là công việc chiếm nhiều thời gian hơn so với việc tính toán trong EU. Do vậy BIU và EU cùng hoạt động song song bảo đảm nâng cao hiệu quả làm việc của MP. - Đơn vị điều khiển địa chỉ (Address Control Unit) MP 8088/8086 có 20 đường địa chỉ (20 bít) vì vậy có khả năng đánh địa chỉ đến 1Mb. Đơn vị điều khiển địa chỉ phối hợp hoạt động với con trỏ lệnh, các thanh ghi đoạn và mạch tạo địa chỉ để xác định địa chỉ ô nhớ như được vẽ trong hình sau. - Con trỏ lệnh:(Instruction Pointer - IP) Thanh ghi đoạn Thanh ghi dữ liệu Thanh ghi ngăn xếp Thanh ghi phụ Con trỏ lệnh Bộ tạo địa chỉ 16 bit Đ/C cơ sở Đến bộ nhớ 20 bit CS DS SS ES IP Từ EU SP, BP, SI, DI, BX ĐƠN VỊ ĐIỀU KHIỂN ĐỊA CHỈ Là một thanh ghi 16 bit dùng để chỉ cho MP biết lệnh phải thực hiện tiếp theo. Mỗi lần đơn vị thực hiện EU nhận 1 lệnh thì con trỏ lệnh được tăng lên để chỉ rõ lệnh được thực hiện tiếp theo trong chương trình. - Các thanh ghi đoạn ( Segment Register) Gồm có 4 thanh ghi - CS: (Code Segment ) Thanh ghi mã lệnh. Chỉ ra đoạn bộ nhớ mã - DS: (Data Segment ) Thanh ghi dữ liệu. Chỉ ra đoạn bộ nhớ dữ liệu - SS: (Stack Segment ) Thanh ghi ngăn xếp. Chi ra đoạn bộ nhớ dùng làm ngăn xếp. - ES: (Extra Segment) Thanh ghi phụ . Chỉ ra đoạn nhớ phụ được dùng để cất dữ liệu. Mỗi đoạn của bộ nhớ có thể dài đến 64Kb. MP 8086/88 sử dụng 20 đường địa chỉ nên có thể lập địa chỉ cho 220 ô nhớ (1048576 byte nhớ). Đây là điều gây khó khăn bởi vì các thanh ghi của MP đều sử dụng độ dài là 16 bit. Để khắc phục vấn đề này người ta đưa ra khái niệm địa chỉ đoạn và địa chỉ offset (địa chỉ- độ dời). Người sử dụng các thanh ghi đoạn 16 bit CS, DS, SS và ES để xác định địa chỉ dịch chuyển tính từ địa chỉ đoạn. Cụ thể là địa chỉ đoạn sẽ được dịch trái 1 khoảng 4 bit kết hợp với địa chỉ offset giữ nguyên sẽ tạo thành cách xác định địa chỉ 20 bit. Thanh ghi Ofset Thao tác CS DS SS ES IP BX, SI, DI SP DI Nhận lệnh Dữ liệu Ngăn xếp Nơi gửi tới