Bài giảng Kiến trúc máy tính - Chương 4: Kiến trúc bên trong và hoạt động của bộ vi xử lý trung tâm - Cao đẳng Nghề Sài Gòn

ppt 39 trang ngocly 4190
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 4: Kiến trúc bên trong và hoạt động của bộ vi xử lý trung tâm - Cao đẳng Nghề Sài Gòn", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptbai_giang_kien_truc_may_tinh_chuong_4_kien_truc_ben_trong_va.ppt

Nội dung text: Bài giảng Kiến trúc máy tính - Chương 4: Kiến trúc bên trong và hoạt động của bộ vi xử lý trung tâm - Cao đẳng Nghề Sài Gòn

  1. Chương 04 KIẾN TRÚC BÊN TRONG VÀ HOẠT ĐỘNG CỦA BỘ VI XỬ LÝ TRUNG TÂM
  2. Nội dung A. Nhiệm vụ của bộ vi xử lý B. Cấu trúc cơ bản của bộ vi xử lý (8086- 8088) C. Tập lệnh của CPU D. Hoạt động của bộ vi xử lý Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  3. A. Nhiệm vụ của bộ vi xử lý CPU được coi là bộ não của máy tính. Nhiệm vụ của CPU là xử lý những hoạt động, chẳng hạn như tính toán, lưu trữ thông tin và truy tìm. Sự tiến bộ của công nghệ máy tính luôn gắn liền với sự phát triển của CPU. Cho đến nay, người ta thường chỉ căn cứ vào CPU để phân loại PC. Thực chất CPU trong máy tính là một chip, tức là mạch tích hợp điện tử thu nhỏ, chịu trách nhiệm trực tiếp hay gián tiếp về mọi hoạt động của máy tính. CPU là đầu não điều khiển máy tính từ lúc khởi động cho đến khi tắt. Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  4. B. Cấu trúc cơ bản của bộ vi xử lý 8086-8088 I. Đơn vị điều khiển (CU/EU - Execution Control Unit) II. Đơn vị số học và luận lý (ALU - Arithmetic and Logic Unit) III. Các thanh ghi (Registers) IV. Đơn vị nối ghép bus (BIU - Bus Interface Unit) V. Bus bên trong (Internal Bus) Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  5. Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  6. I. Đơn vị điều khiển (CU) Điều khiển hoạt động của hệ thống theo chương trình đã dựng sẵn (điều khiển hoạt động của ALU) Điều khiển toàn bộ tiến trình chuyển giao dữ liệu từ chỗ này sang chỗ khác trong khi quá trình tính toán đang tiếp tục thực hiện Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  7. II. Đơn vị số học và luận lý (ALU) Thực hiện các phép toán số học và phép toán logic Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo dấu Logic: AND, OR, XOR, NOT, phép dịch bit Để CPU có thể xử lý dữ liệu với các số thực với độ chính xác cao và các phép toán phức tạp như sin, cos, tính tích phân , các CPU thường được trang bị thêm bộ đồng xử lý toán học (FPU: Floatting Point Unit ) còn được gọi là bộ xử lý dấu chấm động. Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  8. III. Các thanh ghi (Registers) Dùng để chứa thông tin tạm thời phục vụ cho các hoạt động hiện tại của CPU Trong kiến trúc máy tính, một thanh ghi là một bộ nhớ dung lượng nhỏ và rất nhanh được sử dụng để tăng tốc độ xử lý của các chương trình máy tính bằng cách cung cấp các truy cập trực tiếp đến các giá trị cần dùng. Hầu hết, nhưng không phải tất cả, các máy tính hiện đại hoạt động theo nguyên lý chuyển dữ liệu từ bộ nhớ chính vào các thanh ghi, tính toán trên chúng, sau đó chuyển kết quả vào bộ nhớ chính Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  9. III. Các thanh ghi (Registers) 1. Nhóm thanh ghi đa dụng (General Register) 2. Nhóm thanh ghi đoạn (Segment Register) 3. Nhóm thanh ghi con trỏ và chỉ mục (Index Register) 4. Thanh ghi trạng thái (Condition Register) 5. Các thanh ghi của họ 80x86 Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  10. 1. Nhóm thanh ghi đa dụng Gồm 4 thanh ghi đa dụng : AX,BX,CX và DX (16 bit). Công dụng chung của các thanh ghi này là dùng trong các phép toán số học, logic, chứa dữ liệu. Một thanh ghi 16 bit có thể được xem là 2 thanh ghi 8 bit Thanh ghi AX (Auxliary Register): Dùng trong các phép toán số học, lưu kết quả của các phép toán *, /, Thanh ghi BX (Base Register): Dùng trong phép định địa chỉ cơ sở của bộ nhớ, nó đóng vai trò như 1 thanh ghi địa chỉ offset của bộ nhớ Thanh ghi CX (Count Register): Dùng để chứa số vòng lặp trong chương trình, nó đóng vai tròn như một biến đếm cho việc lặp vòng. Ngoài ra, thanh ghi CL còn được dùng trong các phép dịch chuyển với số lần dịch chuyển là lưu trong CL Thanh ghi DX (Data Register): Dùng để lưu trữ kết quả của phép toán * hoặc /, định địa chỉ cổng trong các lệnh xuất nhập cổng. Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  11. 2. Nhóm thanh ghi đoạn (Segment Register) Gồm 4 thanh ghi : CS, DS, ES, SS Thanh ghi CS (Code Segment): Chứa địa chỉ Segment của đoạn mã chương trình Thanh ghi DS (Data Segment): Chứa địa chỉ Segment của đoạn dữ liệu Thanh ghi ES (Extra Segment): Chứa địa chỉ Segment của đoạn dữ liệu bổ sung. Như vậy nếu ta có hai đoạn dữ liệu thì một sẽ do thanh ghi DS và hai sẽ do thanh ghi ES quản lý Thanh ghi SS (Stack Segment): Lưu địa chỉ Segment của đoạn Stack Bốn thanh ghi này có thể truy xuất trên bốn đoạn bộ nhớ khác nhau. Như vậy một chương trình làm việc cùng một lúc tối đa là bốn đoạn bộ nhớ Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  12. 3. Nhóm thanh ghi con trỏ và chỉ mục Thanh ghi SI (Source Index): Trỏ đến ô nhớ trong đoạn dữ liệu định bởi thanh ghi DS, trong xử lí chuỗi thanh ghi SI dùng để trỏ đến địa chỉ bắt đầu của chuỗi nguồn Thanh ghi DI (Distination Index): Trỏ đến ô nhớ có địa chỉ Segment định bởi thanh ghi ES, trong xử lí chuỗi nó dùng để trỏ đến địa chỉ của chuỗi đích Thanh ghi SP (Stack pointer): Trỏ đến phần tử ở trên đỉnh của Stack Thanh ghi BP (Base pointer): Dùng trong phép định địa chỉ cơ sở, trong việc truy xuất phần tử trên Stack. Nó được dùng trong các phép gọi chương trình con Thanh ghi IP (Instruction Pointer): Chứa địa chỉ ô nhớ được định bởi thanh ghi CS để chỉ đến mã lệnh của chương trình. Khi thực thi một lệnh CPU sẽ tự động thay đổi nội dung của thanh ghi IP để trỏ đến lệnh kế tiếp của chương trình, thanh ghi này không bị tác động trực tiếp bởi các lệnh. Vì vậy, nó thường không có mặt trong những lệnh của hợp ngữ. Những cặp thanh ghi thường đi chung: DS : SI, ES : DI, SS : SP, SS : BP, CS : IP Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  13. Không gian địa chỉ vật lý của máy tính được đánh số bằng số 20 bit (tương đương 1MB) Địa chỉ luận lí ( dùng trong lập trình) gồm hai thành phần: Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  14. Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  15. Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  16. Khi cất (Push) một thông tin vào ngăn xếp: Nội dung của SP tự động giảm Thông tin được cất vào ngăn nhớ được trỏ bởi SP Khi lấy (Pop) một thông tin ra khỏi ngăn xếp: Thông tin được đọc từ ngăn nhớ được trỏ bởi SP Nội dung của SP tự động tăng Khi ngăn xếp rỗng, SP trỏ vào đáy Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  17. 4. Thanh ghi trạng thái (Condition Register) Còn gọi là Flag register (thanh ghi cờ). Mục đích của việc sử dụng cờ là chỉ ra trạng thái của CPU. Để làm được điều đó bộ vi xử lí đã dành riêng ra một thanh ghi gọi là thanh ghi cờ. Những bit trên thanh ghi này được gọi là các cờ. Có hai loại cờ: Cờ trạng thái, cờ điều khiển. Cờ trạng thái phản ánh kết quả của phép toán. Cờ điều khiển dùng để cho phép hay không cho phép một thao tác nào đó Chúng ta chỉ quan tâm đến nhóm cờ trạng thái gồm 6 cờ là: CF, AF, SF, OF, PF, ZF Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  18. Cờ CF (Carry Flag): “Cờ nhớ“. Bật lên một nếu kết quả của phép toán có mượn hay có nhớ đối với bít cao Cờ AF: (Awiliary Flag): " Cờ nhớ phụ “. Báo tràn số BCD Cờ SF: (Sign Flag): " Cờ dấu “. Bật lên một nếu như kết quả của một phép tính có bít cao nhất bằng một (số âm) Cờ OF: (Over Flag): " Cờ tràn “. Bật lên một nếu như kết quả của phép toán có dấu bị sai. Ví dụ : 01010000 = AL (dương) + 01110000 = BL (dương) 11000000 Cờ PF (Parity Flag): " Cờ chẵn lẻ “. Bật lên một nếu như kết quả của một phép toán có tổng 8 bít thấp là một số chẵn Cờ ZF (Zero Flag): ZF = 1 nếu như kết quả của phép toán bằng không. Ví dụ : AX = FFFFh + BX = FFFFh Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  19. 5. Các thanh ghi họ 80x86 Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  20. C. Tập lệnh của CPU 1. Cấu trúc của lệnh 2. Tập lệnh của CPU Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  21. 1. Cấu trúc của lệnh Mỗi bộ xử lý có một tập lệnh xác định. Tập lệnh thường có hàng chục đến hàng trăm lệnh. Mỗi lệnh là một chuỗi số nhị phân mà bộ xử lý hiểu được để thực hiện một thao tác xác định. Tuy nhiên trong lập trình các lệnh được mô tả bằng các ký hiệu gợi nhớ (còn gọi là các lệnh hợp ngữ- assembly) Một lệnh có cấu trúc như sau: Các toán hạng có thể là Bộ nhớ Thanh ghi Thiết bị nhập xuất Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  22. Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  23. 2. Tập lệnh CPU a. Di chuyển dữ liệu b. Số học c. Logic d. Nhập xuất e. Điều khiển hệ thống f. Chuyển điều khiển (rẽ nhánh) Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  24. a. Di chuyển dữ liệu MOVE Copy dữ liệu từ nguồn đến đích LOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lý STORE Cất dữ liệu từ bộ xử lý đến bộ nhớ EXCHANGE Trao đổi nội dung của nguồn và đích CLEAR Chuyển các bit 0 vào toán hạng đích SET Chuyển các bit 1 vào toán hạng đích PUSH Cất nội dung toán hạng nguồn vào ngăn xếp POP Lấy nội dung đỉnh ngăn xếp đưa đến toán hạng đích Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  25. b. Số học ADD Cộng hai toán hạng SUBTRACT Trừ hai toán hạng MULTIPLY Nhân hai toán hạng DIVIDE Chia hai toán hạng ABSOLUTE Lấy trị tuyệt đối toán hạng NEGATE Đổi dấu toán hạng (lấy bù 2) INCREMENT Tăng toán hạng thêm 1 DECREMENT Giảm toán hạng đi 1 COMPARE Trừ 2 toán hạng để lập cờ Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  26. c. Logic AND Thực hiện phép AND hai toán hạng OR Thực hiện phép OR hai toán hạng XOR Thực hiện phép XOR hai toán hạng NOT Đảo bit của toán hạng (lấy bù 1) TEST Thực hiện phép AND 2 toán hạng để lập cờ SHIFT Dịch trái (phải) toán hạng ROTATE Quay trái (phải) toán hạng Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  27. d. Nhập xuất INPUT Chuyển dữ liệu từ một cổng xác định đến đích OUTPUT Chuyển dữ liệu từ nguồn đến một cổng xác định Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  28. e. Điều khiển hệ thống NO OPERATION Không thực hiện gì cả HALT Dừng thực hiện chương trình WAIT Tạm dừng thực hiện chương trình, lặp kiểm tra điều kiện cho đến khi thoả mãn thì tiếp tục thực hiện LOCK Cấm không cho xin chuyển nhượng bus UNLOCK Cho phép xin chuyển nhượng bus Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  29. f. Chuyển điều khiển (rẽ nhánh) JUMP (BRANCH) Lệnh nhảy không điều kiện JUMP CONDITIONAL Lệnh nhảy có điều kiện CALL Lệnh gọi chương trình con RETURN Lệnh trở về từ chương trình con Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  30. JUMP (BRANCH) Nạp vào PC một địa chỉ xác định PC  XXX Chuyển tới thực hiện lệnh tại vị trí có địa chỉ XXX Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  31. JUMP CONDITIONAL Trong lệnh có kèm theo điều kiện Kiểm tra điều kiện trong lệnh: Nếu điều kiện đúng → chuyển tới thực hiện lệnh ở vị trí có địa chỉ XXX PC  XXX Nếu điều kiện sai → chuyển sang thực hiện lệnh_kế_tiếp Điều kiện thường được kiểm tra thông qua các cờ Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  32. CALL và RETURN CALL Ghi nội dung PC (lệnh kế tiếp) ra Stack Nạp vao PC địa chỉ của lệnh đầu tiên trong chương trình con được gọi RETURN Lấy địa chỉ của lệnh kế tiếp ở trong Stack nạp vào PC Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  33. D. Hoạt động của bộ vi xử lý I. Chu trình thi hành lệnh II. Ngắt (interrupt) Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  34. I. Chu trình thi hành lệnh Đối với CPU, do việc xử lý thông tin trong CPU là hoàn toàn tự động theo những chương trình có sẵn trong bộ nhớ, CPU cần phải biết thời điểm đọc lệnh, đọc lệnh xong thì mới chuyển đến thời điểm CPU tiến hành giải mã lệnh, giải mã lệnh xong thì CPU mới tiến hành việc thực hiện lệnh. Thực hiện xong thì CPU mới tiến hành việc đọc lệnh kế tiếp. Đây là các công đoạn khi CPU thực hiện và không thể lẫn lộn được mà phải được thực hiện một cách tuần tự. Để giải quyết vấn đề này, trong CPU cần phải có một bộ tạo nhịp thời gian làm việc (CPU Clock). Tại nhịp thời gian này, CPU thực hiện việc đọc lệnh, tại nhịp thời gian tiếp theo, CPU thực hiện việc giải mã lệnh Nhịp thời gian càng ngắn, tốc độ CPU thực hiện lệnh càng nhanh. Chẳng hạn với một CPU pentium MMX 233 MHz, điều đó có nghĩa là bộ tạo nhịp của CPU đó tạo ra 233 triệu nhịp làm việc trong 1 giây. Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  35. Một lệnh thực thi bởi CPU bao gồm các bước sau: Nhận lệnh (Fetch Instruction): Đọc lệnh từ bộ nhớ Giải mã lệnh (Interpret Instruction): Xác định thao tác mà mã lệnh yêu cầu Nhận dữ liệu (Fetch Data): Nhận dữ liệu từ bộ nhớ hoặc các cổng nhập xuất Xử lý dữ liệu (Process Data): Thực hiện phép toán số học hay logic với dữ liệu Ghi dữ liệu (Write Data): Ghi dữ liệu ra bộ nhớ hay cổng nhập xuất Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  36. Ví dụ: việc phân chia thời gian thực hiện lệnh đối với một CPU (đời cũ) có thể mô tả như sau: Trong đó: F (Fetch): đọc lệnh, D (Decode): giải mã lệnh, E (Execute): thực thi lệnh, ti: chu kì làm việc thứ i Với CPU làm việc như vậy chúng ta có thể thấy rằng mỗi lệnh phải thực hiện trong 3 nhịp thời gian. Tại nhịp t2 thì chỉ có bộ phận giải mã là bận rộn còn bộ đọc lệnh thì nhàn rỗi. Trong thời điểm t3 thì cả hai bộ phận đọc lệnh và giải mã đều rỗi. Do đó hiệu năng làm việc của CPU thấp. Một CPU xử lý lệnh theo nhịp thời gian như vậy còn gọi là bộ vi xử lý ở chế độ đơn dòng lệnh và chỉ gặp ở các CPU đời cũ Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  37. II. Ngắt (Interrupt) Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  38. Ngắt quãng là một sự kiện xảy ra một cách ngẫu nhiên trong máy tính và làm ngưng tính tuần tự của chương trình (nghĩa là tạo ra một lệnh nhảy) Khi một ngắt xảy ra, bộ xử lý thi hành các bước sau đây: 1. Thực hiện xong lệnh đang làm 2. Lưu trữ trạng thái hiện tại 3. Nhảy đến chương trình phục vụ ngắt 4. Khi chương trình phục vụ chấm dứt, bộ xử lý khôi phục lại trạng thái cũ của nó và tiếp tục thực hiện chương trình mà nó đang thực hiện khi bị ngắt. Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính
  39. Tài liệu tham khảo Võ Văn Chín, 2003, Giáo trình kiến trúc máy tính, Trường ĐH Cần Thơ Nguyễn Kim Khánh, 2007, Bài giảng kiến trúc máy tính, Trường ĐHBKHN Mostafa Abd-El-Barr - Hesham El-Rewini, Fundamentals of Computer Organization and Architecture, 2005, John Wiley & Sons, ISBN 0-471-46741-3 William Stallings, 2003, Computer Organization and Architecture Designing for Performance, Sixth edition, Pearson Education, ISBN 0-13-049307-4 Website: Trường Cao Đẳng Nghề Sài Gòn Bộ môn: Kiến Trúc Máy Tính