chức năng và cấu trúc của vi xử lý trong máy tính

70 1.6K 16
chức năng và cấu trúc của vi xử lý trong máy tính

Đ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

CẤU TRÚC & CHỨC NĂNG CỦA VI XỬ I. Tổ chức bộ xử II. Tổ chức thanh ghi Người sử dụng – các thanh ghi có thể nhìn thấy Thanh ghi điều khiển thanh ghi trạng thái dụ về tổ chức thanh ghi của bộ vi xử III. Chu kỳ lệnh Chu kỳ gián tiếp Luồng dữ liệu IV. Cấu trúc đường ống lệnh Chiến lược Pipelining Hiệu suất Pipelining Hạn chế của Pipelining Xử với nhánh Pipelining Intel 80486 V. Các họ vi xử 8086 Tổ chức thanh ghi Xử ngắt VI. Các bộ xử ARM Tổ chức bộ xử Chế độ xử thanh ghi Tổ chức xử ngắt VII. Tài liệu tham khảo VIII. Tóm tắt, các yêu cầu câu hỏi ôn tập NỘI DUNG CHÍNH  Một bộ xử bao gồm cả thanh ghi người dùng có thể nhìn thấy thanh ghi điều khiển / trạng thái. Có thể được tham chiếu ngầm định hoặc rõ ràng trong lệnh của máy. Thanh ghi người dùng có thể nhìn thấy có thể có mục đích sử dụng chung hoặc có một mục đích sử dụng đặc biệt, chẳng hạn như điểm cố định hoặc số dấu phẩy động, địa chỉ, chỉ mục con trỏ phân đoạn. Thanh ghi điều khiển thanh ghi trạng thái dùng để điều khiển hoạt động của bộ vi xử lý. Một dụ rõ ràng là bộ đếm chương trình. Một dụ quan trọng khác là chương trình từ trạng thái (PSW), chứa nhiều trạng thái điều kiện bit. Chúng bao gồm bit để phản ánh kết quả của phép toán số học, bit cho phép ngắt, chỉ số của về cho dù bộ xử là thi hành trong giám sát hoặc chế độ người dùng.  Bộ vi xử sử dụng các lệnh pipelining để tăng tốc độ thực hiện lệnh. Về bản chất, pipelining liên quan đến việc phá vỡ chu kỳ lệnh với giai đoạn riêng biệt xảy ra theo thứ tự, chẳng hạn như lấy chỉ dẫn, lệnh giải mã, xác định địa chỉ toán hạng, lấy toán hạng, thực hiện lệnh, ghi các kết quả toán hạng. Chỉ dẫn di chuyển qua các giai đoạn, như trong dây chuyền lắp ráp, do đó, về nguyên tắc, mỗi giai đoạn có thể được làm việc trên một lệnh khác nhau cùng một lúc. Sự xuất hiện của các chi nhánh phụ thuộc giữa các hướng dẫn phức tạp thiết kế sử dụng các đường ống dẫn. I. TỔ CHỨC BỘ XỬ Để hiểu rõ tổ chức của bộ xử lý, chúng ta hãy xem xét các yêu cầu đặt vào bộ vi xử lý, những điều mà nó phải làm: Control bus Data bus Address bus System ALU Registers Control unit • Lấy lệnh: Bộ xử đọc một lệnh từ bộ nhớ (thanh ghi, bộ nhớ cache, bộ nhớ chính). • Dịch lệnh: Các lệnh được giải mã để xác định những hành động được yêu cầu • Lấy dữ liệu: Việc thi hành một lệnh có thể yêu cầu đọc dữ liệu từ bộ nhớ hoặc một module I / O. • Xử dữ liệu: Việc thi hành một lệnh có thể yêu cầu thực hiện một số phép tính số học hoặc hoạt động hợp trên dữ liệu. • Ghi dữ liệu: Kết quả của một thực thi có thể đòi hỏi ghi dữ liệu vào bộ nhớ hoặc một module I / O. Để làm những việc này, cần phải thấy rõ rằng bộ vi xử cần lưu trữ một số dữ liệu tạm thời. Nó phải nhớ vị trí của lệnh mới nhất để nó có thể biết được nơi để có được những lệnh tiếp theo. Nó cần phải lưu trữ lệnh dữ liệu tạm thời trong khi một lệnh đang được thực thi. Nói cách khác, bộ vi xử cần có một bộ nhớ nhỏ. Hình 1 là một cái nhìn đơn giản của một bộ xử lý, chỉ kết nối của nó với phần còn lại của hệ thống thông qua bus hệ thống. Chúng ta sẽ nhớ lại rằng các thành phần chính của bộ vi xử là một đơn vị số học logic (ALU) đơn vị điều khiển (CU). ALU thực hiện các tính toán thực tế hoặc xử dữ liệu. Bộ điều khiển kiểm soát sự di chuyển của dữ liệu hướng dẫn vào ra khỏi bộ vi xử kiểm soát hoạt động của ALU. Ngoài ra, hình vẽ cho thấy một bộ nhớ trong tối thiểu, bao gồm một tập hợp các vị trí lưu trữ, gọi là thanh ghi. Arithmetic and Boolean logic Complementer Shifter Status ags Arithmetic and logic unit Control paths Hình 1 Hình 2 là một cái nhìn chi tiết hơn về bộ vi xử lý. Truyền dữ liệu điều khiển logic đường dẫn được chỉ định trong đó có một yếu tố nhãn bus vi xử nội bộ. Yếu tố này là cần thiết để chuyển dữ liệu giữa các thanh ghi khác nhau ALU trên thực tế Hình 2 chỉ hoạt động trên dữ liệu trong bộ nhớ xử nội bộ. Con số này cũng cho thấy các yếu tố cơ bản đặc trưng của ALU. Lưu ý sự giống nhau giữa cấu trúc bên trong của máy tính nói chung các cấu trúc bên trong của bộ vi xử lý. Trong cả hai trường hợp, có một bộ sưu tập nhỏ của yếu tố chủ yếu (máy tính: bộ vi xử lý, I / O, bộ nhớ; xử lý: đơn vị điều khiển, ALU, thanh ghi) nối với nhau bằng đường dữ liệu. II. TỔ CHỨC THANH GHI Ở mức cao hơn của hệ thống phân cấp, bộ nhớ nhanh hơn, nhỏ hơn, đắt tiền hơn. Trong bộ vi xử lý, có một tập các thanh ghi có chức năng như một cấp độ của bộ nhớ trên bộ nhớ chính bộ nhớ cache trong hệ thống phân cấp. Các thanh ghi trong bộ vi xử thực hiện hai vai trò: • Thanh ghi người dùng có thể nhìn thấy: Cho phép các lập trình viên máy hoặc ngôn ngữ lắp ráp để giảm thiểu tham chiếu bộ nhớ chính bằng cách tối ưu việc sử dụng thanh ghi. • Thanh ghi điều khiển/trạng thái: Được sử dụng bởi bộ điều khiển để kiểm soát hoạt động của bộ vi xử đặc quyền, các chương trình hệ điều hành để kiểm soát việc thực hiện các chương trình. Thanh ghi người sử dụng nhìn thấy: Thanh ghi người dùng có thể nhìn thấy là một trong đó có thể được tham chiếu bằng phương tiện của ngôn ngữ máy mà bộ vi xử thực hiện. Chúng ta có thể mô tả các trong các loại sau: • Đa năng • Dữ liệu • Địa chỉ • Điều kiện mã Thanh ghi đa năng có thể được gán cho nhiều chức năng bởi người lập trình. Đôi khi họ sử dụng trong phạm vi các tập lệnh là trực giao với các hoạt động. Có nghĩa là, bất kỳ thanh ghi đa năng có thể chứa các toán hạng cho bất kỳ mã máy. Này cung cấp đúng đa năng việc sử dụng thanh ghi. Thường thì tuy nhiên, có những hạn chế. dụ, thanh ghi có thể được dành riêng cho dấu chấm động thao tác ngăn xếp. Trong một số trường hợp, thanh ghi đa năng có thể được sử dụng để giải quyết các chức năng (ví dụ, thanh ghi gián tiếp, chuyển). Trong trường hợp khác, có một tách một phần hoặc Thanh ghi sạch giữa dữ liệu Thanh ghi địa chỉ. Thanh ghi dữ liệu có thể được sử dụng để chứa dữ liệu không thể được sử dụng trong tính toán một địa chỉ toán hạng. Thanh ghi địa chỉ bản thân có thể là thanh ghi đa năng, hoặc họ có thể dành cho một chế độ giải quyết cụ thể. dụ như sau: • Con trỏ đoạn: Trong một máy tính với phân đoạn giải quyết, một đoạn thanh ghi giữ địa chỉ của các cơ sở của phân khúc này. Có thể có nhiều thanh ghi: dụ, một cho hệ điều hành một cho quá trình hiện tại. • Thanh ghi chỉ số: Chúng được sử dụng cho việc giải quyết được lập chỉ mục có thể được tự động lập chỉ mục. • Con trỏ ngăn xếp: Nếu có người dùng có thể nhìn thấy chồng giải quyết, sau đó thường có một thanh ghi chuyên trỏ đến đỉnh của ngăn xếp. Điều này cho phép ngầm định giải quyết, đó là đẩy, pop, chỉ dẫn ngăn xếp khác không nhất thiết có một ngăn xếp toán hạng rõ ràng. Có vài tiêu chí thiết kế cần giải quyết ở đây. Một vấn đề quan trọng là liệu sử dụng hoàn toàn thanh ghi đa năng hoặc sử dụng chuyên biệt. Với việc sử dụng thanh ghi chuyên biệt, nó thường ẩn trong mã máy. Bộ ghi rõ toán hạng chỉ phải xác định một trong một bộ các thanh ghi chuyên biệt chứ không phải là một trong số tất cả các thanh ghi, do đó tiết kiệm bit. Ngược lại, điều này giới hạn sự linh hoạt của lập trình viên. Một vấn đề khác thiết kế là số thanh ghi, hoặc đa dụng hoặc dữ liệu cộng thêm địa chỉ, để được cung cấp. Một lần nữa, điều này ảnh hưởng đến thiết kế tập lệnh hơn thanh ghi đòi hỏi nhiều bit toán hạng đặc tả. Thanh ghi ít hơn dẫn đến tham chiếu bộ nhớ nhiều hơn, thanh ghi nhiều hơn không đáng kể làm giảm tham chiếu bộ nhớ. Tuy nhiên, một cách tiếp cận mới, tìm thấy lợi thế trong việc sử dụng hàng trăm thanh ghi, được đưa ra trong một số hệ thống RISC. Cuối cùng là vấn đề độ dài thanh ghi. Thanh ghi mà cần phải giữ địa chỉ rõ ràng tối thiểu phải đủ dài để giữ địa chỉ lớn nhất. Thanh ghi dữ liệu có thể giữ giá trị của hầu hết các loại dữ liệu. Một số máy cho phép hai thanh ghi liên tiếp được sử dụng như một giá trị để giữ đôi độ dài. Một loại thanh ghi cuối cùng, đó là ít nhất một phần người sử dụng có thể nhìn thấy, giữ mã điều kiện (còn gọi là cờ). Mã điều kiện là các bit được thiết lập bởi phần cứng xử là kết quả của hoạt động. dụ, một phép toán số học có thể tạo ra một kết quả tích cực, không tích cực, không, hoặc tràn. Ngoài các kết quả chính nó đang được lưu trữ trong một thanh ghi hoặc bộ nhớ, một mã điều kiện cũng được thiết lập. Các mã sau đó có thể được kiểm tra như một phần của hoạt động rẽ nhánh có điều kiện. Bit mã điều kiện được thu thập vào một hoặc nhiều thanh ghi. Thông thường, chúng là một phần của một thanh ghi kiểm soát. Nói chung, lệnh của máy cho phép các bit được đọc bằng cách tham chiếu ngầm định, các lập trình viên không thể thay đổi chúng. Nhiều bộ vi xử lý, trong đó có dựa trên các kiến trúc IA-64 các bộ vi xử MIPS, không sử dụng mã điều kiện nào cả. Thay vào đó, lệnh rẽ nhánh có điều kiện xác định một so sánh được thực hiện hoạt động trên các kết quả của sự so sánh, mà không cần lưu trữ một mã điều kiện. Bảng 1, dựa trên [DERO87], liệt kê những lợi thế quan trọng nhược điểm của mã điều kiện. Trong một số máy tính, một cuộc gọi chương trình con sẽ dẫn đến việc tự động tiết kiệm của tất cả các thanh ghi người dùng có thể nhìn thấy, được khôi phục trở về. Bộ vi xử thực hiện các hướng dẫn lưu khôi phục như một phần của việc thực hiện các cuộc gọi quay trở lại. Điều này cho phép mỗi chương trình con để sử dụng các thanh ghi người dùng có thể nhìn thấy một cách độc lập. Trên các máy khác, đó là trách nhiệm của các lập trình để lưu nội dung của người sử dụng thanh ghi có thể nhìn thấy liên quan trước khi gọi chương trình con, bằng cách đưa chỉ dẫn với mục đích này trong chương trình. Ưu điểm Nhược điểm 1. mã điều kiện được thiết lập bởi số học chuyển dữ liệu chỉ dẫn bình thường, họ nên giảm số lượng lệnh SO SÁNH KIỂM TRA cần có. 2. lệnh điều kiện, chẳng hạn như rẽ nhánh được đơn giản hóa so với lệnh tổng hợp, chẳng hạn như kiểm tra rẽ nhánh. 3. Mã điều kiện thuận lợi cho các rẽ nhánh nhiều chiều. dụ, một lệnh KIỂM TRA có thể được theo sau bởi hai nhánh, một ở dưới hoặc bằng số không một trên lớn hơn không. 1. Mã điều kiện thêm độ phức tạp cho cả phần cứng phần mềm. Bit mã điều kiện thường được sửa đổi theo những cách khác nhau bởi lệnh khác nhau, gây khó khăn cho cả vi chương trình trình biên dịch. 2. Mã điều kiện là bất thường, chúng thường không là một phần của đường dẫn dữ liệu chính, vậy chúng yêu cầu kết nối thêm phần cứng. 3. Thường các máy mã điều kiện phải thêm lệnh không điều kiện-mã đặc biệt cho các tình huống đặc biệt nào đó, chẳng hạn như bit kiểm tra, kiểm soát vòng lặp, các hoạt động sự ra hiệu lượng tử. 4. Trong việc thực hiện pipelined, mã điều kiện yêu cầu đồng bộ hóa đặc biệt để tránh xung đột. Bảng 1. Thanh ghi điều khiển thanh ghi trạng thái: Có rất nhiều thanh ghi xử được sử dụng để kiểm soát hoạt động của bộ xử lý. Hầu hết trong số này, trên hầu hết các máy móc, không cho người dùng nhìn thấy được. Một số chúng có thể được hiển thị cho lệnh máy thực hiện trong điều khiển hoặc chế độ hệ điều hành. Tất nhiên, các máy khác nhau sẽ có các tổ chức thanh ghi khác nhau sử dụng thuật ngữ khác nhau. Chúng ta liệt kê ở đây một danh sách hợp đầy đủ các loại thanh ghi, với một mô tả ngắn gọn. Bốn thanh ghi cần thiết cho thực hiện lệnh: • Chương trình truy cập (PC): Có chứa địa chỉ của một hướng dẫn để được lấy • Thanh ghi chỉ thị (IR): Chứa các lệnh gần đây nhất lấy • thanh ghi bộ nhớ địa chỉ (MAR): Chứa địa chỉ của một vị trí trong bộ nhớ • thanh ghi bộ nhớ đệm (MBR): Chứa một từ dữ liệu được ghi vào bộ nhớ hoặc từ gần đây nhất đọc. Không phải tất cả bộ vi xử có thanh ghi nội bộ chỉ định là MAR MBR, nhưng một số cơ chế đệm tương đương là cần thiết nơi bởi các bit được chuyển giao cho bus hệ thống được tổ chức các bit được đọc từ bus dữ liệu được lưu trữ tạm thời. Thông thường, bộ vi xử cập nhật các máy tính sau mỗi lệnh lấy để máy tính luôn luôn trỏ vào lệnh tiếp theo sẽ được thực hiện. Rẽ nhánh hoặc bỏ qua lệnh cũng sẽ thay đổi nội dung máy tính. Chỉ thị lấy được nạp vào một IR, nơi mà các mã máy toán hạng đặc tả được phân tích. Dữ liệu được trao đổi với bộ nhớ bằng cách sử dụng MAR MBR. Trong một hệ thống bus tổ chức, MAR kết nối trực tiếp đến bus địa chỉ, MBR kết nối trực tiếp đến bus dữ liệu. Thanh ghi người sử dụng nhìn thấy lần lượt trao đổi dữ liệu với MBR. Bốn thanh ghi vừa đề cập được sử dụng cho sự di chuyển của dữ liệu giữa bộ xử bộ nhớ. Trong bộ vi xử lý, dữ liệu phải được trao đổi với ALU để xử lý. ALU có thể truy cập trực tiếp vào MBR thanh ghi người dùng có thể nhìn thấy. Ngoài ra, có thể có thanh ghi đệm thêm tại ranh giới tới ALU, các thanh ghi phục vụ như là đầu vào đầu ra thanh ghi cho ALU trao đổi dữ liệu với MBR thanh ghi người dùng có thể nhìn thấy. Nhiều thiết kế bộ vi xử bao gồm một thanh ghi hoặc tập các thanh ghi, thường được gọi là từ [...]... hoạt hoặc vô hiệu hóa ngắt • Supervisor: Cho biết bộ vi xử được thực hiện trong giám sát hoặc chế độ người dùng Một số lệnh ưu tiên có thể được thực hiện chỉ trong chế độ giám sát, các khu vực nhất định của bộ nhớ có thể được truy cập chỉ trong chế độ giám sát Một số thanh ghi liên quan đến trạng thái điều khiển có thể được tìm thấy trong một thiết kế bộ vi xử cụ thể Có thể có một con trỏ... chia dưới đây trong xử lệnh • Lấy lệnh (FI): Đọc lệnh dự kiến tiếp theo vào một bộ đệm • Giải mã lệnh (DI): Xác định mã máy xác định toán hạng • Tính toán hạng (CO): Tính toán địa chỉ hiệu quả của từng phép toán nguồn Điều này có thể liên quan đến vi c di dời, thanh ghi gián tiếp hoặc dạng khác của phép tính địa chỉ • Lấy toán hạng (FO): Tìm nạp mỗi toán hạng từ bộ nhớ Các toán hạng trong thanh... thấy dòng chảy của dữ liệu trong chu kỳ này PC chứa địa chỉ của lệnh tiếp theo cần lấy về Địa chỉ này được chuyển đến MAR được đặt trên bus địa chỉ CPU PC MAR Memory Control unit IR MBR Address Data Control Hình 6 Bộ điều khiển yêu cầu đọc bộ nhớ, kết quả được đặt trên bus dữ liệu sao chép vào MBR sau đó chuyển đến IR Trong khi đó, các máy tính đang tăng thêm 1, chuẩn bị cho vi c kế tiếp... IR Chu kỳ này có thể liên quan đến vi c chuyển giao dữ liệu giữa các thanh ghi, đọc hoặc vi t từ bộ nhớ hoặc I / O, / hoặc triệu gọi của ALU CPU MAR Memory Control unit MBR AddressData Control Hình 7 Giống như lấy lệnh chu kỳ gián tiếp, chu kỳ ngắt rất đơn giản có thể dự đoán (hình 8) Những nội dung hiện tại của máy tính cần phải được lưu lại để có bộ vi xử có thể tiếp tục hoạt động bình... 5 Luồng dữ liệu Trình tự chính xác của các sự kiện trong một chu kỳ lệnh phụ thuộc vào vi c thiết kế các bộ vi xử Chúng ta có thể, tuy nhiên, chỉ ra một cách chung chung những gì phải xảy ra Chúng ta hãy giả định rằng một bộ vi xử sử dụng một địa chỉ bộ nhớ thanh ghi (MAR), đăng ký một bộ nhớ đệm (MBR), một chương trình truy cập (PC), thanh ghi lệnh (IR) Trong chu kỳ lấy, một lệnh được đọc... giai đoạn của ống dẫn, có một số trên đầu liên quan đến di chuyển dữ liệu từ vùng đệm đến vùng đệm  thực hiện nhiều chuẩn bị chuyển giao chức năng Trên đầu này có thể thấy rõ kéo dài tổng số thời gian thi hành của một lệnh Điều này là đáng kể khi lệnh tuần tự là hợp phụ thuộc, hoặc qua sử dụng nhánh hoặc qua tính phụ thuộc truy cập bộ nhớ Lượng của lôgic điều khiển cần để xử bộ nhớ thanh... định nếu các chi nhánh đích nằm trong môi trường bị bắt bởi các bộ đệm Trong số các máy sử dụng một bộ đệm vòng lặp là một số các máy CDC (Star-100, 6600, 7600) Cray-1 Một dạng đặc biệt của vòng đệm đã có sẵn Motorola 68.010, để thực hiện một vòng lặp balệnh liên quan đến vi c DBCC (lượng giảm rẽ nhánh trên điều kiện) lệnh Một ba từ đệm được duy trì, bộ vi xử thực hiện các hướng dẫn liên... nhánh Cho là tổng thời gian của 1 ống dẫn k trạng thái để xử n lệnh Thì: Có tổng cộng k chu kỳ phải hoàn thành ở lệnh đầu tiên, còn lại n-1 lệnh yêu cầu n-1 chu kỳ Dễ dàng chứng minh công thức này từ hình 10 12 Lệnh thứ 9 được hoàn thành vào khoảng thời gian chu kỳ thứ 14: 14=[6+(9-1)] Bây giờ hãy xem một bộ xử với các chức năng tương đương nhưng không có đường ống, giả định rằng chu kỳ... điều khiển tổ chức thanh ghi trạng thái Một vấn đề quan trọng là hoạt động hỗ trợ hệ thống Một số loại thông tin điều khiển được các tiện ích cụ thể cho các hệ điều hành Nếu người thiết kế bộ vi xử Interrupt Indirect có một sự hiểu biết chức năng của hệ điều hành được sử dụng, sau đó tổ chức thanh ghi có thể đến một mức độ được thiết kế cho hệ điều hành Một quyết định thiết kế chính là vi c phân... hiện Như thể hiện trong hình 7, đây là một chu trình đơn Các bit N bên phải của MBR, có chứa các tham chiếu địa chỉ, được chuyển giao cho MAR Sau đó đơn vị điều khiển yêu cầu đọc bộ nhớ, để có được địa chỉ mong muốn của toán hạng vào MBR Chỉ lệnh chu kỳ gián tiếp rất đơn giản dễ dự đoán Chu kỳ thực hiện có nhiều hình thức; hình thức phụ thuộc vào của các lệnh máy khác nhau có trong IR Chu kỳ này . điều khiển và thanh ghi trạng thái dùng để điều khiển hoạt động của bộ vi xử lý. Một ví dụ rõ ràng là bộ đếm chương trình. Một ví dụ quan trọng khác là chương trình từ trạng thái (PSW), chứa. một module I / O. Để làm những việc này, cần phải thấy rõ rằng bộ vi xử lý cần lưu trữ một số dữ liệu tạm thời. Nó phải nhớ vị trí của lệnh mới nhất để nó có thể biết được nơi để có được những. điều khiển để kiểm soát hoạt động của bộ vi xử lý và đặc quyền, các chương trình hệ điều hành để kiểm soát việc thực hiện các chương trình. Thanh ghi người sử dụng nhìn thấy: Thanh ghi người dùng

Ngày đăng: 16/04/2014, 20:00

Từ khóa liên quan

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

Tài liệu liên quan