Chương 3: TỔ CHỨC BỘ XỬ LÝ

Chia sẻ: Truongminh Dat | Ngày: | Loại File: PDF | Số trang:9

0
191
lượt xem
78
download

Chương 3: TỔ CHỨC BỘ XỬ LÝ

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Các quá trình thực hiện một lệnh máy: Quá trình này là một chu kỳ: Đọc lệnh – giải mã lệnh – thực thi lệnh và trải qua 5 giai đoạn: 1. Tìm – nạp lệnh từ bộ nhớ thanh ghi (IR). Thanh ghi con trỏ lệnh IP trỏ đến lệnh kế tiếp. 2. Xác định loại lệnh vừa nạp. Nếu lệnh có sử dụng dữ liệu trong bộ nhớ thì xác định nơi chứa dữ liệu. 3. Tìm – nạp các dữ liệu vào các thanh ghi bên trong bộ xử lý (nếu có). 4. Thi hành...

Chủ đề:
Lưu

Nội dung Text: Chương 3: TỔ CHỨC BỘ XỬ LÝ

  1. Kiến trúc máy tính & Hợp ngữ Chương 3: TỔ CHỨC BỘ XỬ LÝ TỔ CHỨ BỘ I. Thực hiện lệnh máy bên trong bộ xử lý Thự hiệ lệ má bộ Nội dung: 1. Các quá trình thực hiện một lệnh máy I. Thực hiện lệnh máy bên trong bộ xử lý Quá trình này là một chu kỳ: Đọc lệnh – giải mã lệnh – thực thi lệnh và trải qua 5 giai đoạn: II. Kiến trúc RISC và kỹ thuật đường ống 1. Tìm – nạp lệnh từ bộ nhớ thanh ghi (IR). Thanh III. Ngắt quãng ghi con trỏ lệnh IP trỏ đến lệnh kế tiếp. IV. Máy tính có lệnh thật dài (VLIW) 2. Xác định loại lệnh vừa nạp. Nếu lệnh có sử dụng dữ liệu trong bộ nhớ thì xác định nơi chứa dữ liệu. V. Máy tính Vectơ 3. Tìm – nạp các dữ liệu vào các thanh ghi bên VI. Máy tính song song trong bộ xử lý (nếu có). VII. Kiến trúc IA-64 4. Thi hành lệnh. 5. Lưu kết quả vào vùng nhớ thích hợp. Trở lại B1 để thực hiện lệnh kế tiếp. Nguyễn Thị Mỹ Dung – Khoa CNTT 1 Nguyễn Thị Mỹ Dung – Khoa CNTT 2 thự hiệ lệ Quá trình thực hiện lệnh máy (2) Quá trì má Quá trình đọc lệnh (tt) Quá trì đọ lệ a) Quá trình đọc lệnh: được mô tả bằng ngôn ngữ truyền - [MAR]  [PC]: sao chép nội dung thanh ghi đếm chương thanh ghi (RTL) như sau: trình vào thanh ghi địa chỉ nhớ. Fetch: [MAR]  [PC] [PC]  [PC] + 1 - [MS(20)]  [PC]: sao chép nội dung thanh ghi bộ đếm [MBR]  [MS([MAR])] chương trình vào ô nhớ 20 trong bộ nhớ chính. [IR]  [MBR] - [MBR]  [MS([MAR])]: sao chép nội dung ô nhớ từ thanh CU  [IR(op_code)] ghi địa chỉ nhớ vào thanh ghi đệm nhớ. Trong đó: Lưu ý: MAR: Reg địa chỉ nhớ (địa chỉ 1 vùng trong BNC) - Lệnh hợp ngữ: ADD D0, [A1] PC: Reg bộ đếm chương trình (địa chỉ lệnh kế tiếp) MBR: Reg đệm nhớ (lưu trữ tạm thời các lệnh hoặc dữ liệu - Ngôn ngữ RTL: [D0]  [D0] + [MS([A1])] nhận được từ bộ nhớ trong) => cộng nội dung ô nhớ có địa chỉ là thanh ghi địa chỉ IR: Reg lệnh (mã toán hạng: mã thao tác và toán hạng) A1 với nội dung thanh ghi số liệu D0, kết quả lưu vào thanh CU: đơn vị điều khiển. ghi D0. Nguyễn Thị Mỹ Dung – Khoa CNTT 3 Nguyễn Thị Mỹ Dung – Khoa CNTT 4 Chương 3: Tổ chức bộ xử lý 1
  2. Kiến trúc máy tính & Hợp ngữ Quá trì thự hiệ lệ Quá trình thực hiện lệnh máy (3) má Sơ đồ các đường địa chỉ và số liệu trong CPU đồ đườ đị chỉ liệ b) Đường số liệu trong bộ xử lý Được mô tả dưới dạng lệnh như sau: Fetch: [MAR]  [PC] [PC]  [PC] + 1 [MBR]  [MS([MAR])] [IR]  [MBR] CU  [IR(op_code)] ADD: [MAR]  [IR(address)] [MBR]  [MS([MAR])] ALU  [MBR], ALU  [D0] [D0]  ALU Nguyễn Thị Mỹ Dung – Khoa CNTT 5 Nguyễn Thị Mỹ Dung – Khoa CNTT 6 thự hiệ lệ Quá trình thực hiện lệnh máy (4) Quá trì má thự hiệ lệ Quá trình thực hiện lệnh máy (5) Quá trì má c) Các lệnh nhảy có d) Toán hạng tức thì điều kiện Toán hạng là một hằng số. - Các lệnh nhảy có - Ví dụ: điều kiện cho phép tạo cấu trúc If Then Else. Mov D0, 12h - Lệnh nhảy là loại D0: thanh ghi số liệu ngắt mềm buộc bộ xử lý 12h: là hằng số. nhảy đến địa chỉ lệnh nhảy để thi hành tức thì lệnh ngoài chương trình, sau đó mới quay về làm tiếp theo công việc ở chương trình chính. 7 8 Nguyễn Thị Mỹ Dung – Khoa CNTT Nguyễn Thị Mỹ Dung – Khoa CNTT Chương 3: Tổ chức bộ xử lý 2
  3. Kiến trúc máy tính & Hợp ngữ thự hiệ lệ Quá trình thực hiện lệnh máy (6) Quá trì má thự hiệ lệ Quá trình thực hiện lệnh máy (7) Quá trì má e) Kiến trúc của một vi xử lý thực tế  Phương pháp định địa chỉ Sự phát triển nhanh chóng của công nghệ vật liệu bán dẫn đã tạo ra các bộ xử lý có độ rộng từ dữ liệu ngày MOV AX [1001] càng lớn tới 32 – 64 bit và có thêm nhiều thanh ghi trong Mã tác vụ Thanh ghi toán hạng đích Địa chỉ toán hạng nguồn đó. Các bộ xử lý điển hình với nhiều bus và nhiều VD: thanh ghi xuất hiện, các thanh ghi điều khiển: PC, MAR, MOV AX, [1001] ;[AX]  [MS(1001)] MBR, IR. Đặc biệt là nhiều thanh ghi địa chỉ, nhiều thanh ADD D0+ [A1] ;[D0]  [D0] + [MS([A1])] ghi số liệu. ADD R1, [R2] ;[R1]  [R1] + MS(R2) Để thâm nhập các thanh ghi cần có định dạng lệnh ADD R1, 100[R2] ;[R1]  [R1] + [MS([R2] + 100)] hai địa chỉ. ADD R1, [R2 + R3] ;[R1]  [R1] + [MS([R2] + [R3])] Một lệnh lúc này gồm 3 trường: mã tác vụ, địa chỉ thanh ghi đích, địa chỉ toán hạng nguồn. Nguyễn Thị Mỹ Dung – Khoa CNTT 9 Nguyễn Thị Mỹ Dung – Khoa CNTT 10 Thực hiện lệnh máy bên trong bộ xử lý (2) Thự hiệ lệ má bộ Đơn vị điều khiển CU (2) vị điề khiể 2. Đơn vị điều khiển CU a/ Bộ điều khiển được vi chương trình Bộ xử lý được thiết kế gồm 2 phần: đường đi - Ngôn ngữ tự nhiên của máy tính là các lệnh dữ liệu và bộ điều khiển. máy thường được viết bằng các từ gợi nhớ mã lệnh. Bộ điều khiển là phần phức tạp nhất trong bộ - Các lệnh máy này là các lệnh vĩ mô. xử lý. CU tạo ra các tín hiệu điều khiển di chuyển số - Mỗi lệnh vĩ mô được dịch bởi một số các hoạt liệu, điều khiển các tác vụ mà các bộ phận chức năng động rất sơ đẳng tức là các vi lệnh. phải làm. Bộ điều khiển cũng tạo các tín hiệu làm các - Một vi lệnh là một sự kiện nhỏ nhất xảy ra bên lệnh thực hiện một cách tuần tự. trong máy tính. Việc cài đặt bộ điều khiển có thể dùng một - Quá trình xử lý một vi lệnh vĩ mô bằng cách trong hai cách sau: dùng mạch điện tử hoặc dùng vi thực hiện một chuỗi các vi lệnh được gọi là dịch lệnh. chương trình. Nguyễn Thị Mỹ Dung – Khoa CNTT 11 Nguyễn Thị Mỹ Dung – Khoa CNTT 12 Chương 3: Tổ chức bộ xử lý 3
  4. Kiến trúc máy tính & Hợp ngữ Bộ điều khiển được vi chương trình (2) điề khiể đượ trì Đơn vị điều khiển CU (3) vị điề khiể Cấu trúc bộ điều khiển b/ Bộ điều khiển dùng mạch điện tử (mạch bằng vi chương trình: logic ngẫu nhiên) - Một bộ đếm vi chương trình Cách tiếp cận để xây dựng một đơn vị điều khiển khác là tìm ra một chuỗi các phép toán logic và - Một bộ nhớ vi chương trình số học cần thiết cho việc thực hiện một lệnh rồi thiết - Thanh ghi vi lệnh kế mạch logic thích hợp để thực hiện các chuỗi này. Nguyên tắc hoạt động Lúc đó ta có đơn vị điều khiển được xây dựng bằng (hình 6.6 trang 174, hình 6.7 các mạch logic ngẫu nhiên hay đơn vị điều khiển trang 177) logic ngẫu nhiên. Nguyễn Thị Mỹ Dung – Khoa CNTT 13 Nguyễn Thị Mỹ Dung – Khoa CNTT 14 II. Các bộ xử lý RISC Cá bộ RISC (2) 1/ Kiến trúc RISC - Cho phép thi hành ngay một lệnh máy bằng - Tập lệnh với kiến trúc rút gọn mạch điện tử chỉ trong một chu kỳ máy. - Có ít lệnh (
  5. Kiến trúc máy tính & Hợp ngữ Ưu điểm điể Nhược điểm Nhượ điể - Diện tích của BXL dùng cho bộ điều khiển - Cấm thâm nhập bộ nhớ đối với tất cả các lệnh giảm từ 60% xuống còn 10%. Như vậy, có thể tích ngoại trừ các lệnh đọc và ghi vào bộ nhớ. Do đó ta hợp thêm vào bên trong BXL các thanh ghi, các cổng buộc phải dùng nhiều lệnh để làm một công việc nhất vào ra và bộ nhớ cache. định. - Cần thiết phải tính các địa chỉ hiệu dụng vì - Tốc độ tính toán cao nhờ vào việc giải mã không có nhiều cách định vị. lệnh đơn giản, nhờ có nhiều thanh ghi, và nhờ thực - Tập lệnh có ít lệnh nên các lệnh không có sẵn hiện kỹ thuật ống dẫn liên tục và có hiệu quả. phải được thay thế bằng một chuỗi lệnh của bộ xử lý - Thời gian cần thiết để thiết bộ điều khiển là ít. RISC. Điều này góp phần làm giảm chi phí thiết kế. - Các chương trình dịch gặp nhiều khó khăn vì - Bộ điều khiển đơn giản và gọn làm cho ít rủi ro có ít lệnh. và ít sai sót. - Có ít lệnh trợ giúp cho ngôn ngữ cấp cao. Nguyễn Thị Mỹ Dung – Khoa CNTT 17 Nguyễn Thị Mỹ Dung – Khoa CNTT 18 So sánh CISC và RISC sá và RISC (3) CISC RISC 1. Các đặc điểm của kiến trúc RISC - CISC loại có tập lệnh phức - RISC loại có tập lệnh rút - Cần có đủ số thanh ghi để khắc phục hiệu ứng tạp. gọn. nghẽn cổ chai - Mạch điều khiển bằng vi - Mạch điều khiển bằng chương trình. mạch điện. - Vì các lệnh trong nhóm 2 (call, return…) thường - Gồm một tập nhiều lệnh - Gồm một tập ít lệnh có xảy ra nên một kiến trúc hiệu dụng cần tạo sự dự phòng có cấu trúc phức tạp. cấu trúc đơn giản. cho việc chuyển hiệu quả các tham số giữa các thủ tục. - Muốn thực hiện được một - Khi thực hiện được một - Các lệnh phức tạp làm tăng thời gian thiết kế, sản lệnh máy phải giải mã ra lệnh máy không cần giải mã thành các vi lệnh. mà có thể thực hiện ngay xuất và thử nghiệm. một số lệnh bằng mạch - Nếu một bộ xử lý RISC đủ nhanh thì nó phải chạy logic. được một lệnh trong một chu kỳ máy. Điều này cũng có - Loại này thích hợp cho - Loại nàylýthích hợpthuật các bộ xử dùng kỹ cho nghĩa là sự phức tạp của các lệnh phải có giới hạn của các bộ xử lý có tốc độ truy ống dẫn. chúng. cập bộ nhớ còn chậm. Mỹ Dung – Khoa CNTT Nguyễn Thị 19 Nguyễn Thị Mỹ Dung – Khoa CNTT 20 Chương 3: Tổ chức bộ xử lý 5
  6. Kiến trúc máy tính & Hợp ngữ Các đặc điểm của RISC (2) đặ điể củ RISC (4) - Kết quả tất yếu suy ra từ điều trên là một kiến 2. Kỹ thuật đường ống (Pipeline) trúc có hiệu quả không nên dùng bộ điều khiển bằng Đây là kỹ thuật làm cho các giai đoạn khác vi chương trình. nhau của nhiều lệnh được thi hành cùng một lúc. - Bộ xử lý hiệu quả phải có một định dạng lệnh Một lệnh được thực hiện trong 5 giai đoạn và đơn. Khi đó việc giải mã lệnh có thể được thực hiện mỗi giai đoạn được thực hiện trong một chu kỳ xung bằng mạch điện tử đơn giản hơn. nhịp. Các giai đoạn thực hiện: lấy lệnh (fetch - Để giảm thời gian chạy lệnh, các lệnh dài có operation); giải mã (DE: decode); thi hành (EX: liên quan tới các vi xử lý thế hệ 1 và 2 cần phải bỏ đi. excute); thâm nhập bộ nhớ (MEM: memory access); lưu trữ kết quả (RS: result storing) Nguyễn Thị Mỹ Dung – Khoa CNTT 21 Nguyễn Thị Mỹ Dung – Khoa CNTT 22 Kỹ thuật đường ống (tt) thuậ đườ Kỹ thuật đường ống (2) thuậ đườ - Cần có một mạch điện để thi hành mỗi giai đoạn của lệnh vì tất cả các giai đoạn của lệnh được thi hành cùng lúc. - Phải có nhiều thanh ghi khác nhau cho các tác vụ đọc và viết. - Cần giải mã các lệnh một cách đơn giản để có thể giải mã và đọc các toán hạng trong một chu kỳ duy nhất của xung nhịp. Như vậy, kỹ thuật ống dẫn làm tăng tốc độ thực - Cần phải có các bộ làm tính ALU hữu hiệu để hiện các lệnh. Tuy nhiên kỹ thuật ống dẫn cần có một có thể thi hành lệnh số học dài nhất, có số nhớ, trong số ràng buộc: khoảng thời gian ít hơn một chu kỳ xung nhịp. Nguyễn Thị Mỹ Dung – Khoa CNTT 23 Nguyễn Thị Mỹ Dung – Khoa CNTT 24 Chương 3: Tổ chức bộ xử lý 6
  7. Kiến trúc máy tính & Hợp ngữ Kỹ thuật đường ống (3) thuậ đườ RISC (5) - Cần phải có nhiều thanh ghi lệnh để lưu giữ 3. Khó khăn trong kỹ thuật đường ống lệnh mà chúng ta phải xem xét trong mỗi giai đoạn thi Kỹ thuật đường ống gặp một trở ngại mà các hành lệnh. nhà thiết kế hệ thống phải để ý đến là các “bọt nước” - Cần phải có nhiều thanh ghi bộ đếm chương do gặp lệnh nhảy và tính phụ thuộc của các dữ liệu. trình PC để có thể tái tục các lệnh trong trường hợp Ta phân biệt 3 loại khó khăn sau: có ngắt quãng. - Khó khăn do thiếu mạch chức năng (vì một lệnh dùng nhiều kết quả của lệnh liền trước) - Khó khăn do số liệu. - Khó khăn do điều khiển. Nguyễn Thị Mỹ Dung – Khoa CNTT 25 Nguyễn Thị Mỹ Dung – Khoa CNTT 26 RISC (6) Ngắ III. Ngắt quãng 4. Phương pháp khắc phục khó khăn Ngắt là một sự kiện xảy ra một cách ngẫu - Thêm các mạch chức năng. nhiên, đột ngột trong máy tính và làm ngưng tính tuần - Một bộ phận phần cứng được dùng để đưa kết quả tự của chương trình (nghĩa là tạo ra lệnh nhảy) từ ngã ra ALU trực tiếp vô một trong các thanh ghi ngã vào. * Khi có một ngắt xảy ra bộ xử lý thi hành các - Sử dụng kỹ thuật tiến trước một bước (Internal giai đoạn sau: Forward). + Cách 1: đóng băng kỹ thuật ống dẫn trong một chu - Thực hiện xong lệnh đang làm kỳ, nghĩa là ngưng thi hành lệnh thứ i+1 đang làm nếu lệnh - Lưu trữ trạng thái hiện tại thứ i là lệnh nhảy (ta mất trắng nột chu kỳ cho một lệnh - Nhảy đến chương trình phục vụ ngắt nhảy). + Cách 2: thi hành lệnh sau lệnh nhảy nhưng lưu ý - Khi chương trình phục vụ ngắt chấm dứt, bộ xử lý rằng hiệu quả của lệnh này nhảy bị chậm mất một lệnh. Vậy khôi phục lại trạng thái cũ của nó và tiếp tục thực hiện lệnh theo sau lệnh nhảy được thực hiện trước khi nhảy đến các lệnh tiếp theo của chương trình chính. địa chỉ khác (do chương trình dịch hoặc người lập trình làm). 27 28 Nguyễn Thị Mỹ Dung – Khoa CNTT Nguyễn Thị Mỹ Dung – Khoa CNTT Chương 3: Tổ chức bộ xử lý 7
  8. Kiến trúc máy tính & Hợp ngữ Ngắ quả Ngắt quảng (tt) Ngắ quả Ngắt quảng (tt) * Có các loại ngắt: * Ngắt được dùng cho các công việc sau: - Ngắt cứng : ngắt xuất phát từ phần cứng - Ngoại vi đòi hỏi nhập/ xuất số liệu. - Người lập trình muốn dùng dịch vụ của hệ điều hành. + Ngắt không che NMI (Non Maskle Interrupt): - Cho một chương trình chạy từng lệnh. ngắt ưu tiên cao nhất trong CPU để báo sự cố mất - Làm điểm dừng của một chương trình. điện đột ngột. - Báo tràn số liệu trong tính toán số học. + Ngắt có thể che được: có thể vô hiệu hoá - Trang bộ nhớ thực sự không có trong bộ nhớ bằng lệnh máy xoá cờ ngắt - Báo vi phạm vùng cấm của bộ nhớ. - Ngắt mềm : ngắt xuất phát từ phần mềm - Báo dùng một lệnh không có trong tập lệnh. - Ngắt nội bộ (ngắt ngoại lệ): ngắt nội bộ bên trong bộ - Báo phần cứng máy tính bị hư. xử lý - Báo điện bị cắt. Nguyễn Thị Mỹ Dung – Khoa CNTT 29 Nguyễn Thị Mỹ Dung – Khoa CNTT 30 IV. Máy tính có lệnh rất dài (VLIW) Má tí có rấ dà V. Máy tính Vectơ Má tí - Một lệnh VLIW có thể chứa hai tác vụ tính - Bao gồm một bộ tính toán vô hướng bình thường toán số nguyên, hai tác vụ tính toán số lẻ, hai tác vụ dùng kỹ thuật ống dẫn và một bộ làm tính vectơ. thâm nhập bộ nhớ và một lệnh nhảy. - Bộ tính toán vô hướng, giống như bộ xử lý dùng - Một lệnh VLIW được chia thành nhiều trường, kỹ thuật ống dẫn, thực hiện các phép tính vô hướng, còn mỗi trường có thể có từ 16 đến 24 bít và chiều dài bộ làm tính vectơ thực hiện các phép tính vectơ. của lệnh VLIW là từ 112 đến 168 bít. - Đa số các máy tính vectơ cho phép làm các phép tính trên vectơ số nguyên, vectơ số lẻ và vectơ số logic. - Giá thành và độ phức tạp của một máy tính có lệnh thật dài tăng lên rất nhiều nếu người ta tăng số - Có 2 kiểu kiến trúc máy tính vectơ: kiểu vectơ ô nhớ - ô nhớ và kiểu thanh ghi vectơ. trường trong một lệnh VLIW. - Kiến trúc kiểu thanh ghi vectơ được thực hiện trong các siêu máy tính. Nguyễn Thị Mỹ Dung – Khoa CNTT 31 Nguyễn Thị Mỹ Dung – Khoa CNTT 32 Chương 3: Tổ chức bộ xử lý 8
  9. Kiến trúc máy tính & Hợp ngữ VI. Máy tính song song Má tí Kiế trú IA- VII. Kiến trúc IA-64 - Trong các máy tính siêu ống dẫn, siêu vô hướng, máy - Kiến trúc IA-64 là một kiến trúc mới được tính vectơ, máy tính VLIW, người ta sử dụng tính thực hiện giới thiệu trong những năm gần đây. Kiến trúc này song song ở các mức độ khác nhau để làm tăng tính hiệu là sản phẩm của sự kết hợp nghiên cứu giữa hai quả. công ty máy tính hàng đầu thế giới là Intel, HP - Các máy tính song song có thể sắp xếp vào 4 loại sau: (Hewlett Packard) và một số trường đại học. 1 - SISD (Single Instructions Stream, Single Data Stream): Máy tính một dòng lệnh, một dòng số liệu. - Kiến trúc IA-64 giới thiệu một sự khởi đầu mới 2 - SIMD (Single Instructions Stream, Multiple Data quan trọng của kỹ thuật siêu vô hướng - kỹ thuật xử Stream): Máy tính một dòng lệnh, nhiều dòng số liệu. lý lệnh song song (EPIC: Expicitly Parallel 3 - MISD (Multiple Instructions Stream, Single Data Intruction Computing) - kỹ thuật ảnh hưởng nhiều Stream):Máy tính nhiều dòng lệnh, một dòng số liệu. đến sự phát triển của bộ xử lý hiện nay. Sản phẩm 4 - MIMD (Multiple Instruction Stream, Multiple Data đầu tiên thuộc kiến trúc này là bộ xử lý Itanium. Stream): Máy tính nhiều dòng lệnh, nhiều dòng số liệu. Nguyễn Thị Mỹ Dung – Khoa CNTT 33 Nguyễn Thị Mỹ Dung – Khoa CNTT 34 Kiế trú IA- Kiến trúc IA-64 (tt) * Đặc điểm kiến trúc IA-64 - Cơ chế xử lý song song là song song các lệnh mã máy (EPIC) thay vì các bộ xử lý song song như hệ thống đa bộ xử lý. - Các lệnh dài hay rất dài (LIW hay VLIW). - Các lệnh rẽ nhánh xác định (thay vì đoán các lệnh rẽ nhánh như các kiến trúc trước). - Nạp trước các lệnh (theo sự suy đoán). Nguyễn Thị Mỹ Dung – Khoa CNTT 35 Nguyễn Thị Mỹ Dung – Khoa CNTT 36 Chương 3: Tổ chức bộ xử lý 9
Đồng bộ tài khoản