Giáo trình kiến trúc máy tính I - Chương 7

31 24 0
Giáo trình kiến trúc máy tính I - Chương 7

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tài liệu tham khảo Giáo trình kiến trúc máy tính I gồm 7 chương trình bày các vấn đề chung nhất, các thành phần cơ bản nhất cấu thành nên máy tính hiện đại nhằm trang bị cho sinh viên các nội dung chủ yếu - Chương 7 Tổ chức bộ xử lý

Chương VII: Tổ chức Bộ xử lý Chương VII: TỔ CHỨC BỘ XỬ LÝ Trong chương trước ñã khái niệm liên quan ñến phần khác máy tính Trong chương tập trung vào phận yếu máy tính – xử lý trung tâm (central processing unit - CPU) Chức yếu CPU thực thi lệnh lưu nhớ Như ñã ñề cập phần giới thiệu, giáo trình thiết kế dành cho sinh viên học học kỳ ñầu tiên ñề cập ñến vấn ñề mức ñộ ñơn giản 7.1 Tổ chức xử lý trung tâm ðể hiểu ñược cách tổ chức CPU xem địi hỏi bên gi phải thực Nói chung cơng việc phải làm là: Tìm nạp lệnh (Fetch Instruction): CPU ñọc lệnh từ nhớ Diễn giải lệnh (Interpret Instruction): Lệnh ñược giải mã xác định xem hành động địi hỏi thực Tìm nạp liệu (Fetch data): ðể thực câu lệnh địi hỏi đọc liệu từ nhớ từ thiết bị nhập xuất Xử lý liệu (Process data): Việc thi hành lệnh địi hỏi thực vài phép tính số học hay logic liệu tìm nạp vào Ghi liệu (Write data): Kết thực thi lệnh địi hỏi phải ghi liệu vào nhớ ghi thiết bị nhập xuất ðể làm ñược việc ñòi hỏi CPU cần lưu số liệu tạm thời Nó phả nhớ vị trí lệnh vừa thực cần phải biết đâu nhận lệnh để thực Nó cần lưu tập lệnh liệu tạm thời thực thi http://www.ebook.edu.vn 191 Chương VII: Tổ chức Bộ xử lý lệnh Nói cách khác CPU cần nhớ nhỏ để tiện lợi làm việc Nói chung để thực việc vừa liệt kê trên, xử lý trung tâm ñơn giản cần bao gồm ba nguyên tố quan trọng nhất: tập ghi, xử lý logic số học (Arithmetic Logic Unit - ALU) ñiều khiển (Control Unit - CU) Tổ chức máy tính đơn giản gồm CPU tương tác với nhớ thiết bị nhập xuất biểu diễn hình 7.1 Hình 7.1 Tổ chức máy tính đơn giản Bộ ghi loại máy tính khác thường chia làm hai loại, ghi dùng với mục đích chung (general-purpose registers), ghi với mục đích đặc biệt (special-purpose registers) Các ghi mục đích chung sử dụng cho mục đích nào, ví dụ dùng làm nơi lưu trữ loại liệu khác nhau, dùng làm lưu toán hạng lệnh Trong ghi với mục đích ñặc biệt có số chức bên CPU, ví dụ đếm chương http://www.ebook.edu.vn 192 Chương VII: Tổ chức Bộ xử lý trình (progam counter - PC) ghi với mục đích đặc biệt ñó dùng ñể lưu ñịa lệnh cần thực Một ví dụ khác ghi với mục đích đặc biệt ghi mã lệnh (Instruction Registers – IR), ghi ñược dùng ñể lưu mã lệnh ñang thực hiên thời ñiểm Bộ logic số học ALU cung cấp mạch số cần thiết ñể thực phép tính số học (như cộng, trừ, nhân , chia), logic (như NOT, AND, OR) phép toán dịch chuyển lệnh Bộ ñiều khiển (control block) chịu trách nhiệm ñiều khiển hoạt ñộng CPU tìm nạp lệnh từ nhớ chính, giải mã nó, định loại xem thuộc loại ci lệnh cho phận CPU làm việc CPU tìm nạp lệnh từ nhớ chính, ñọc liệu từ nhớ chính, ghi liệu ngược lại cần truyền liệu từ thiết bị ngoại vi vào máy tính đưa liệu máy tính thiết bị ngoại vi Các thiết bị ngoại vi ñây ổ ñã cứng, máy in, flash memory,… Trong hình 7.2 cho ta sơ đồ tổng qt CPU cách tỷ mỉ Trong việc truyền liệu ñường ñiều khiển logic ñược bao gồm nguyên tố gọi trục CPU nội (Internal CPU bus) Nguyên tố ñược cần ñể truyền liệu ghi khác ALU, thực tế ALU thực thi liệu nằm nhớ bên CPU http://www.ebook.edu.vn 193 Chương VII: Tổ chức Bộ xử lý Hình 7.2 Cấu trúc bên CPU 7.2 Bộ ñiều khiển Giống trung đội hoạt động điều khiển trung ñội trưởng, ñiều khiển chịu trách nhiệm ñiều khiển hoạt ñộng CPU 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 ðể thiết kế ñiều khiển, ta dùng hai cách dùng mạch điện tử dùng vi chương trình (microprogram) http://www.ebook.edu.vn 194 Chương VII: Tổ chức Bộ xử lý Bộ ñiều khiển mạch ñiện tử Trong chương ñã học mạch Một ñiều khiển mạch điện tử có ngun lý hoạt động mạch Tức có trạng thái đường tín hiệu mà thay đổi tín hiệu thời điểm định làm trạng thái giữ nguyên chuyển sang trạng thái ðể hiểu ñược vận hành ñiều khiển mạch điện tử, xét đến mơ tả Automate (mạch tự động hóa) trạng thái hữu hạn mạch 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 toà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 Theo tổ chức ñiều khiển cứng, luận lý ñiều khiển ñược cài ñặt qua cổng , mạch lật, mạch giải mã mạch số khác Thuận lợi tối ưu ñể tạo chế ñộ nhanh cho tác vụ Theo tổ chức điều khiển vi trình, thơng tin điều khiển ñược lưu nhớ ñiều khiển, nhớ ñiều khiển ñược lập trình ñể khởi ñộng dãy vi tac vụ theo yêu cầu Khi thay ñổi thiết kế, cần thay ñổi cách kết nối thành phần tổ chức theo kiểu ñiều khiển cài cứng Nếu tổ chức theo điều khiển vi trình cần cập nhật vi trình nhớ điều khiển http://www.ebook.edu.vn 195 Chương VII: Tổ chức Bộ xử lý Hình 7.3 cho ta sơ ñồ khối ñiều khiển Lệnh ñược ñọc từ nhớ ñưa vào ghi lệnh IR Thanh ghi lệnh chương biết, có phần mã hóa vi tác vụ hay opcode ñược qua mạch giải mã ñể biết ñược mã tác vụ phải làm Sau giải mã, tín hiệu ñược ñưa vào mạch ñiều khiển gồm cổng ñiều khiển ðể ñiều khiển hoạt ñộng ñược ñồng bộ, ta dùng tạo thời hiệu, thời hiệu ứng với thời ñiểm ñịnh Các thời hiệu với tín hiệu từ giải mã từ tín hiệu khác phần cịn lại ghi IR sau qua cổng ñiều khiển cho ta tín hiệu ñiều khiển cần thiết Các tín hiệu điều khiển ñưa liệu ghi ñó lên BUS, ñưa liệu từ BUS vào ghi, mở tín hiệu ghi vào ghi, đưa tín hiệu đọc/ghi vào nhớ chính, khởi động ngắt để truyền liệu HDD, máy in,… IR ñịa nhớ, ghi,… Mã tác vụ Mạch giải mã nxm m-1 D0 … Dm-1 Các cổng ñiều khiển Tín hiệu điều khiển T Bộ tạo thời hiệu Các tín hiệu khác (INR, CLR,…) Clock Hình 7.3 Sơ ñồ khối ñiều khiển máy tính http://www.ebook.edu.vn 196 Chương VII: Tổ chức Bộ xử lý Bộ ñiều khiển vi chương trình Thay điều khiển cứng dùng mạch tổ hợp cổng ñể cho tín hiệu điều khiển điều khiển vi trình dùng vi chương trình lập sẵn nằm nhớ ñiều khiển ñể khởi ñộng dãy vi tac vụ theo u cầ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 7.3 Bộ ghi Các ghi loại nhớ ñặc biệt nhanh nằm bên CPU ñược dùng ñể tạo lưu trữ kết lệnh CPU phép toán khác Các loại máy tính khác có ghi khác Chúng khác số lượng ghi, loại ghi chiếu dài ghi Chúng khác cách dùng cho ghi Thanh ghi muc đích chung ñược dùng cho nhiều mục ñích ñược nhà lập trình dùng để gán cho trạng thái khác hàm, biến Thanh ghi có mục đích ñặc biệt ñược dùng cho số chức ñặc biệt Trong số trường hợp, vài ghi ñược dùng ñể lưu trữ liệu khơng thể dùng tính tốn địa tốn hạng Chiều dài ghi phải đủ để lưu trữ hầu hết loại liệu, ñặc biệt ghi địa phải đủ dài để lưu ñược ñịa lớn Số lượng ghi kiến trúc máy tính ảnh hưởng trực tiếp ñến việc thiết kế lệnh Nếu số lượng gi dẫn đến việc phải sử dụng tham chiếu hay trỏ tới nhớ nhiều làm giảm ñáng kể ñến tốc ñộ thực thi chương trình http://www.ebook.edu.vn 197 Chương VII: Tổ chức Bộ xử lý Một dạng khác ghi ñược dùng ñể lưu bit trạng thái xử lý cờ trạng thái Những bit thay ñổi tùy theo kết thực lệnh ñó CPU Thanh ghi truy cập nhớ Có hai ghi ñược dùng ñặc biệt lệnh ñọc/ghi với nhớ: ghi liệu nhớ (memory data register MDR) ghi ñịa nhớ (memory address regiater – MAR) Hai ghi ñược CPU sử dụng ñặc biệt nhà lập trình khơng thể truy cập trực tiếp vào chúng Trong thứ tự thực lệnh ghi vào vùng nhớ ñặc biệt, MDR MAR ñược dùng sau: Một từ cần lưu vào vị trí ñó nhớ, ñầu tiên ñược CPU tải vào ghi MDR ðịa vùng nhớ ñó (vùng nhớ ghi liệu vào) ñược CPU tải vào MAR Sau ñiều khiển phát tín hiệu điều khiển “ghi” (write) để ghi liệu nằm MDR vào ñịa nằm MAR Tương tự thực lệnh ñọc (read) từ nhớ, ghi MDR MAR ñược dùng sau: ðịa từ nhớ nằm nhớ cần ñọc ñược ñưa vào MAR Bộ điều khiển phát tín hiệu điều khiển “ñọc” (read) ñể ñọc liệu nằm nhớ Dữ liệu nằm nhớ có địa chứa MAR ñược tải vào MDR Thanh ghi chuyển tải lệnh Có hai ghi quan trọng ñược dùng ñể lưu câu lệnh cho việc thực thi chương trình là: Bộ đếm chương trình (program counter – PC) ghi lệnh (instruction register – IR) http://www.ebook.edu.vn 198 Chương VII: Tổ chức Bộ xử lý Thanh ghi PC dùng ñể lưu ñạ lệnh qua điều khiển thứ tự thực lệnh chương trình Các lệnh thực tìm thấy lưu vào ghi IR Tại thời ñiểm có lệnh lưu IR Sau tìm đem lệnh cho IR, ghi PC ñược nạp giá trị ñịa lệnh Thanh ghi trạng thái Các ghi trạng thái cờ trạng thái ñược sử dụng ñể giữ thông tin trạng thái trình thực thi lệnh Một số kiến trúc máy tính chứa ghi đặc biệt gọi ghi từ trạng thái chương trình (program stature word – PSW) Trong PSW chứa bit trạng thái cho biết kết phép tính số học (có khơng?có số thừa khơng? ), trạng thái ngắt, thơng tin bảo vệ nhớ, tình trạng xử lý,… Các ghi họ 80x86 Trong hệ máy tính 32 bit Intel 386,486 Pentium có ba nhóm ghi, là: - Thanh ghi mục đích chung - Thanh ghi segment - Thanh ghi đếm chương trình PC ghi cờ trạng thái Trong hình 7.4 cho ta thấy ba nhóm Nhóm thứ ghi mục ñích chung ñược ñặt tên ký tự A,B,C,D,SI (source index), DI (destination index), SP (stack pointer) BP (base pointer) Nhóm thứ hai bao gồm ghi CS (code segment), SS (stack segment) ghi ñoạn liệu DS, ES, FS GS Nhóm ghi thứ ba bao gồm ghi lệnh IR ghi trạng thái Trong số bit trạng thái, bit ñầu tiên ñồng với bit vi xử lý bit trước ñây 8085 Các bit 6-11 giống ñược giới thiệu 8086 Các bit 1214 ñược giới thiệu 80286 bit 16-17 80386 Bit flag 18 80486 Trong cịn nhiều bit chưa http://www.ebook.edu.vn 199 Chương VII: Tổ chức Bộ xử lý dùng tới để làm dự trữ cho mục đích xuất sau Hình 7.4 Các ghi họ 80x86 7.4 ðường ñi liệu (Datapath) Phần ñường ñi liệu gồm có logic-số học (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 ñi liệu cịn chứa ghi đếm chương trình (PC: Program Counter), ghi trạng thái (SR: Status Register), ghi ñịa nhớ MAR, ghi số liệu nhớ MDR, ña hợp (MUX: Multiplexor), ñây ñ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 http://www.ebook.edu.vn 200 Chương VII: Tổ chức Bộ xử lý Các ghi nguồn Rs1 Rs2 ñược sử dụng tuỳ theo tác vụ, kết ñược ñặ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 ñây ñược thực hiện: - Liên hệ tới nhớ MAR ← ðịa ALU tính tuỳ theo kiểu ñịnh vị (Rs2) MDR ← Rs1 ðịa hiệu dụng ALU tính đưa vào MAR ghi nguồn Rs1 ñược ñưa vào MDR ñể ñược 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 http://www.ebook.edu.vn 207 Chương VII: Tổ chức Bộ xử lý 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 ñược dùng cho lệnh nạp liệu, lưu giữ liệu lệnh nhảy - Tham khảo ñến nhớ: MDR ← M[MAR] M[MAR] ← MDR Số liệu ñược nạp vào MDR lưu vào ñịa mà MAR trỏ ñến - Nhảy: If (ñiều kiện), PC ← ngả ALU Nếu ñiều kiện ñúng, ngã ALU ñược nạp vào PC ðối với lệnh nhảy khơng điều kiện, ngả ALU ln nạp vào ghi PC Lưu trữ kết Rd ← Ngã ALU Rd ← MDR Lưu trữ kết ghi đích 7.6 Xử lý ngắt (Interrupt Handling) Ngắt kiện xảy cách ngẫu nhiên máy tính làm ngưng tính chương trình (nghĩa tạo lệnh nhảy) Phần lớn nhà sản xuất máy tính (ví dụ IBM, INTEL) dùng từ ngắt qng để ám kiện này, nhiên http://www.ebook.edu.vn 208 Chương VII: Tổ chức Bộ xử lý số nhà sản xuất khác dùng từ “ngoại lệ”, “lỗi”, “bẫy” ñể ñịnh tượng Bộ ñiều khiển CPU phận khó thực ngắt quãng phần khó thực điều khiển ðể nhận biết ñược ngắt quãng lúc ñang thi hành lệnh, ta phải biết ñiều chỉnh chu kỳ xung nhịp điều ảnh hưởng đến hiệu máy tính Người ta nghĩ “ngắt qng” để nhận biết sai sót tính tốn số học, để ứng dụng cho tượng thời gian thực Bây giờ, ngắt quãng ñược dùng cho cơng việc sau đây: 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ụ hệ điều hành Cho chương trình chạy lệnh Làm điểm dừng chương trình Báo tràn số liệu tính tốn số học Trang nhớ thực khơng có nhớ Báo vi phạm vùng cấm nhớ Báo dùng lệnh khơng có tập lệnh Báo phần cứng máy tính bị hư Báo điện bị cắt http://www.ebook.edu.vn 209 Chương VII: Tổ chức Bộ xử lý Dù ngắt quãng không xảy thường xuyên xử lý phải ñược thiết kế cho lưu giữ trạng thái trước nhảy phục vụ ngắt quãng Sau thực xong chương trình phục vụ ngắt, xử lý phải khôi phục trạng thái để tiếp tục cơng việc ðể đơn giản việc thiết kế, vài xử lý chấp nhận ngắt sau thực xong lệnh ñang chạy Khi ngắt xảy ra, xử lý thi hành bước sau ñây: Thực xong lệnh ñang làm Lưu trữ trạng thái Nhảy đến chương trình phục vụ ngắt Khi chương trình phục vụ chấm dứt, xử lý khơi phục lại trạng thái cũ tiếp tục thực chương trình mà thực bị ngắt Bảng 7.1 cho ta thấy thứ tự thực kiện xảy ngắt, ñây t1

Ngày đăng: 11/05/2021, 04:50

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan